1. Introdução
Políticas de firewall de rede
Os firewalls são os elementos básicos de um ambiente de nuvem seguro. Antes, apresentamos políticas de firewall no nível da organização e da pasta, deixando os firewalls da VPC inalterados. Nesta versão, vamos expandir a estrutura da política de firewall até o nível da VPC e fazer várias melhorias no suporte atual para oferecer um suporte unificado em toda a hierarquia de recursos do Google Cloud e uma experiência consistente para o usuário ao gerenciar o controle da política de firewall de maneira segura, flexível e escalonável.
A política de firewall de rede atua como um contêiner para regras de firewall. As regras definidas em uma política de firewall de rede não são aplicadas em nenhum lugar até que a política seja associada a uma rede VPC. Cada rede VPC pode ter uma política de firewall de rede associada a ela. As políticas de firewall de rede são compatíveis com tags controladas pelo IAM (ou apenas tags) nas regras de firewall, que substituem as tags de rede atuais e podem ser usadas para fornecer identidade à carga de trabalho.
O compartilhamento de uma política de firewall de rede entre redes e a integração com tags gerenciadas pelo IAM simplificam muito a configuração e o gerenciamento de firewalls.
Com a introdução da política de firewall de rede, as políticas de firewall do Google Cloud agora consistem nos seguintes componentes:
- Política de firewall hierárquica
- Regras de firewall da VPC
- Política de firewall de rede ( global e regional)
As políticas de firewall hierárquicas são compatíveis com os nós da organização e da pasta na hierarquia de recursos, enquanto as regras de firewall da VPC e as políticas de firewall de rede são aplicadas no nível da VPC. Uma grande diferença entre as regras de firewall da VPC e as políticas de firewall de rede é que as regras de firewall da VPC só podem ser aplicadas a uma única rede VPC, enquanto as políticas de firewall de rede podem ser anexadas a uma única VPC ou grupo de VPCs, entre outros benefícios, como a atualização em lote.
Por fim, também temos as regras de firewall implícitas que vêm com todas as redes VPC:
- Uma regra de saída cuja ação é permitir e o destino é 0.0.0.0/0
- Uma regra de entrada com a ação negar e a origem 0.0.0.0/0
Por padrão, a sequência de aplicação é mostrada no diagrama a seguir:

A ordem de aplicação entre as regras de firewall da VPC e a política de firewall de rede global pode ser trocada. Os clientes podem especificar a ordem de aplicação a qualquer momento com um comando gcloud.
Tags
As novas tags integradas às regras da política de firewall de rede são recursos de par de chave-valor definidos no nível da organização da hierarquia de recursos do Google Cloud. Como o nome sugere, essa tag contém um controle de acesso do IAM que especifica quem pode fazer o quê na tag. Com as permissões do IAM, por exemplo, é possível especificar quais principais podem atribuir valores a tags e quais principais podem anexar tags a recursos. Depois que uma tag é aplicada a um recurso, as regras de firewall de rede podem usá-la para permitir e negar o tráfego.
As tags seguem o modelo de recursos de herança do Google Cloud, o que significa que as tags e os respectivos valores são transmitidos para baixo na hierarquia dos pais. Como resultado, as tags podem ser criadas em um local e usadas por outras pastas e projetos em toda a hierarquia de recursos. Acesse esta página para mais detalhes sobre tags e restrição de acesso.
As tags não devem ser confundidas com tags de rede, que são strings adicionadas a instâncias do Compute Engine. Elas são associadas à instância e desaparecem quando ela é desativada. As regras de firewall da VPC podem incluir tags de rede, mas, como não são consideradas recursos de nuvem, elas não estão sujeitas ao controle de acesso do IAM.
Neste documento, os termos "tags" e "tags gerenciadas pelo IAM" são usados de forma intercambiável.
O que você vai criar
Este codelab tem duas partes. A primeira demonstra políticas de firewall de rede e tags usando uma única rede VPC. A segunda mostra como usar tags em redes VPC com peering, conforme o diagrama abaixo. Portanto, este codelab exige um único projeto e a capacidade de criar várias redes VPC.

O que você vai aprender
- Como criar uma política de firewall de rede
- Como criar e usar tags com a política de firewall de rede
- Como usar tags no peering de rede VPC
O que é necessário
- Projeto do Google Cloud
- Conhecimento sobre como implantar instâncias e configurar componentes de rede
- Conhecimento sobre a configuração de firewall da VPC
2. Antes de começar
Criar/atualizar variáveis
Este codelab usa $variáveis para ajudar na implementação da configuração da gcloud no Cloud Shell.
No Cloud Shell, faça o seguinte:
gcloud config set project [project-id] export project_id=`gcloud config list --format="value(core.project)"` export org_id=[org] export region=us-central1 export zone=us-central1-a export prefix=fwpolicy
3. Criar rede e sub-rede VPC
Rede VPC
Crie fwpolicy-vpc1:
gcloud compute networks create $prefix-vpc1 --subnet-mode=custom
Sub-redes
Crie as respectivas sub-redes na região selecionada:
gcloud compute networks subnets create $prefix-vpc1-subnet \ --range=10.0.0.0/24 --network=$prefix-vpc1 --region=$region
Cloud NAT
Crie os Cloud Routers e gateways do Cloud NAT para fwpolicy-pc1:
gcloud compute routers create $prefix-vpc1-cr \ --region=$region --network=$prefix-vpc1 gcloud compute routers nats create $prefix-vpc1-cloudnat \ --router=$prefix-vpc1-cr --router-region=$region \ --auto-allocate-nat-external-ips \ --nat-all-subnet-ip-ranges
4. Criar instâncias
Crie uma regra de firewall que permita o tráfego SSH de entrada dos intervalos do IAP caso ainda não tenha sido definida como parte da configuração do IAP:
gcloud compute firewall-rules create allow-ssh-ingress-from-iap-vpc1 \ --direction=INGRESS \ --action=allow \ --network=$prefix-vpc1 \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20
Crie as instâncias de cliente fwpolicy-vpc1 e de servidor da Web:
gcloud compute instances create $prefix-vpc1-www \
--subnet=$prefix-vpc1-subnet --no-address --zone $zone \
--metadata startup-script='#! /bin/bash
apt-get update
apt-get install apache2 -y
a2ensite default-ssl
a2enmod ssl
# Read VM network configuration:
md_vm="http://169.254.169.254/computeMetadata/v1/instance/"
vm_hostname="$(curl $md_vm/name -H "Metadata-Flavor:Google" )"
filter="{print \$NF}"
vm_network="$(curl $md_vm/network-interfaces/0/network \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
vm_zone="$(curl $md_vm/zone \
-H "Metadata-Flavor:Google" | awk -F/ "${filter}")"
# Apache configuration:
echo "Page on $vm_hostname in network $vm_network zone $vm_zone" | \
tee /var/www/html/index.html
systemctl restart apache2'
gcloud compute instances create $prefix-vpc1-client \
--subnet=$prefix-vpc1-subnet --no-address --zone $zone
Como não há regras de firewall da VPC definidas (além da regra de permissão do SSH, que deveria ter sido criada ao configurar o IAP conforme o início desta seção) e, por padrão, todo o tráfego de entrada é negado, as instâncias de cliente não poderão acessar os respectivos servidores da Web. Para verificar se a solicitação vai atingir o tempo limite, abra uma nova janela e inicie uma sessão SSH na instância fwpolicy-vpc1-client e tente usar curl no servidor da Web:
user@fwpolicy-vpc1-client$ curl fwpolicy-vpc1-www --connect-timeout 2
Saída esperada:
curl: (28) Connection timed out after 2001 milliseconds
Opcionalmente, verifique se não há regras de firewall da VPC definidas para fwpolicy-vpc1 no Cloud Shell:
gcloud compute firewall-rules list --filter="network:$prefix-vpc1"
5. Política de firewall de rede global
Crie uma política de firewall de rede global:
gcloud compute network-firewall-policies create \ $prefix-example --description \ "firewall-policy-description" --global
Adicione uma regra para permitir o tráfego da Web:
gcloud compute network-firewall-policies rules create 500 \
--action allow \
--description "allow-web" \
--layer4-configs tcp:80,tcp:443 \
--firewall-policy $prefix-example \
--src-ip-ranges 10.0.0.0/16 \
--global-firewall-policy --enable-logging
Descreva a política de firewall de rede e verifique se a regra foi added:
gcloud compute network-firewall-policies describe \
$prefix-example --global
Saída esperada (role para cima até o início da saída; observe que as regras implícitas também são mostradas):
creationTimestamp: '2022-09-23T12:46:53.677-07:00'
description: "firewall-policy-description"
fingerprint: Np1Rup09Amc=
id: '7021772628738421698'
kind: compute#firewallPolicy
name: fwpolicy-example
ruleTupleCount: 13
rules:
- action: allow
description: allow-web
direction: INGRESS
disabled: false
enableLogging: true
kind: compute#firewallPolicyRule
match:
layer4Configs:
- ipProtocol: tcp
ports:
- '80'
- ipProtocol: tcp
ports:
- '443'
srcIpRanges:
- 10.0.0.0/16
priority: 500
ruleTupleCount: 5
...
Associe a política de firewall de rede a fwpolicy-vpc1:
gcloud compute network-firewall-policies associations create \
--firewall-policy $prefix-example \
--network $prefix-vpc1 \
--name $prefix-vpc1-association \
--global-firewall-policy
Valide se ela foi aplicada à rede fwpolicy-vpc1:
gcloud compute networks get-effective-firewalls $prefix-vpc1
Saída esperada. Se houver políticas hierárquicas de firewall com precedência, as regras relevantes vão aparecer na parte de cima:
TYPE FIREWALL_POLICY_NAME PRIORITY ACTION DIRECTION IP_RANGES network-firewall-policy fwpolicy-example 500 ALLOW INGRESS 10.0.0.0/16 network-firewall-policy fwpolicy-example 2147483645 GOTO_NEXT INGRESS ::/0 network-firewall-policy fwpolicy-example 2147483647 GOTO_NEXT INGRESS 0.0.0.0/0 network-firewall-policy fwpolicy-example 2147483644 GOTO_NEXT EGRESS ::/0 network-firewall-policy fwpolicy-example 2147483646 GOTO_NEXT EGRESS 0.0.0.0/0
Valide se ela foi aplicada ao servidor da Web fwpolicy-vpc1:
gcloud compute instances network-interfaces \ get-effective-firewalls $prefix-vpc1-www --zone $zone
A saída esperada é semelhante ao comando anterior (firewalls efetivos fwpolicy-vpc1):
TYPE FIREWALL_POLICY_NAME PRIORITY ACTION DIRECTION IP_RANGES network-firewall-policy fwpolicy-example 500 ALLOW INGRESS 10.0.0.0/16 network-firewall-policy fwpolicy-example 2147483645 GOTO_NEXT INGRESS ::/0 network-firewall-policy fwpolicy-example 2147483647 GOTO_NEXT INGRESS 0.0.0.0/0 network-firewall-policy fwpolicy-example 2147483644 GOTO_NEXT EGRESS ::/0 network-firewall-policy fwpolicy-example 2147483646 GOTO_NEXT EGRESS 0.0.0.0/0
Volte para a sessão SSH vpc1-client e tente executar curl novamente. O comando abaixo pressupõe que fwpolicy foi usado como prefixo. Ajuste o comando curl de acordo se um nome diferente foi usado:
user@vpc1-client$ curl fwpolicy-vpc1-www --connect-timeout 2 Page on vpc1-www in network vpc1 zone us-central1-a
No Cloud Shell, valide se a política de firewall de rede foi aplicada a fwpolicy-vpc1:
gcloud compute network-firewall-policies describe \ $prefix-example --global
Saída esperada (role para cima até o início da saída):
--- associations: - attachmentTarget: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/fwpolicy-vpc1 name: fwpolicy-vpc1-association ...
6. Tags gerenciadas pelo IAM
Uma tag é um par de chave-valor que pode ser anexado a uma organização, pasta ou projeto. Consulte Como criar e gerenciar tags e as permissões necessárias para mais detalhes.
A função tagAdmin permite criar, atualizar e excluir tags. Um administrador da organização pode conceder esse papel. No Cloud Shell, atualize a política do IAM para adicionar a função tagAdmin ao seu usuário. Use a página referência de permissões para saber quais permissões estão incluídas em cada papel predefinido.
gcloud organizations add-iam-policy-binding $org_id \ --member user:[user@example.com] --role roles/resourcemanager.tagAdmin
Execute o comando abaixo para verificar quais usuários têm a função resourcemanager.tagAdmin:
gcloud organizations get-iam-policy $org_id --flatten=bindings \ --filter=bindings.role:roles/resourcemanager.tagAdmin
Crie uma chave de tag:
gcloud resource-manager tags keys create tags-vpc1 \ --parent organizations/$org_id \ --purpose GCE_FIREWALL \ --purpose-data network=$project_id/$prefix-vpc1
Saída esperada:
Waiting for TagKey [tags-vpc1] to be created...done. createTime: '2022-09-23T20:49:01.162228Z' etag: PwvmFuHO4wK1y6c5Ut2n5w== name: tagKeys/622132302133 namespacedName: ORGANIZATION_ID/tags-vpc1 parent: organizations/ORGANIZATION_ID purpose: GCE_FIREWALL purposeData: network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/6749205358365096383 shortName: tags-vpc1 updateTime: '2022-09-23T20:49:03.873776Z'
Crie novos valores de tag:
gcloud resource-manager tags values create web-servers \ --parent=$org_id/tags-vpc1 gcloud resource-manager tags values create web-clients \ --parent=$org_id/tags-vpc1
Valide se os valores das tags foram criados:
gcloud resource-manager tags values list \ --parent=$org_id/tags-vpc1
Saída esperada:
NAME SHORT_NAME DESCRIPTION tagValues/349564376683 web-servers tagValues/780363571446 web-clients
No Cloud Shell, descreva a regra de política de firewall de rede atual para confirmar que as tags não estão sendo usadas:
gcloud compute network-firewall-policies rules describe 500 \
--firewall-policy $prefix-example \
--global-firewall-policy
Saída esperada:
---
action: allow
description: allow-web
direction: INGRESS
disabled: false
enableLogging: true
kind: compute#firewallPolicyRule
match:
layer4Configs:
- ipProtocol: tcp
ports:
- '80'
- ipProtocol: tcp
ports:
- '443'
srcIpRanges:
- 10.0.0.0/16
priority: 500
ruleTupleCount: 5
No Cloud Shell, atualize a regra para permitir apenas o tráfego da chave de tag vpc1-tags/web-clients e instale a regra em instâncias com a chave de tag vpc1-tags/web-servers.
gcloud compute network-firewall-policies rules update 500 \
--firewall-policy $prefix-example \
--src-secure-tags $org_id/tags-vpc1/web-clients \
--target-secure-tags $org_id/tags-vpc1/web-servers \
--global-firewall-policy
No Cloud Shell, descreva a regra de política de firewall de rede atual para confirmar se as tags foram aplicadas e são informadas como EFICAZES:
gcloud compute network-firewall-policies rules describe 500 \
--firewall-policy $prefix-example \
--global-firewall-policy
Saída esperada:
---
action: allow
description: allow-web
direction: INGRESS
disabled: false
enableLogging: false
kind: compute#firewallPolicyRule
match:
layer4Configs:
- ipProtocol: tcp
ports:
- '80'
- ipProtocol: tcp
ports:
- '443'
srcIpRanges:
- 10.0.0.0/16
srcSecureTags:
- name: tagValues/479619031616
state: EFFECTIVE
priority: 500
ruleTupleCount: 7
targetSecureTags:
- name: tagValues/230424970229
state: EFFECTIVE
No Cloud Shell, verifique se a regra foi aplicada a vpc1:
gcloud compute networks get-effective-firewalls $prefix-vpc1
Saída esperada:
network-firewall-policy fwpolicy-example 500 ALLOW INGRESS 10.0.0.0/16 network-firewall-policy fwpolicy-example 2147483645 GOTO_NEXT INGRESS ::/0 network-firewall-policy fwpolicy-example 2147483647 GOTO_NEXT INGRESS 0.0.0.0/0 network-firewall-policy fwpolicy-example 2147483644 GOTO_NEXT EGRESS ::/0 network-firewall-policy fwpolicy-example 2147483646 GOTO_NEXT EGRESS 0.0.0.0/0
Verifique se, embora a política de firewall de rede ainda esteja associada à rede VPC, a regra que permite o tráfego da Web não é mais aplicada ao servidor da Web porque a tag não foi adicionada às instâncias:
gcloud compute instances network-interfaces \ get-effective-firewalls $prefix-vpc1-www --zone $zone
Saída esperada (observe que a regra de firewall com prioridade 500 não é mostrada):
network-firewall-policy fwpolicy-example 2147483645 GOTO_NEXT INGRESS ::/0 network-firewall-policy fwpolicy-example 2147483647 GOTO_NEXT INGRESS 0.0.0.0/0 network-firewall-policy fwpolicy-example 2147483644 GOTO_NEXT EGRESS ::/0 network-firewall-policy fwpolicy-example 2147483646 GOTO_NEXT EGRESS 0.0.0.0/0
Conceda a função Usuário de Tags à tag e ao usuário específicos. Use a página referência de permissões para saber quais permissões estão incluídas em cada papel predefinido.
gcloud resource-manager tags keys add-iam-policy-binding \ $org_id/tags-vpc1 \ --member user:[email] --role roles/resourcemanager.tagUser gcloud projects add-iam-policy-binding $project_id \ --member user:[email] --role roles/resourcemanager.tagUser
Verifique se a função foi adicionada com sucesso:
gcloud resource-manager tags keys get-iam-policy $org_id/tags-vpc1 gcloud projects get-iam-policy $project_id --flatten=bindings \ --filter=bindings.role:roles/resourcemanager.tagUser
Saída esperada:
bindings: - members: - user:[user] role: roles/resourcemanager.tagUser ...
Aplique a tag à instância fwpolicy-vpc1-www:
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $org_id/tags-vpc1/web-servers \ --parent \ //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-vpc1-www
Saída esperada:
Waiting for TagBinding for parent [//compute.googleapis.com/projects/PROJECT_ID/zones/us-central1-a/instances/38369703403698502] and tag value [tagValues/34 9564376683] to be created with [operations/rctb.us-central1-a.6144808968019372877]...done. done: true metadata: '@type': type.googleapis.com/google.cloud.resourcemanager.v3.CreateTagBindingMetadata name: operations/rctb.us-central1-a.6144808968019372877 response: '@type': type.googleapis.com/google.cloud.resourcemanager.v3.TagBinding name: tagBindings/%2F%2Fcompute.googleapis.com%2Fprojects%2FPROJECT_NUMBER%2Fzones%2Fus-central1-a%2Finstances%2F38369703403698502/tagValues/349564376683 parent: //compute.googleapis.com/projects/PROJECT_NUMBER/zones/us-central1-a/instances/38369703403698502 tagValue: tagValues/349564376683
Verifique as vinculações:
gcloud resource-manager tags bindings list --location $zone --effective --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-vpc1-www
Saída esperada:
namespacedTagKey: ORGANIZATION_ID/tags-vpc1 namespacedTagValue: ORGANIZATION_ID/tags-vpc1/web-servers tagKey: tagKeys/622132302133 tagValue: tagValues/349564376683
Verifique as regras de firewall efetivas novamente:
gcloud compute instances network-interfaces \ get-effective-firewalls $prefix-vpc1-www --zone $zone
Saída esperada:
network-firewall-policy fwpolicy-example 490 ALLOW INGRESS 10.0.0.0/16 network-firewall-policy fwpolicy-example 2147483645 GOTO_NEXT INGRESS ::/0 network-firewall-policy fwpolicy-example 2147483647 GOTO_NEXT INGRESS 0.0.0.0/0 network-firewall-policy fwpolicy-example 2147483644 GOTO_NEXT EGRESS ::/0 network-firewall-policy fwpolicy-example 2147483646 GOTO_NEXT EGRESS 0.0.0.0/0
Volte para a guia da sessão SSH fwpolicy-vpc1-client e tente usar curl:
user@fwpolicy-vpc1-client$ curl fwpolicy-vpc1-www --connect-timeout 2
Você conseguiu se conectar?
Para verificar isso, atualize a regra para remover os critérios de CIDR de origem usando o Cloud Shell.
gcloud compute network-firewall-policies rules update 500 \
--firewall-policy $prefix-example \
--src-ip-ranges "" \
--global-firewall-policy
gcloud compute network-firewall-policies rules describe 500 \
--firewall-policy $prefix-example \
--global-firewall-policy
action: allow
description: allow-web
direction: INGRESS
disabled: false
enableLogging: false
kind: compute#firewallPolicyRule
match:
layer4Configs:
- ipProtocol: tcp
ports:
- '80'
- ipProtocol: tcp
ports:
- '443'
srcSecureTags:
- name: tagValues/479619031616
state: EFFECTIVE
priority: 490
ruleTupleCount: 7
targetSecureTags:
- name: tagValues/230424970229
state: EFFECTIVE
Volte para a guia da sessão SSH fwpolicy-vpc1-client e tente de novo:
user@fwpolicy-vpc1-client$ curl fwpolicy-vpc1-www --connect-timeout 2
A conexão vai atingir o tempo limite desta vez, já que a tag não foi adicionada a fwpolicy-vpc1-client. No Cloud Shell, adicione e tente de novo.
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $org_id/tags-vpc1/web-clients \ --parent \ //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-vpc1-client
Volte para a guia da sessão SSH fwpolicy-vpc1-client e tente de novo. Agora deve funcionar.
user@fwpolicy-vpc1-client$ curl fwpolicy-vpc1-www --connect-timeout 2
7. Tags gerenciadas pelo IAM em vez de peering de rede VPC
No Cloud Shell, crie uma VPC, uma sub-rede e um cliente, além de configurar o peering de rede VPC entre as redes:
gcloud compute networks create $prefix-vpc2 --subnet-mode=custom
gcloud compute networks subnets create $prefix-vpc2-subnet \
--range=10.0.1.0/24 --network=$prefix-vpc2 --region=$region
gcloud compute instances create $prefix-vpc2-client \
--subnet=$prefix-vpc2-subnet --no-address --zone $zone
gcloud compute networks peerings create vpc1-to-vpc2 \
--network=$prefix-vpc1 \
--peer-project $project_id \
--peer-network $prefix-vpc2
gcloud compute networks peerings create vpc2-to-vpc1 \
--network=$prefix-vpc2 \
--peer-project $project_id \
--peer-network $prefix-vpc1
Crie uma regra de firewall que permita o tráfego SSH de entrada dos intervalos do IAP caso ainda não tenha sido definida como parte da configuração do IAP:
gcloud compute firewall-rules create allow-ssh-ingress-from-iap-vpc2 \ --direction=INGRESS \ --action=allow \ --network=$prefix-vpc2 \ --rules=tcp:22 \ --source-ranges=35.235.240.0/20
Embora as tags sejam objetos de toda a organização, as chaves de tag estão associadas a uma VPC específica e, portanto, não podem ser aplicadas a instâncias em redes diferentes. Portanto, é necessário criar uma nova chave e um valor de tag aplicáveis a vpc2:
gcloud resource-manager tags keys create tags-vpc2 \ --parent organizations/$org_id \ --purpose GCE_FIREWALL \ --purpose-data network=$project_id/$prefix-vpc2 gcloud resource-manager tags values create web-clients \ --parent=$org_id/tags-vpc2
Aplique a nova tag à instância fwpolicy-vpc2-client:
gcloud resource-manager tags bindings create \ --location $zone \ --tag-value $org_id/tags-vpc2/web-clients \ --parent \ //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-vpc2-client
Se quiser, liste as vinculações de fwpolicy-vpc2-client:
gcloud resource-manager tags bindings list --location $zone --effective --parent //compute.googleapis.com/projects/$project_id/zones/$zone/instances/$prefix-vpc2-client
Saída esperada:
namespacedTagKey: ORGANIZATION_ID/tags-vpc2 namespacedTagValue: ORGANIZATION_ID/tags-vpc2/web-clients tagKey: tagKeys/916316350251 tagValue: tagValues/633150043992
No Cloud Shell, descreva a regra de política de firewall de rede atual para confirmar que as novas tags não estão sendo usadas:
gcloud compute network-firewall-policies rules describe 500 \
--firewall-policy $prefix-example \
--global-firewall-policy
Saída esperada:
---
action: allow
description: allow-web
direction: INGRESS
disabled: false
enableLogging: true
kind: compute#firewallPolicyRule
match:
layer4Configs:
- ipProtocol: tcp
ports:
- '80'
- ipProtocol: tcp
ports:
- '443'
srcSecureTags:
- name: tagValues/479619031616
state: EFFECTIVE
priority: 500
ruleTupleCount: 6
targetSecureTags:
- name: tagValues/230424970229
state: EFFECTIVE
Atualize a regra de firewall atual para permitir as tags da rede VPC em peering:
gcloud compute network-firewall-policies rules update 500 \
--firewall-policy $prefix-example \
--src-secure-tags $org_id/tags-vpc1/web-clients,$org_id/tags-vpc2/web-clients \
--global-firewall-policy
Descreva a regra de firewall para garantir que ela foi aplicada e é informada como EFETIVA:
gcloud compute network-firewall-policies rules describe 500 \
--firewall-policy $prefix-example \
--global-firewall-policy
Saída esperada:
---
action: allow
description: allow-web
direction: INGRESS
disabled: false
enableLogging: false
kind: compute#firewallPolicyRule
match:
layer4Configs:
- ipProtocol: tcp
ports:
- '80'
- ipProtocol: tcp
ports:
- '443'
srcSecureTags:
- name: tagValues/479619031616
state: EFFECTIVE
- name: tagValues/633150043992
state: EFFECTIVE
priority: 500
ruleTupleCount: 7
targetSecureTags:
- name: tagValues/230424970229
state: EFFECTIVE
Descubra o IP de fwpolicy-vpc1-www com o comando gcloud abaixo:
gcloud compute instances list --filter=vpc1-www
Conecte-se ao fwpolicy-vpc2-client por SSH e tente usar curl no IP do fwpolicy-vpc1:
user@fwpolicy-vpc2-client$ curl [fwpolicy-vpc1-www_IP] --connect-timeout 2
Você poderá se conectar ao servidor fwpolicy-vpc1-www. Siga para a próxima seção para conferir as etapas de limpeza.
8. Etapas de limpeza
No Cloud Shell, remova as instâncias, o Cloud NAT e o Cloud Router:
gcloud -q compute instances delete $prefix-vpc2-client --zone=$zone gcloud -q compute instances delete $prefix-vpc1-client --zone=$zone gcloud -q compute instances delete $prefix-vpc1-www --zone=$zone gcloud -q compute routers nats delete $prefix-vpc1-cloudnat \ --router=$prefix-vpc1-cr --router-region=$region gcloud -q compute routers delete $prefix-vpc1-cr --region=$region
Remova a política de firewall de rede global e as tags:
gcloud -q resource-manager tags values delete \
$org_id/tags-vpc2/web-clients
gcloud -q resource-manager tags keys delete $org_id/tags-vpc2
gcloud -q resource-manager tags values delete \
$org_id/tags-vpc1/web-servers
gcloud -q resource-manager tags values delete \
$org_id/tags-vpc1/web-clients
gcloud -q resource-manager tags keys delete $org_id/tags-vpc1
gcloud -q compute network-firewall-policies associations delete \
--firewall-policy $prefix-example \
--name $prefix-vpc1-association \
--global-firewall-policy
gcloud -q compute network-firewall-policies delete \
$prefix-example --global
gcloud -q compute firewall-rules delete allow-ssh-ingress-from-iap-vpc1
gcloud -q compute firewall-rules delete allow-ssh-ingress-from-iap-vpc2
Siga as etapas abaixo se as funções tagAdmin e tagUsers foram alteradas:
gcloud organizations remove-iam-policy-binding $org_id \ --member user:[email] --role roles/resourcemanager.tagAdmin gcloud organizations remove-iam-policy-binding $org_id \ --member user:[email] --role roles/resourcemanager.tagUser
Por fim, remova os peerings de rede VPC, as sub-redes e as redes VPC:
gcloud -q compute networks peerings delete vpc1-to-vpc2 \
--network $prefix-vpc1
gcloud -q compute networks peerings delete vpc2-to-vpc1 \
--network $prefix-vpc2
gcloud -q compute networks subnets delete $prefix-vpc1-subnet \
--region $region
gcloud -q compute networks subnets delete $prefix-vpc2-subnet \
--region $region
gcloud -q compute networks delete $prefix-vpc1
gcloud -q compute networks delete $prefix-vpc2
9. Parabéns!
Parabéns! Você configurou e validou uma política de firewall de rede global com a configuração de tags.