Use contas de serviço para criar políticas

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

As aplicações usam contas de serviço para fazer chamadas de API autorizadas através da autenticação como a própria conta de serviço ou como utilizadores do Google Workspace ou do Cloud ID através da delegação ao nível do domínio. Quando uma aplicação se autentica como uma conta de serviço, tem acesso a todos os recursos aos quais a conta de serviço tem autorização de acesso.

Pode usar uma conta de serviço para identificar a origem do tráfego e configurar as políticas do proxy Web seguro, conforme necessário.

Este guia mostra-lhe como fazer o seguinte:

  • Crie uma instância do Secure Web Proxy com uma política vazia.
  • Criar e anexar contas de serviço a recursos.
  • Use contas de serviço para criar uma política de proxy Web seguro.
  • Crie uma instância do Secure Web Proxy.
  • Teste a conetividade a partir das VMs.

Antes de começar

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

Para criar uma instância de proxy Web seguro, crie primeiro uma política de segurança vazia e, em seguida, crie um proxy Web.

Crie uma política de segurança vazia

Consola

  1. Na Google Cloud consola, aceda à página Políticas de SWP.

    Aceda às políticas de SWP

  2. Clique em Criar uma política.

  3. Introduza um nome para a política que quer criar, como myswppolicy.

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

  5. Na lista Regiões, selecione a região onde quer criar a política.

  6. Clique em Criar.

Cloud Shell

  1. Use o seu editor de texto preferido para criar o ficheiro POLICY_FILE.yaml. Substitua POLICY_FILE pelo nome de ficheiro que quer para o ficheiro de políticas.

  2. Adicione o seguinte ao ficheiro YAML que criou:

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

    Substitua o seguinte:

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

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

Crie um proxy Web

Consola

  1. Na Google Cloud consola, aceda à página Proxies Web.

    Aceda a Proxies Web

  2. Clique em Criar um proxy Web seguro.

  3. Introduza um nome para o proxy Web que quer criar, como myswp.

  4. Introduza uma descrição do proxy Web, como My new swp.

  5. Na lista Regiões, selecione a região onde quer criar o proxy Web.

  6. Na lista Rede, selecione a rede na qual quer criar o proxy Web.

  7. Na lista Sub-rede, selecione a sub-rede onde quer criar o proxy Web.

  8. Opcional: introduza o endereço IP do proxy Web seguro. Pode introduzir um endereço IP do intervalo de endereços IP do proxy Web seguro que reside na sub-rede que criou no passo anterior. Se não introduzir o endereço IP, a instância do proxy Web seguro escolhe automaticamente um endereço IP da sub-rede selecionada.

  9. Na lista Certificado, selecione o certificado que quer usar para criar o proxy Web.

  10. Na lista Política, selecione a política que criou para associar ao proxy Web.

  11. Clique em Criar.

Cloud Shell

  1. Use o seu editor de texto preferido para criar o ficheiro GATEWAY_FILE.yaml. Substitua GATEWAY_FILE pelo nome de ficheiro que quer para o ficheiro de proxy Web.

  2. Adicione o seguinte ao ficheiro YAML que criou:

    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 o seguinte:

    • GATEWAY_NAME: o nome desta instância
    • GATEWAY_PORT_NUMBERS: uma lista de números de portas para este 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 as suas instâncias do Secure Web Proxy nas sub-redes de proxy criadas anteriormente nos passos de configuração iniciais

      Se optar por não indicar endereços IP, omita o campo para que o proxy Web escolha um endereço IP por si.

  3. Crie uma instância do Secure Web Proxy:

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

Teste a conetividade

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

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

É esperado um erro 403 Forbidden.

Crie e anexe contas de serviço a recursos

Faça o seguinte para criar e anexar contas de serviço:

  1. Crie as contas de serviço.

  2. Anexe contas de serviço a recursos.

Crie regras do Secure Web Proxy

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

  1. Use o seu editor de texto preferido para criar um ficheiro RULE_FILE.yaml. Substitua RULE_FILE pelo nome de ficheiro escolhido.

  2. Para permitir o acesso a um URL a partir da conta de serviço escolhida, adicione o seguinte ao ficheiro 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 o seguinte:

    • RULE_NAME: um nome para esta regra
    • RULE_DESCRIPTION: uma descrição da regra que está a criar
    • RULE_PRIORITY: a prioridade desta regra; um número inferior corresponde a uma prioridade superior
    • CEL_EXPRESSION: uma expressão do Idioma de expressão comum (IEC)

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

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

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

      Substitua SERVICE_ACCOUNT pela conta de serviço que quer permitir. Tem de ser o endereço de email da conta de serviço.

  3. Importe as regras que criou:

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

Teste a conetividade

Para testar a conetividade, 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 proxy Web seguro.

O que se segue?