이 페이지에서는 계층식 방화벽 정책 구현의 예시를 살펴봅니다. 여기서는 계층식 방화벽 정책에 설명된 개념에 익숙하다고 가정하였습니다.
예시 1: 모든 VM에 대한 프로버 액세스 허용
이 사용 사례에서는 조직의 모든 가상 머신(VM) 인스턴스를 특정 대상 포트(123
)의 특정 IP 주소(10.100.0.1
)에서 프로브를 사용하여 스캔하고 조사해야 합니다. 조직 보안 관리자는 네트워크 관리자나 다른 보안 관리자가 조직의 모든 VM 인스턴스에서 해당 포트를 차단할 수 없도록 합니다.
이 예시에서는 폴더 수준 방화벽 정책이 배포되지 않았다고 가정합니다.
다음 다이어그램은 이 사용 사례의 구성 설정을 설명합니다.
VM에 적용되는 유효 정책
이 예시에서 계층 구조에서 규칙을 평가한 후의 유효 VM 방화벽 정책은 다음과 같습니다.
인그레스 연결
소스 IP가
10.100.0.1
이고 대상 포트가123
인 인그레스 연결은 정책에 정의된 대로 허용됩니다. 조직 정책과 일치하면 프로브 연결이 허용되며 계층 구조에서 추가 규칙이 평가되지 않습니다.소스 IP가
10.100.0.1
이 아니고 대상 포트가123
이 아닌 인그레스 연결의 경우 일치 항목이 없습니다. 따라서 VPC 방화벽 규칙의 기본 인그레스 규칙이 적용되어 연결을 거부합니다.
이그레스 연결
- 계층 구조 정의 규칙에 일치하는 항목이 없습니다. 따라서 VPC 방화벽 규칙의 기본 이그레스 규칙이 적용되어 이그레스 연결을 허용합니다.
구성 방법
규칙을 포함할 방화벽 정책을 만듭니다.
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
방화벽 정책에 규칙을 추가합니다.
gcloud compute firewall-policies rules create 1000 \ --action=allow \ --description="allow-scan-probe" \ --layer4-configs=tcp:123 \ --firewall-policy=example-firewall-policy \ --organization=123456789012 \ --src-ip-ranges=10.100.0.1/32
방화벽 정책을 조직과 연결합니다.
gcloud compute firewall-policies associations create \ --firewall-policy=example-firewall-policy \ --organization=123456789012
예시 2: 특정 포트를 제외한 모든 외부 연결 거부
이 사용 사례에서 방화벽 정책은 대상 포트 80
, 443
, 22
의 연결을 제외한 외부 인터넷 소스의 모든 연결을 차단합니다. 80
, 443
, 22
이외의 모든 포트의 인그레스 인터넷 연결은 VPC 네트워크 수준의 방화벽 규칙이 무엇이든 차단됩니다. 포트 80
, 443
또는 22
의 모든 연결의 경우 이 정책은 각 VPC 네트워크에서 해당 포트에 적용할 동작을 VPC 보안 관리자에게 위임합니다.
다음 다이어그램은 이 사용 사례의 구성 설정을 설명합니다.
VM에 적용되는 유효 정책
이 예시에서 계층 구조에서 규칙을 평가한 후의 유효 VM 방화벽 정책은 다음과 같습니다.
인그레스 연결
10.0.0.0/8
의 모든 인그레스 연결은 우선순위가 가장 높은 조직 수준 규칙delegate-internal-traffic
과 일치하며, VPC 네트워크 수준에서 구성된 방화벽 규칙에 따라 평가되는 조직 정책의 나머지 규칙을 우회합니다. VPC 방화벽 규칙에서10.2.0.0/16
의 연결이 허용되며 나머지 연결은 묵시적 인그레스 규칙(deny
)에 따라 평가됩니다.대상 포트
22
,80
,443
에서 소스 IP 범위가10.0.0.0/8
이 아닌 인그레스 연결은 다음 수준으로 위임됩니다. 이 수준에서는 포트80
및443
은 허용되지만22
는 허용되지 않습니다.다른 모든 연결은 차단됩니다.
이그레스 연결
- 계층 구조 정의 규칙에 일치하는 항목이 없습니다. 따라서 VPC 방화벽 규칙의 기본 이그레스 규칙이 적용되어 이그레스 연결을 허용합니다.
구성 방법
규칙을 포함할 방화벽 정책을 만듭니다.
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
내부 연결을 프로젝트 소유자에게 위임하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 1000 \ --action=goto_next \ --description="delegate-internal-traffic" \ --organization=123456789012 \ --firewall-policy="example-firewall-policy" \ --src-ip-ranges=10.0.0.0/8
포트
80
/443
/22
에 대한 외부 연결 규칙을 프로젝트 소유자에게 위임하는 규칙을 추가합니다.gcloud compute firewall-policies rules create 2000 \ --action=goto_next \ --description="delegate-external-traffic-spec-ports" \ --src-ip-ranges=0.0.0.0/0 \ --layer4-configs=tcp:80,tcp:443,tcp:22 \ --organization=123456789012 \ --firewall-policy="example-firewall-policy"
다른 모든 외부 연결을 거부하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 3000 \ --action=deny \ --description="block-other-external-traffic-spec-ports" \ --organization=123456789012 \ --firewall-policy="example-firewall-policy" \ --src-ip-ranges=0.0.0.0/0
방화벽 정책을 조직과 연결합니다.
gcloud compute firewall-policies associations create \ --organization=123456789012 \ --firewall-policy="example-firewall-policy"
프로젝트에서 지정된 서브넷의 내부 연결을 허용하는 방화벽 규칙을 추가합니다.
gcloud compute firewall-rules create allow-internal-traffic \ --action=allow \ --priority=1000 \ --source-ranges=10.2.0.0/16
프로젝트에서 외부 TCP
80
/443
연결을 허용하는 방화벽 규칙을 추가합니다.gcloud compute firewall-rules create allow-external-traffic \ --action=allow \ --priority=2000 \ --rules=tcp:80,tcp:443
예시 3: 특정 VPC 네트워크의 이그레스 연결을 제외한 이그레스 연결 거부
이 사용 사례에서 조직 보안 관리자는 VPC 네트워크 myvpc
에서 시작된 연결을 제외하고 모든 VPC 네트워크에서 이그레스 연결을 허용하지 않습니다. 관리자는 공개 서버 203.0.113.1
에 대한 이그레스를 여는 결정을 myvpc
보안 관리자에게 위임합니다.
이 예시에서는 폴더 수준 방화벽 정책이 배포되지 않았다고 가정합니다. 다음 다이어그램은 이 사용 사례의 구성 설정을 설명합니다.
VM에 적용되는 유효 정책
이 예시에서 계층 구조에서 규칙을 평가한 후의 유효 VM 방화벽 정책은 다음과 같습니다.
인그레스 연결
- 계층 구조 정의 규칙에 일치하는 항목이 없습니다. 따라서 VPC 방화벽 규칙의 기본 인그레스 규칙이 적용되고 인그레스 연결을 거부합니다.
이그레스 연결
203.0.113.1
로 지정된 모든 이그레스 연결이 허용되고 나머지 연결은 거부됩니다.203.0.113.1
로 향하는 모든 이그레스 연결은delegate-egress-my-vpc
규칙과 일치하고 조직 정책의 나머지 규칙을 우회합니다.그런 다음 이그레스 연결은
myvpc
에 구성된 방화벽 규칙에 따라 평가됩니다. 기본 규칙은 이그레스 연결을 허용합니다. 조직 수준 정책의block-egress-traffic-sepc-ports
규칙은 나머지 연결을 거부합니다.
구성 방법
규칙을 포함할 방화벽 정책을 만듭니다.
gcloud compute firewall-policies create \ --organization=123456789012 \ --short-name="example-firewall-policy" \ --description="rules that apply to all VMs in the organization"
특정 이그레스 연결을 위임하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 1000 \ --action=goto_next \ --description="delegate-egress-myvpc" \ --dest-ip-ranges=203.0.113.1/32 --direction=egress --organization=123456789012 \ --short-name="example-firewall-policy" \ --target-resources=projects/PROJECT_ID/networks/myvpc
다른 모든 이그레스 연결을 거부하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 2000 \ --action=deny \ --description="block-egress-external-traffic-spec-ports" \ --direction=egress \ --dest-ip-ranges=0.0.0.0/0 \ --organization=123456789012 \ --short-name="example-firewall-policy"
방화벽 정책을 조직과 연결합니다.
gcloud compute firewall-policies associations create \ --organization=123456789012 \ --short-name="example-firewall-policy"
예시 4: 조직 전체 규칙 및 폴더별 규칙 구성
이 사용 사례에서 보안 관리자는 허용 목록에 추가된 203.0.113.0/24
범위의 VM을 제외하고 조직의 모든 VM에 대한 수신 연결을 허용하지 않습니다. 관리자는 203.0.113.0/24
에서의 연결에 대한 추가 결정을 폴더 수준에서 보안 관리자에게 위임합니다.
다음과 같은 두 가지 폴더가 있습니다.
- Folder1: 정책이 백엔드 VM에서 포트
80
및443
에만 연결을 허용하고 나머지 포트를 차단합니다. - Folder2: Folder2의 VM이 IP 주소
203.0.113.1
의 트래픽에 대해 모든 대상 포트를 차단할 수 없도록 정책이 적용됩니다. Folder2 보안 관리자가 VPC 보안 관리자에게 다른 결정을 위임하면 VPC 보안 관리자는 포트80
,443
,22
를 열고 나머지 포트를 거부하기로 결정합니다.
다음 다이어그램은 이 사용 사례의 구성 설정을 설명합니다.
VM에 적용되는 유효 정책
이 예시에서 계층 구조에서 규칙을 평가한 후의 유효 VM 방화벽 정책은 다음과 같습니다.
my-vpc
에 속한 VM
대상 포트 TCP
80
및443
에서203.0.113.0/24
의 모든 인그레스 연결이 허용됩니다. 다른 모든 인그레스 연결은 거부됩니다.상위 수준 방화벽 정책 규칙에 일치 항목이 없으므로 모든 이그레스 연결은 적용되는 VPC 방화벽 규칙에 따라 허용됩니다.
vpc2
에 속한 VM
203.0.113.1
의 모든 인그레스 연결이 허용됩니다.203.0.113.1
가 아닌 다른203.0.113.0/24
소스의 인그레스 연결은 포트80
,443
,22
에서만 허용됩니다. 다른 모든 인그레스 연결은 거부됩니다.상위 수준 방화벽 정책 규칙에 일치 항목이 없으므로 모든 이그레스 연결은 적용되는 VPC 방화벽 규칙에 따라 허용됩니다.
구성 방법
Org_A의 규칙을 포함하는 방화벽 정책을 만듭니다.
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a" \ --description="rules that apply to all VMs in the organization"
203.0.113.0/24
에서의 인그레스를 프로젝트 소유자에게 위임하는 규칙을 추가합니다.gcloud compute firewall-policies rules create 1000 \ --action=goto_next \ --description="delegate-ingress" \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a" \ --src-ip-ranges=203.0.113.0/24
다른 모든 외부 연결을 거부하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 2000 \ --action=deny --description="block-ingress-external-traffic" --organization=100000000000 \ --short-name="example-firewall-policy-org-a" \ --src-ip-ranges=0.0.0.0/0
방화벽 정책을 조직과 연결합니다.
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-org-a"
Folder1의 규칙을 포함할 방화벽 정책을 만듭니다.
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --description="rules that apply to all VMs under Folder1"
모든 HTTP(S) 인그레스를 허용하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 1000 \ --action=allow \ --description="allow-http-s-ingress" \ --layer4-configs=tcp:80,tcp:443 \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1"
다른 모든 포트 또는 프로토콜에서 인그레스를 거부하는 규칙을 추가합니다.
gcloud compute firewall-policies rules create 2000 \ --action=deny \ --description="block-ingress-external-traffic" \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --src-ip-ranges=0.0.0.0/0
방화벽 정책을 Folder1과 연결합니다.
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder1" \ --folder=200000000000
Folder2의 규칙을 포함할 보안 정책을 만듭니다.
gcloud compute firewall-policies create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --description="rules that apply to all VMs under Folder2"
203.0.113.1
에서의 인그레스를 허용하는 규칙을 추가합니다.gcloud compute firewall-policies rules create 1000 \ --action=allow \ --description="allow-vul-scan-ingress" \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --src-ip-ranges=203.0.113.1/32
방화벽 정책을 Folder2와 연결합니다.
gcloud compute firewall-policies associations create \ --organization=100000000000 \ --short-name="example-firewall-policy-folder2" \ --folder=300000000000
HTTP(S) 연결 인그레스를 허용하는 방화벽 규칙을 추가합니다.
gcloud compute firewall-rules create allow-internal-traffic \ --action=allow \ --rules=tcp:80,tcp:443,tcp:22
다음 단계
- 계층식 방화벽 정책 및 규칙을 만들고 수정하려면 계층식 방화벽 정책 사용을 참조하세요.