Usar tags para criar políticas

Nesta página, descrevemos como anexar tags do Resource Manager às políticas do Secure Web Proxy. As tags do Resource Manager são rótulos que podem ser anexados a vários recursos do Google Cloud , como instâncias de máquina virtual (VM). É possível usar tags para aplicar controles de acesso condicional em toda a rede com rótulos organizacionais atuais.

Com essas tags, é possível realizar as seguintes ações:

  • Segmentar cargas de trabalho: é possível identificar de forma exclusiva diferentes ambientes, como production ou development, e tipos de serviço, como frontend ou database.

  • Centralize o controle de acesso: é possível basear suas políticas do Secure Web Proxy nessas tags. Por exemplo, é possível criar uma regra de política que diga: "Somente o tráfego originado de recursos com a tag tag segment=production pode 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:

Antes de começar

Criar uma instância do Secure Web Proxy com uma política vazia

Para criar uma instância do Secure Web Proxy, primeiro é necessário criar 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

  1. No console do Google Cloud , acesse a página Políticas de SWP.

    Acessar as políticas do SWP

  2. Clique em Criar uma política.

  3. No campo Nome, insira um nome para a política, como myswppolicy.

  4. No campo Descrição, insira uma descrição para a política, como My new swp policy.

  5. Em Regiões, selecione a região em que você quer criar a política, como us-central1.

  6. Clique em Criar.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar um arquivo policy.yaml.

  2. Adicione o seguinte ao arquivo policy.yaml que você criou:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Substitua:

    • PROJECT_NAME: nome do projeto

    • REGION: região em que a política é criada, como us-central1

    • POLICY_NAME: nome da política

    • POLICY_DESCRIPTION: descrição da política

  3. Importe a política de segurança usando o comando gcloud network-security gateway-security-policies import:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Criar um proxy da Web

Console

  1. No console Google Cloud , acesse a página Proxies da Web.

    Acesse proxies da Web

  2. Clique em Criar um proxy da Web seguro.

  3. No campo Nome, insira um nome para o proxy da Web, como myswp.

  4. No campo Descrição, insira uma descrição para o proxy da Web, como My new swp.

  5. Em Modo de roteamento, selecione a opção Explícito.

  6. Em Regiões, selecione a região em que você quer criar o proxy da Web, como us-central1.

  7. Em Rede, selecione a rede em que você quer criar o proxy da Web.

  8. Em Sub-rede, selecione a sub-rede da VPC que você criou anteriormente como parte das etapas de configuração inicial.

  9. Opcional: no campo Endereço IP do proxy da Web, insira o endereço IP do proxy da Web seguro.

    Você pode inserir um endereço IP do intervalo de endereços IP do proxy da Web seguro que reside na sub-rede criada na etapa anterior. Se você não inserir o endereço IP, sua instância do Secure Web Proxy escolherá automaticamente um endereço IP da sub-rede selecionada.

  10. Em Certificado, selecione o certificado que você quer usar para criar o proxy da Web.

  11. Em Política, selecione a política que você criou para associar o proxy da Web.

  12. Clique em Criar.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar um arquivo gateway.yaml.

  2. 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
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Substitua:

    • GATEWAY_NAME: nome desta instância do Secure Web Proxy

    • GATEWAY_PORT_NUMBERS: lista de números de porta para este gateway, como [80,443].

    • CERTIFICATE_URLS: lista de URLs de certificados SSL

    • SUBNETWORK: a sub-rede VPC que você criou anteriormente como parte das etapas de configuração inicial.

    • GATEWAY_IP_ADDRESS: lista opcional de endereços IP das instâncias do proxy seguro da Web nas sub-redes de proxy criadas anteriormente nas etapas de configuração inicial.

      Se você não quiser listar endereços IP, omita o campo para que o proxy da Web escolha um endereço IP para você.

  3. Crie a instância do Secure Web Proxy usando o comando gcloud network-services gateways import:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

testar a conectividade

Para testar a conectividade, use o comando curl em 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, sua 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.

  • A política de proxy da Web segura está aplicando corretamente a postura de segurança padrão de rejeitar todo o tráfego até que você defina regras específicas de allow nas próximas seções.

Criar e anexar tags do Resource Manager

  1. Criar chaves e valores de tags seguras

    Google Cloud

    Exemplo: para criar uma tag para ambientes restritos, siga estas etapas:

    1. Crie a chave de tag (access-level) usando o comando gcloud resource-manager tags keys create com a finalidade definida como GCE_FIREWALL.

    2. Recupere o ID da chave de tag na saída do comando de criação ou usando o comando gcloud resource-manager tags keys list. Você precisa desse ID para vincular valores de tag a essa chave específica.

    3. Crie o valor da tag (restricted) usando o comando gcloud resource-manager tags values create, especificando o ID da chave de tag como o 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"
    
  2. Anexar tags a instâncias de VM

    Ao anexar essas tags, o tráfego de saída das instâncias de VM é associado 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: suponha que você tenha uma instância de VM chamada internal-tool. Você pode anexar o valor da tag restricted a internal-tool usando o comando gcloud resource-manager tags bindings create. Essa atribuição de tag permite que o proxy identifique o tráfego originado da instância de VM internal-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

  1. No console do Google Cloud , acesse a página Políticas de SWP.

    Acessar as políticas do SWP

  2. Clique no nome da política, como myswppolicy.

  3. Clique em Adicionar regra.

  4. Para cada regra, faça o seguinte:

    1. Em Prioridade, digite 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.

    2. No campo Nome, insira um nome para a regra.

    3. No campo Descrição, insira uma descrição para a regra.

    4. Em Ação, selecione uma das seguintes opções:

      • Permitir: para permitir solicitações de conexão que correspondem à regra.
      • Negar: para negar solicitações de conexão que correspondem à regra.
    5. No campo Status, selecione uma das seguintes opções para a aplicação da regra:

      • Ativada: para aplicar a regra na sua instância do Secure Web Proxy.
      • Desativado: para não aplicar a regra na sua instância do Secure Web Proxy.
    6. Na seção Correspondência de sessão, especifique o ID exclusivo da tag que você criou na seção anterior. Exemplo:

      sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
      

      Para mais informações sobre a sintaxe de SessionMatcher, consulte a referência da linguagem de correspondência da CEL.

    7. Na seção Correspondência de aplicativo, especifique os critérios para corresponder à solicitação.

    8. Clique em Adicionar regra.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar o arquivo rule.yaml.

  2. 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: ALLOW
    

    Substitua:

    • RULE_NAME: nome desta regra
    • RULE_DESCRIPTION: descrição da regra
    • RULE_PRIORITY: prioridade desta regra. Um número menor corresponde a uma prioridade maior.
    • CEL_EXPRESSION: uma expressão da linguagem de expressão comum (CEL). Para mais informações, consulte Referência da linguagem de correspondência da CEL.

    Por exemplo, para permitir o acesso a example.com da tag obrigatória, adicione a seguinte linha sessionMatcher ao arquivo YAML:

    sessionMatcher: "source.matchTag('TAG_VALUE') && host() == 'example.com'"
    

    Substitua TAG_VALUE pela tag que você quer permitir. Verifique se a tag segue o formato de identificador de recurso numérico, por exemplo, tagValues/567890123456.

  3. Importe as regras criadas usando o comando gcloud network-security gateway-security-policies rules import:

    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

Teste 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 em 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 sua 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 OK valida se o tráfego de uma VM com a tag correta do Resource Manager anexada corresponde à regra de política e é permitido pelo proxy. Essa correspondência verificada resulta em uma conexão bem-sucedida.

  • Negação baseada em tag: um código de status 403 Forbidden verifica 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 tag estão funcionando como esperado.

A seguir