As regras de firewall da nuvem privada virtual (VPC) geram entradas de registro quando são aplicadas ao tráfego. Embora um fluxo de pacotes possa gerar várias entradas de registro, uma regra de firewall da VPC gera no máximo uma entrada de registro por conexão de uma instância de máquina virtual (VM). Os exemplos a seguir mostram como a geração de registros de regras de firewall da VPC funciona em diferentes cenários.
Exemplo de negação de saída
Este exemplo mostra a geração de registros para uma regra de firewall da VPC de negação de saída que bloqueia o tráfego entre duas instâncias de VM na mesma rede VPC.
Neste exemplo, o tráfego flui entre instâncias de VM na rede VPC example-net no projeto example-proj.
As duas instâncias de VM são:
- VM1 na zona
us-west1-acom endereço IP10.10.0.99nawest-subnet(regiãous-west1). - VM2 na zona
us-east1-bcom endereço IP10.20.0.99naeast-subnet(regiãous-east1).
- VM1 na zona
Regra A: uma regra de negação de saída de firewall tem como destino todas as instâncias na rede, destino em
10.20.0.99(VM2) e se aplica à porta TCP80. A geração de registros está ativada para essa regra.Regra B: uma regra de permissão de entrada de firewall tem como destino todas as instâncias na rede, origem em
10.10.0.99(VM1) e se aplica à porta TCP80. A geração de registros também está ativada para essa regra.
Para criar as regras de firewall da VPC, use os seguintes comandos gcloud:
Regra A: regra de negação de saída para a porta TCP
80, aplicável a todas as instâncias, destino10.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-loggingRegra B: regra de permissão de entrada para a porta TCP
80, aplicável a todas as instâncias, origem10.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
Em um cenário em que a VM1 tenta se conectar à VM2 na porta TCP 80, o seguinte acontece:
- Uma entrada de registro para a regra A segundo a perspectiva da VM1 é gerada enquanto a VM1 tenta se conectar a
10.20.0.99(VM2). - Como a regra A bloqueia o tráfego, a regra B não é considerada. Portanto, não há entrada de registro para a regra B segundo a perspectiva da VM2.
A VM1 informa o seguinte registro de firewall da VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
NEGADO |
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 |
Sem informações. Este campo só será usado se o destino estiver fora da rede VPC. |
Exemplo de permissão de saída e permissão de entrada
Este exemplo mostra a geração de registros para uma regra de firewall da VPC de permissão de saída e uma regra de firewall da VPC de permissão de entrada que, juntas, permitem o tráfego entre duas instâncias de VM na mesma rede VPC.
Neste exemplo, o tráfego flui entre instâncias de VM na rede VPC example-net no projeto example-proj.
As duas instâncias de VM são:
- VM1 na zona
us-west1-acom endereço IP10.10.0.99nawest-subnet(regiãous-west1). - VM2 na zona
us-east1-bcom endereço IP10.20.0.99naeast-subnet(regiãous-east1).
- VM1 na zona
Regra A: uma regra de permissão de saída de firewall tem como destino todas as instâncias na rede, destino em
10.20.0.99(VM2) e se aplica à porta TCP80. A geração de registros está ativada para essa regra.Regra B: uma regra de permissão de entrada de firewall tem como destino todas as instâncias na rede, origem em
10.10.0.99(VM1) e se aplica à porta TCP80. A geração de registros também está ativada para essa regra.
Para criar as regras de firewall da VPC, use os seguintes comandos gcloud:
Regra A: regra de permissão de saída para a porta TCP
80, aplicável a todas as instâncias, destino10.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-loggingRegra B: regra de permissão de entrada para a porta TCP
80, aplicável a todas as instâncias, origem10.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
Em um cenário em que a VM1 tenta se conectar à VM2 na porta TCP 80, o seguinte acontece:
- Uma entrada de registro para a regra A segundo a perspectiva da VM1 é gerada enquanto a VM1 se conecta a
10.20.0.99(VM2). - Uma entrada de registro para a regra B segundo a perspectiva da VM2 é gerada enquanto a VM2 permite conexões de entrada de
10.10.0.99(VM1).
A VM1 informa o seguinte registro de firewall da VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
PERMITIDO |
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 |
Sem informações. Este campo só será usado se o destino estiver fora da rede VPC. |
A VM2 informa o seguinte registro de firewall da VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=10.10.0.99 src_port=[EPHEMERAL_PORT] dest_ip=10.20.0.99 dest_port=80 protocol=6 |
disposition |
PERMITIDO |
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 |
Sem informações. Este campo só será usado se o destino estiver fora da rede VPC. |
Exemplo de entrada de Internet
Este exemplo mostra a geração de registros para uma regra de firewall de permissão de entrada que permite o tráfego da Internet para uma instância de VM. Ele também mostra como o comportamento de firewall com estado afeta uma regra de negação de saída.
Neste exemplo, o tráfego flui de um recurso externo para uma instância de VM na rede VPC example-net. A rede está no projeto example-proj.
- O sistema na Internet tem endereço IP
203.0.113.114. - A VM1 na zona
us-west1-atem endereço IP10.10.0.99nawest-subnet(regiãous-west1). - Regra C: uma regra de permissão de entrada de firewall tem como destino todas as instâncias na rede, origem em qualquer endereço IP (
0.0.0.0/0) e se aplica à porta TCP80. A geração de registros está ativada para essa regra. - Regra D: uma regra de firewall de negação de saída tem como destino todas as instâncias na rede, destino em qualquer endereço IP (
0.0.0.0/0) e se aplica a todos os protocolos. A geração de registros está ativada para essa regra.
Para criar as regras de firewall da VPC, use os seguintes comandos gcloud:
Regra C: regra de permissão de entrada para a porta TCP
80, aplicável a todas as instâncias, qualquer origem: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-loggingRegra D: regra de negação de saída para todos os protocolos, aplicável a todas as instâncias, a qualquer destino:
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
Em um cenário em que o sistema com endereço IP 203.0.113.114 tenta se conectar à VM1 na porta TCP 80, o seguinte acontece:
- A VM1 gera uma entrada de registro para a regra C enquanto aceita tráfego de
203.0.113.114. - Desconsiderando a regra D, a VM1 pode responder à solicitação de entrada porque Google Cloud as regras de firewall são com estado. Se a solicitação de entrada for permitida, nenhuma regra de saída poderá bloquear respostas estabelecidas.
- Como a regra D não se aplica, o sistema não a considera. Portanto, não há entrada de registro para a regra D.
A VM1 informa o seguinte registro de firewall da VPC:
| Campo | Valores |
|---|---|
connection |
src_ip=203.0.113.114 src_port=[EPHEMERAL_PORT] dest_ip=10.10.0.99 dest_port=80 protocol=6 |
disposition |
PERMITIDO |
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 |
continente país região cidade |
A seguir
- Visão geral da geração de registros de regras de firewall da VPC.
- Gerenciar a geração de registros de regras de firewall da VPC.
- Visão geral do Cloud Logging.