Usar contas de serviço para criar políticas

Uma conta de serviço é um tipo especial de conta que normalmente é usada por um aplicativo ou carga de trabalho de computação, como uma instância do Compute Engine, em vez de uma pessoa. Essa conta é identificada pelo endereço de e-mail, que é exclusivo.

Os aplicativos usam contas de serviço para fazer chamadas de API autorizadas que autenticam como a própria conta de serviço ou como um usuário do Google Workspace ou do Cloud Identity por meio da delegação em todo o domínio. Quando um aplicativo é autenticado como uma conta de serviço, ele tem acesso a todos os recursos que a conta de serviço tem permissão para acessar.

É possível usar uma conta de serviço para identificar a origem do tráfego e configurar políticas do Secure Web Proxy, conforme necessário.

Neste guia, você aprende as seguintes ações com relação à verificação de tempo de atividade:

  • Crie uma instância do Secure Web Proxy com uma política vazia.
  • Crie e anexe contas de serviço a recursos.
  • Use contas de serviço para criar uma política do Secure Web Proxy.
  • Crie uma instância do Secure Web Proxy.
  • Teste a conectividade das VMs.

Antes de começar

  • Conclua as etapas de configuração inicial.

  • Um administrador da organização conceder acesso a uma conta de serviço.

  • Verifique se você tem a versão 406.0.0 ou mais recente da Google Cloud CLI instalada:

    gcloud version | head -n1
    

    Se 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 depois um proxy da Web.

Criar uma política de segurança vazia

Console

  1. No Google Cloud console, acesse a página Segurança de rede.

    Acesse Segurança de rede

  2. Clique em Proxy seguro da Web.

  3. Clique na guia Políticas.

  4. Clique em Criar uma política.

  5. Digite um nome para a política que você quer criar, como myswppolicy.

  6. Insira uma descrição da política, como My new swp policy.

  7. Na lista Regiões, selecione a região em que você quer criar a política.

  8. Clique em Criar.

Cloud Shell

  1. Use o editor de texto de sua preferência para criar o arquivo POLICY_FILE.yaml. Substitua POLICY_FILE pelo nome do arquivo que você quer para o arquivo de política.

  2. Adicione o seguinte ao arquivo YAML criado:

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

    Substitua:

    • PROJECT_NAME: o nome do projeto.
    • REGION: a região a que esta política se aplica
    • POLICY_NAME: o nome da política que você está criando
    • POLICY_DESCRIPTION: a descrição da política que você está criando
  3. Importe a política de segurança:

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

Criar um proxy da Web

Console

  1. No Google Cloud console, acesse a página Segurança de rede.

    Acesse Segurança de rede

  2. Clique em Proxy seguro da Web.

  3. Clique em Configurar um proxy da Web.

  4. Insira um nome para o proxy da Web que você quer criar, como myswp.

  5. Insira uma descrição do proxy da Web, como My new swp.

  6. Na lista Regiões, selecione a região em que você quer criar o proxy da Web.

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

  8. Na lista Sub-rede, selecione a sub-rede em que você quer criar o proxy da Web.

  9. Digite o endereço IP do proxy da Web.

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

  11. Na lista 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 o arquivo GATEWAY_FILE.yaml. Substitua GATEWAY_FILE pelo nome de arquivo que você quer para o arquivo de proxy da Web.

  2. Adicione o seguinte ao arquivo YAML criado:

    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/SUBNET_NAME
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Substitua:

    • GATEWAY_NAME: o nome dessa instância
    • GATEWAY_PORT_NUMBERS: uma lista de números de porta para esse gateway, como [80,443]
    • CERTIFICATE_URLS: uma lista de URLs de certificados SSL
    • SUBNET_NAME: o nome da sub-rede que contém GATEWAY_IP_ADDRESS

    • GATEWAY_IP_ADDRESS: uma lista opcional de endereços IP para suas instâncias do Secure Web Proxy 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 uma instância do Secure Web Proxy:

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

testar a conectividade

Para testar a conectividade, use o comando curl em qualquer VM na sua rede de nuvem privada virtual (VPC):

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

Um erro 403 Forbidden é esperado.

Criar e anexar contas de serviço a recursos

Siga estas etapas para criar e anexar contas de serviço:

  1. Crie as contas de serviço.

  2. Anexe contas de serviço a recursos.

Criar regras do Secure Web Proxy

Para criar regras do Secure Web Proxy, faça o seguinte:

  1. Use o editor de texto de sua preferência para criar um arquivo RULE_FILE.yaml. Substitua RULE_FILE pelo nome de arquivo escolhido.

  2. Para permitir o acesso a um URL da conta de serviço escolhida, adicione o seguinte ao arquivo 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: um nome para essa regra
    • RULE_DESCRIPTION: uma descrição da regra que você está criando
    • RULE_PRIORITY: a prioridade dessa regra. Um número menor corresponde a uma prioridade maior.
    • CEL_EXPRESSION: uma expressão da linguagem de expressão comum (CEL, na sigla em inglês)

      Para mais informações, consulte a referência de linguagem do comparador de CEL.

      Por exemplo, para permitir o acesso a example.com do recurso com a conta de serviço desejada anexada, adicione o seguinte ao arquivo YAML criado para o sessionMatcher:

      sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
      

      Substitua SERVICE_ACCOUNT pela conta de serviço que você quer permitir. Ele precisa ser o endereço de e-mail da conta de serviço.

  3. Importe as regras que você criou:

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=RULE_FILE.yaml \
       --location=REGION \
       --gateway-security-policy=POLICY_NAME
    

testar a conectividade

Para testar a conectividade, use o comando curl do recurso com o SERVICE_ACCOUNT anexado:

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.

A seguir