Nesta página, descrevemos como anexar tags do Resource Manager a políticas do Secure Web Proxy. As tags do Resource Manager são rótulos que podem ser anexados a vários Google Cloud recursos, como instâncias de máquina virtual (VM). É possível usar tags para aplicar controles de acesso condicional na rede com rótulos organizacionais.
Ao usar essas tags, você pode realizar as seguintes ações:
Segmentar cargas de trabalho: é possível identificar de maneira exclusiva diferentes ambientes, como
productionoudevelopment, e tipos de serviço, comofrontendoudatabase.Centralizar o controle de acesso: é possível basear as políticas do Secure Web Proxy nessas tags. Por exemplo, crie uma regra de política que diga: "Somente o tráfego originado de recursos que tenham a tag
tag segment=productionpode acessar um conjunto específico de URLs".
Nesta página, você aprende as seguintes ações com relação à verificação de tempo de atividade:
- Criar uma instância do Secure Web Proxy com uma política vazia
- Criar e anexar uma tag do Resource Manager a uma instância de VM
- Criar uma regra do Secure Web Proxy
- Testar a conectividade de toda a configuração do Secure Web Proxy
Antes de começar
Configure as etapas de configuração inicial.
Peça a um administrador da organização para conceder a função necessária para criar e atualizar tags.
Verifique se você tem a versão 406.0.0 ou mais recente da Google Cloud CLI instalada:
gcloud version | head -n1Se você tiver uma versão anterior da CLI gcloud instalada, atualize a versão:
gcloud components update --version=406.0.0
Criar uma instância do Secure Web Proxy com uma política vazia
Para criar uma instância do Secure Web Proxy, primeiro crie uma política de segurança vazia e, em seguida, um proxy da Web que use a política.
Criar uma política de segurança vazia
Console
No Google Cloud console do, acesse a página Políticas do SWP.
Clique em Criar uma política.
No campo Nome, insira um nome para a política, como
myswppolicy.No campo Descrição, insira uma descrição para a política, como
My new swp policy.Em Regiões, selecione a região em que você quer criar a política, como
us-central1.Clique em Criar.
Cloud Shell
Use o editor de texto de sua preferência para criar um arquivo
policy.yaml.Adicione o seguinte ao arquivo
policy.yamlque você criou:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME description: POLICY_DESCRIPTIONSubstitua:
PROJECT_NAME: nome do seu projetoREGION: região em que a política é criada, comous-central1POLICY_NAME: nome da políticaPOLICY_DESCRIPTION: descrição da política
Importe a política de segurança usando o
gcloud network-security gateway-security-policies importcomando:gcloud network-security gateway-security-policies import POLICY_NAME \ --source=POLICY_FILE.yaml \ --location=REGION
Criar um proxy da Web
Console
No Google Cloud console do, acesse a página Proxies da Web.
Clique em Criar um proxy da Web seguro.
No campo Nome, insira um nome para o proxy da Web, como
myswp.No campo Descrição, insira uma descrição para o proxy da Web, como
My new swp.Em Modo de roteamento, selecione uma das seguintes opções:
- Explícito: implanta a instância do Secure Web Proxy no modo de proxy explícito.
- Próximo salto: implanta a instância do Secure Web Proxy no modo de próximo salto.
Em Regiões, selecione a região em que você quer criar o proxy da Web, como
us-central1.Em Rede, selecione a rede em que você quer criar o proxy da Web.
Em Sub-rede, selecione a sub-rede VPC que você criou durante a configuração inicial.
Opcional: no campo Endereço IP do proxy da Web, insira o endereço IP do Secure Web Proxy.
É possível inserir um endereço IP do intervalo de endereços IP do Secure Web Proxy que reside na sub-rede criada na etapa anterior. Se você não inserir o endereço IP, a instância do Secure Web Proxy vai escolher automaticamente um endereço IP da sub-rede selecionada.
Em Certificado, selecione o certificado que você quer usar para criar o proxy da Web.
Em Política, selecione a política que você criou para associar o proxy da Web.
Clique em Criar.
Cloud Shell
Use o editor de texto de sua preferência para criar um arquivo
gateway.yaml.Adicione o seguinte ao arquivo
gateway.yaml:name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME type: SECURE_WEB_GATEWAY ports: [GATEWAY_PORT_NUMBERS] certificateUrls: [CERTIFICATE_URLS] gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME network: projects/PROJECT_NAME/global/networks/NETWORK_NAME subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK routingMode: ROUTING_MODE addresses: [GATEWAY_IP_ADDRESS] scope: samplescopeSubstitua:
GATEWAY_NAME: nome dessa instância do Secure Web ProxyGATEWAY_PORT_NUMBERS: lista de números de porta para esse gateway, como[80,443]CERTIFICATE_URLS: lista de URLs de certificados SSLSUBNETWORK: sub-rede VPC que você criou durante a configuração inicialROUTING_MODE: especifique o modo de roteamento do proxy da Web necessário:EXPLICIT_ROUTING_MODE: implanta a instância do Secure Web Proxy no modo de proxy explícitoNEXT_HOP_ROUTING_MODE: implanta a instância do Secure Web Proxy no modo de próximo salto
GATEWAY_IP_ADDRESS: lista opcional de endereços IP para as instâncias do Secure Web Proxy nas sub-redes de proxy que você criou anteriormente nas etapas de configuração inicialSe você optar por não listar endereços IP, omita o campo para permitir que o proxy da Web escolha um endereço IP para você.
Crie a instância do Secure Web Proxy usando o
gcloud network-services gateways importcomando:gcloud network-services gateways import GATEWAY_NAME \ --source=gateway.yaml \ --location=REGION
Testar a conectividade
Para testar a conectividade, use o comando curl de qualquer instância de máquina virtual (VM) na rede de nuvem privada virtual (VPC):
curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
Se tudo estiver funcionando corretamente, a instância do Secure Web Proxy vai retornar um código de status 403 Forbidden. Esse erro confirma o seguinte:
A instância do Secure Web Proxy foi implantada e está recebendo tráfego ativamente.
A política do Secure Web Proxy está aplicando corretamente a postura de segurança padrão de rejeitar todo o tráfego até que você defina regras
allowespecíficas nas próximas seções.
Criar e anexar tags do Resource Manager
Criar chaves e valores de tags seguras
Exemplo: para criar uma tag para ambientes restritos, siga estas etapas:
Crie a chave de tag (
access-level) usando ogcloud resource-manager tags keys createcomando com a finalidade definida comoGCE_FIREWALL.Recupere o ID da chave de tag na saída do comando de criação ou usando o
gcloud resource-manager tags keys listcomando. Você precisa desse ID para vincular valores de tag a essa chave de tag específica.Crie o valor da tag (
restricted) usando ogcloud resource-manager tags values createcomando, especificando o ID da chave de tag como pai.
# Create the tag key # The output provides a unique ID, such as "tagKeys/1234567890" gcloud resource-manager tags keys create "access-level" \ --parent="organizations/1234567890" \ --purpose="GCE_FIREWALL" \ --purpose-values="execution_env=ANS" # Create the tag value and connect it to the key # The "--parent" flag identifies to which key this value belongs gcloud resource-manager tags values create "restricted" \ --parent="tagKeys/1234567890"Anexar tags a instâncias de VM
A anexação dessas tags associa o tráfego de saída das instâncias de VM a uma identidade de tag específica, o que permite que o proxy reconheça a carga de trabalho e aplique as regras da política de segurança.
Exemplo: considere que você tem uma instância de VM chamada
internal-tool. É possível anexar o valor da tagrestrictedainternal-toolusando o comandogcloud resource-manager tags bindings create. Essa atribuição de tag permite que o proxy identifique o tráfego originado da instância de VMinternal-tool.# Attach the "restricted" tag to a specific VM instance gcloud resource-manager tags bindings create \ --parent="//[compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool](https://compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/internal-tool)" \ --tag-value="tagValues/987654321"
Criar uma regra do Secure Web Proxy
Console
No Google Cloud console do, acesse a página Políticas do SWP.
Clique no nome da política, como
myswppolicy.Clique em Adicionar regra.
Para cada regra, faça o seguinte:
Em Prioridade, insira uma ordem de avaliação numérica para a regra. As regras são avaliadas da prioridade mais alta para a mais baixa, em que
0é a mais alta.No campo Nome, insira um nome para a regra.
No campo Descrição, insira uma descrição para a regra.
Em Ação, selecione uma das seguintes opções:
- Permitir: para permitir solicitações de conexão que correspondam à regra.
- Negar: para negar solicitações de conexão que correspondam à regra.
No campo Status, selecione uma das seguintes opções para a aplicação da regra:
- Ativado: para aplicar a regra na instância do Secure Web Proxy.
- Desativado: para não aplicar a regra na instância do Secure Web Proxy.
Na seção Correspondência de sessão, especifique o ID exclusivo da tag que você criou na seção anterior. Por exemplo:
sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"Para mais informações sobre a sintaxe de
SessionMatcher, consulte a referência da linguagem do matcher CEL.Na seção Correspondência de aplicativo, especifique os critérios para correspondência da solicitação.
Clique em Adicionar regra.
Cloud Shell
Use o editor de texto de sua preferência para criar o arquivo
rule.yaml.Para permitir o acesso a um URL da tag necessária, adicione o seguinte ao arquivo
rule.yaml:name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME description: RULE_DESCRIPTION enabled: true priority: RULE_PRIORITY sessionMatcher: CEL_EXPRESSION basicProfile: ALLOWSubstitua:
RULE_NAME: nome dessa regraRULE_DESCRIPTION: descrição da regraRULE_PRIORITY: prioridade dessa regra; um número menor corresponde a uma prioridade maiorCEL_EXPRESSION: uma expressão da Linguagem de expressão comum (CEL). Para mais informações, consulte a referência da linguagem do matcher CEL.
Por exemplo, para permitir o acesso a
example.comda tag necessária, adicione a seguinte linhasessionMatcherao arquivo YAML:sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"Substitua
TAG_VALUEpela tag que você quer permitir. Verifique se a tag segue o formato de identificador de recurso numérico, por exemplo,tagValues/567890123456.Importe as regras que você criou usando o
gcloud network-security gateway-security-policies rules importcomando:gcloud network-security gateway-security-policies rules import RULE_NAME \ --source=RULE_FILE.yaml \ --location=REGION \ --gateway-security-policy=POLICY_NAME
Testar a configuração da política
É possível testar a conectividade novamente para validar se a política do Secure Web Proxy, que depende das tags do Resource Manager para identidade, está funcionando conforme o esperado.
Para testar a conectividade, use o comando curl de qualquer VM associada à tag TAG_VALUE apropriada.
curl -x https://IPv4_ADDRESS:443 http://example.com
--proxy-insecure
Substitua IPv4_ADDRESS pelo endereço IPv4 da instância do Secure Web Proxy.
Se tudo funcionar corretamente, você vai receber um código de status 200 OK ou 403 Forbidden. Essas respostas confirmam os seguintes resultados principais:
Sucesso baseado em tags: um código de status
200 OKvalida que o tráfego de uma VM com a tag do Resource Manager correta anexada a ela corresponde à regra de política e é permitido pelo proxy. Essa correspondência verificada resulta em uma conexão bem-sucedida.Negação baseada em tags: um código de status
403 Forbiddenverifica se o tráfego de uma VM sem a tag especificada ou com uma tag incorreta tem o acesso negado corretamente pela política. Essa aplicação prova que a segmentação e a aplicação baseadas em tags estão funcionando conforme o esperado.