Virtual Private Cloud (VPC) 방화벽 규칙은 트래픽에 적용될 때 로그 항목을 생성합니다. 패킷 흐름은 여러 로그 항목을 생성할 수 있지만 VPC 방화벽 규칙은 가상 머신 (VM) 인스턴스의 연결당 최대 하나의 로그 항목을 생성합니다. 다음 예에서는 다양한 시나리오에서 VPC 방화벽 규칙 로깅이 작동하는 방식을 보여줍니다.
이그레스 거부 예시
이 예에서는 동일한 VPC 네트워크에 있는 두 VM 인스턴스 간의 트래픽을 차단하는 이그레스 거부 VPC 방화벽 규칙의 로깅을 보여줍니다.
이 예시에서는 example-proj 프로젝트의 example-net VPC 네트워크에 있는 VM 인스턴스 간에 트래픽이 흐릅니다.
두 개의 VM 인스턴스는 다음과 같습니다.
west-subnet(us-west1리전)에서 IP 주소가10.10.0.99인us-west1-a영역의 VM1east-subnet(us-east1리전)에서 IP 주소가10.20.0.99인us-east1-b영역의 VM2
규칙 A: 이그레스 거부 방화벽 규칙은 네트워크의 모든 인스턴스 대상인
10.20.0.99(VM2) 대상을 포함하며 TCP 포트80에 적용됩니다. 이 규칙에 로깅이 사용 설정됩니다.규칙 B: 인그레스 허용 방화벽 규칙은 네트워크의 모든 인스턴스 대상인
10.10.0.99(VM1) 소스를 포함하며 TCP 포트80에 적용됩니다. 이 규칙에도 로깅이 사용 설정됩니다.
VPC 방화벽 규칙을 만들려면 다음 gcloud 명령어를 사용하세요.
규칙 A: TCP 포트
80에 대한 이그레스 거부 규칙이며 모든 인스턴스,10.20.0.99대상에 적용 가능합니다.gcloud compute firewall-rules create rule-a \ --network example-net \ --action deny \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-logging규칙 B: TCP 포트
80에 대한 인그레스 허용 규칙이며 모든 인스턴스,10.10.0.99소스에 적용 가능합니다.gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
VM1이 TCP 포트 80에서 VM2로 연결을 시도하는 시나리오에서는 다음이 발생합니다.
- VM1이
10.20.0.99(VM2)에 연결을 시도하는 동안 VM1의 관점에서 규칙 A의 로그 항목이 생성됩니다. - 규칙 A가 트래픽을 차단하여 규칙 B는 고려되지 않으므로 VM2의 관점에서 규칙 B의 로그 항목은 없습니다.
VM1은 다음 VPC 방화벽 규칙 로그 레코드를 보고합니다.
| 필드 | 값 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
거부됨 |
rule_details |
reference = "network:example-net/firewall:rule-a" priority = 10 action = DENY destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location |
정보가 없습니다. 이 필드는 대상이 VPC 네트워크 외부에 있는 경우에만 사용됩니다. |
이그레스 허용, 인그레스 허용 예시
이 예에서는 동일한 VPC 네트워크에 있는 두 VM 인스턴스 간의 트래픽을 함께 허용하는 이그레스 허용 VPC 방화벽 규칙과 인그레스 허용 VPC 방화벽 규칙의 로깅을 보여줍니다.
이 예시에서는 example-proj 프로젝트의 example-net VPC 네트워크에 있는 VM 인스턴스 간에 트래픽이 흐릅니다.
두 개의 VM 인스턴스는 다음과 같습니다.
west-subnet(us-west1리전)에서 IP 주소가10.10.0.99인us-west1-a영역의 VM1east-subnet(us-east1리전)에서 IP 주소가10.20.0.99인us-east1-b영역의 VM2
규칙 A: 이그레스 허용 방화벽 규칙은 네트워크의 모든 인스턴스 대상인
10.20.0.99(VM2) 대상을 포함하며 TCP 포트80에 적용됩니다. 이 규칙에 로깅이 사용 설정됩니다.규칙 B: 인그레스 허용 방화벽 규칙은 네트워크의 모든 인스턴스 대상인
10.10.0.99(VM1) 소스를 포함하며 TCP 포트80에 적용됩니다. 이 규칙에도 로깅이 사용 설정됩니다.
VPC 방화벽 규칙을 만들려면 다음 gcloud 명령어를 사용하세요.
규칙 A: TCP 포트
80에 대한 이그레스 허용 규칙이며 모든 인스턴스,10.20.0.99(VM2) 대상에 적용 가능합니다.gcloud compute firewall-rules create rule-a \ --network example-net \ --action allow \ --direction EGRESS \ --rules tcp:80 \ --destination-ranges 10.20.0.99/32 \ --priority 10 \ --enable-logging규칙 B: TCP 포트
80에 대한 인그레스 허용 규칙이며 모든 인스턴스,10.10.0.99(VM1) 소스에 적용 가능합니다.gcloud compute firewall-rules create rule-b \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 10.10.0.99/32 \ --priority 10 \ --enable-logging
VM1이 TCP 포트 80에서 VM2로 연결을 시도하는 시나리오에서는 다음이 발생합니다.
- VM1이
10.20.0.99(VM2)에 연결되면 VM1의 관점에서 규칙 A의 로그 항목이 생성됩니다. - VM2가
10.10.0.99(VM1)의 수신 연결을 허용하면 VM2의 관점에서 규칙 B의 로그 항목이 생성됩니다.
VM1은 다음 VPC 방화벽 규칙 로그 레코드를 보고합니다.
| 필드 | 값 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
허용됨 |
rule_details |
reference = "network:example-net/firewall:rule-a" priority = 10 action = ALLOW destination_range = 10.20.0.99/32 ip_port_info = tcp:80 direction = egress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_location |
정보가 없습니다. 이 필드는 대상이 VPC 네트워크 외부에 있는 경우에만 사용됩니다. |
VM2는 다음 VPC 방화벽 규칙 로그 레코드를 보고합니다.
| 필드 | 값 |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
허용됨 |
rule_details |
reference = "network:example-net/firewall:rule-b" priority = 10 action = ALLOW source_range = 10.10.0.99/32 ip_port_info = tcp:80 direction = ingress |
instance |
project_id="example-proj" instance_name=VM2 region=us-east1 zone=us-east1-b |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=east-subnet |
remote_instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
remote_vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location |
정보가 없습니다. 이 필드는 대상이 VPC 네트워크 외부에 있는 경우에만 사용됩니다. |
인터넷 인그레스 예시
이 예에서는 인터넷에서 VM 인스턴스로의 트래픽을 허용하는 인그레스 허용 방화벽 규칙의 로깅을 보여줍니다. 또한 상태 저장 방화벽 동작이 이그레스 거부 규칙에 미치는 영향도 보여줍니다.
이 예에서는 외부 리소스에서 example-net VPC 네트워크 내의 VM 인스턴스로 트래픽이 흐릅니다. 네트워크는 example-proj 프로젝트에 있습니다.
- 인터넷 시스템의 IP 주소는
203.0.113.114입니다. west-subnet(us-west1리전)에서 IP 주소가10.10.0.99인us-west1-a영역의 VM1- 규칙 C: 인그레스 허용 방화벽 규칙은 네트워크의 모든 인스턴스 대상인 모든 IP 주소 (
0.0.0.0/0) 소스를 포함하며 TCP 포트80에 적용됩니다. 이 규칙에 로깅이 사용 설정됩니다. - 규칙 D: 이그레스 거부 방화벽 규칙은 네트워크의 모든 인스턴스 대상인 IP 주소 (
0.0.0.0/0) 대상을 포함하며 모든 프로토콜에 적용됩니다. 이 규칙에 로깅이 사용 설정됩니다.
VPC 방화벽 규칙을 만들려면 다음 gcloud 명령어를 사용하세요.
규칙 C: TCP 포트
80에 대한 인그레스 허용 규칙이며 모든 인스턴스, 모든 소스에 적용 가능합니다.gcloud compute firewall-rules create rule-c \ --network example-net \ --action allow \ --direction INGRESS \ --rules tcp:80 \ --source-ranges 0.0.0.0/0 \ --priority 10 \ --enable-logging규칙 D: 모든 프로토콜에 대한 송신 거부 규칙이며 모든 인스턴스, 모든 대상에 적용 가능합니다.
gcloud compute firewall-rules create rule-d \ --network example-net \ --action deny \ --direction EGRESS \ --rules all \ --destination-ranges 0.0.0.0/0 \ --priority 10 \ --enable-logging
IP 주소가 203.0.113.114인 시스템이 TCP 포트 80에서 VM1로 연결을 시도하는 시나리오에서는 다음이 발생합니다.
- VM1이
203.0.113.114의 트래픽을 허용하는 동안 규칙 C의 로그 항목이 생성됩니다. - Google Cloud 방화벽 규칙은 상태를 저장할 수 있으므로 규칙 D에도 불구하고 VM1은 수신 요청에 응답할 수 있습니다. 수신 요청이 허용되는 경우 설정된 응답은 이그레스 규칙으로 차단할 수 없습니다.
- 규칙 D가 적용되지 않아 시스템에서 고려하지 않으므로 규칙 D의 로그 항목은 없습니다.
VM1은 다음 VPC 방화벽 규칙 로그 레코드를 보고합니다.
| 필드 | 값 |
|---|---|
connection |
src_ip=203.0.113.114 src_port=[EPHEMERAL_PORT] dest_ip=10.10.0.99 dest_port=80 protocol=6 |
disposition |
허용됨 |
rule_details |
reference = "network:my-vpc/firewall:rule-c" priority = 10 action = ALLOW source_range = 0.0.0.0/0 ip_port_info = tcp:80 direction = ingress |
instance |
project_id="example-proj" instance_name=VM1 region=us-west1 zone=us-west1-a |
vpc |
project_id="example-proj" vpc_name=example-net subnetwork_name=west-subnet |
remote_location |
continent country region city |