Uma conta de serviço é uma Conta do Google especial não humana que aplicativos, processos automatizados ou cargas de trabalho de computação, como uma instância do Compute Engine, usam para fazer chamadas de API autorizadas. Ao contrário das contas de usuário, uma conta de serviço é identificada apenas pelo endereço de e-mail exclusivo dela.
Os aplicativos usam contas de serviço para autenticar e acessar recursos doGoogle Cloud . Quando um aplicativo é autenticado usando uma conta de serviço, ele ganha acesso aos recursos para os quais a conta de serviço recebeu permissões explícitas do Identity and Access Management. Isso fornece um método seguro, auditável e centralizado para autorização de máquina para máquina.
No Secure Web Proxy, as contas de serviço têm um papel crucial na autorização e na aplicação de políticas. Ao usar uma conta de serviço para identificar a origem do tráfego de uma carga de trabalho, é possível criar políticas granulares do Secure Web Proxy que permitem ou negam especificamente o tráfego da Web com base na identidade do aplicativo, e não apenas no endereço IP.
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 uma conta de serviço e conceder papéis do IAM
- Criar regras do Secure Web Proxy
- Testar a conectividade de toda a configuração do Secure Web Proxy
Antes de começar
Conclua as etapas de configuração inicial.
Peça a um administrador da organização para 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 -n1Se você tiver uma versão anterior da CLI gcloud instalada, atualize-a:
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 console do Google Cloud , acesse a página Políticas de 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 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 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
No console Google Cloud , 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 a opção Explícito.
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 da VPC que você criou como parte das etapas de configuração inicial.
Opcional: no campo Endereço IP do proxy da Web, insira o endereço IP do Secure Web Proxy.
Você pode 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, sua instância do Secure Web Proxy 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 addresses: [GATEWAY_IP_ADDRESS] scope: samplescopeSubstitua:
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 SSLSUBNETWORK: 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 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ê.
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, 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.
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 específicas de
allownas próximas seções.
Criar uma conta de serviço e conceder papéis do IAM
Crie uma conta de serviço: use o comando
gcloud iam service-accounts createpara criar uma conta de serviço chamadamy-swp-sano projeto Google Cloud.gcloud iam service-accounts create my-swp-sa \ --display-name="Secure Web Proxy service account" \ --description="Service account for Secure Web Proxy instances"
Conceda papéis do IAM à conta de serviço: use o comando
gcloud projects add-iam-policy-bindingpara conceder os papéis do IAM necessários à conta de serviço para que ela possa gerenciar ou usar recursos no projeto Google Cloud .Por exemplo, para permitir que a conta de serviço use recursos de rede, conceda a ela o papel de Usuário da rede do Compute (
roles/compute.networkUser).gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:my-swp-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/compute.networkUser"
Substitua
PROJECT_IDpelo ID do seu projeto doGoogle Cloud .
Criar uma regra do Secure Web Proxy
Console
No console do Google Cloud , acesse a página Políticas de SWP.
Clique no nome da política que você criou anteriormente, como
myswppolicy.Clique em Adicionar regra.
Para cada regra, faça o seguinte:
No campo Priority, 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.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 correspondem à regra.
- Negar: para negar solicitações de conexão que correspondem à regra.
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.
Na seção Correspondência de sessão, especifique o endereço de e-mail da conta de serviço criada anteriormente. Exemplo:
sessionMatcher: "source.matchServiceAccount(SERVICE_ACCOUNT) && host() == 'example.com'"Para mais informações sobre a sintaxe de
SessionMatcher, consulte a referência da linguagem de correspondência da CEL.Na seção Correspondência de aplicativo, especifique os critérios para corresponder à solicitação.
Clique em Adicionar regra.
Para adicionar outra regra, 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 conta de serviço apropriada, adicione o seguinte ao arquivo
rule.yamlque você criou: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 desta regraRULE_DESCRIPTION: descrição da regraRULE_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.comdo recurso com a conta de serviço necessária, adicione o seguinte ao arquivo YAML criado para osessionMatcher:```yaml sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'" ```Substitua
SERVICE_ACCOUNTpela conta de serviço que você quer permitir. Esse precisa ser o endereço de e-mail da conta de serviço.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 conectividade
Teste a conectividade novamente para validar se toda a configuração do Secure Web Proxy, incluindo a conta de serviço, as regras da política de segurança e o gateway, está funcionando conforme o esperado.
Para testar a conectividade, use o comando curl do recurso, como uma instância de VM, 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.
Se tudo funcionar corretamente, você vai receber um código de status 200 OK. Esse
código de status confirma os seguintes resultados principais:
Autorização bem-sucedida: prova que o tráfego originado do recurso é identificado corretamente pela conta de serviço atribuída e que essa identidade corresponde à regra
allowadicionada à política de segurança.Funcionalidade de ponta a ponta: valida se o tráfego está fluindo corretamente pelo caminho configurado, do recurso > para a instância do Secure Web Proxy > passando pela política de segurança > e chegando ao destino externo.