DevOps/Terraform
[Terraform] GCP Load Balancer에 특정 IP만 접근 허용하는 방법
운호(Noah)
2024. 3. 7. 17:10
들어가기 앞서,
- 해당 포스팅에선 Terraform을 통해, GCP Load Balancer에 특정 IP 접근만 허용하는 방법에 대해서 다뤄보겠습니다.
- 결론부터 말씀드리면, Google Cloud Armor security policy를 google_compute_backend_service에 연결하는 방식으로 접근 제어를 설정할 수 있습니다.
- google_compute_backend_service는 Google Cloud Load Balancing 사용 시, 트래픽을 여러 인스턴스 그룹에 분산하는 데 사용되는 리소스이며, 해당 리소스의 추가적인 설명은 아래 링크를 참고하시면 됩니다.
- Google Cloud Armor security policy는 google_compute_security_policy로 생성할 수 있습니다.
예제 코드
먼저, Google Cloud Armor security policy를 생성합니다.
resource "google_compute_security_policy" "my_security_policy" { name = "my-security-policy" rule { action = "allow" priority = 1000 match { versioned_expr = "SRC_IPS_V1" config { src_ip_ranges = ["<YOUR_IP_RANGE>"] } } } }
<YOUR_IP_RANGE>
는 허용하려는 IP 범위입니다.- 예를 들어,
["192.168.1.0/24"]
처럼 설정할 수 있습니다. - 이 정책은 지정된 IP 범위에서의 접근만을 허용합니다.
이제 google_compute_backend_service를 생성하고, 앞서 생성한 security policy를 적용합니다.
resource "google_compute_backend_service" "my_backend_service" { name = "my-backend-service" protocol = "HTTP" port_name = "http" timeout_sec = 10 backend { group = google_compute_instance_group.my_instance_group.self_link } security_policy = google_compute_security_policy.my_security_policy.self_link }
- google_compute_instance_group.my_instance_group.self_link 부분은 실제 인스턴스 그룹의 Terraform 리소스 ID로 교체해야 합니다.