Revogar acesso a um projeto do Google Cloud

Neste documento, descrevemos práticas recomendadas, cenários e procedimentos para revogar o acesso de um usuário a um projeto do Google Cloud. Use este documento para criar políticas e procedimentos que permitem revogar o acesso de forma consistente e em tempo hábil.

Um momento crítico na vida útil dos recursos do Google Cloud é quando se torna necessário remover o acesso de alguém a eles. Quando um funcionário deixa a empresa, o contrato com um prestador de serviços chega ao fim ou um colaborador muda para outros projetos, há alguns procedimentos necessários para revogar completamente o acesso desnecessário aos recursos.

Alguns desses processos são opcionais. Determine quais etapas serão executadas de acordo com suas necessidades de segurança, os produtos em uso e a confiança na pessoa cujo acesso está sendo revogado.

Práticas recomendadas para configurar um projeto

É possível melhorar a capacidade do projeto de revogar o acesso do usuário de modo eficiente. Isso é feito por meio de escolhas conscientes no momento da configuração.

Federar contas de usuário com seu provedor de identidade atual

Ao federar contas de usuário com o provedor de identidade atual, é possível sincronizar o status das contas de usuário. Ao remover uma conta de usuário do provedor de identidade, a identidade do usuário no Cloud Identity também é excluída, e o usuário não tem mais acesso aos recursos do Google Cloud pelas políticas de permissão.

Para mais informações, consulte Práticas recomendadas para federar o Google Cloud com um provedor de identidade externo.

Para mais práticas recomendadas relacionadas à identidade, consulte Práticas recomendadas para o planejamento de contas e organizações.

Usar Grupos do Google para gerenciar o acesso aos recursos do projeto

Os Grupos do Google permitem que você organize usuários com base na associação a equipes ou em outros critérios. Depois de criar Grupos do Google, é possível atribuir acesso a projetos e recursos do Cloud com base nos grupos. Depois, quando um usuário passa para outra equipe, basta mover a conta dele para outro grupo. Isso remove automaticamente o acesso concedido pelas políticas de permissão ao grupo anterior.

Para mais informações, consulte Como gerenciar grupos no console do Google Cloud e Criar um grupo na organização.

Usar o Login do SO

Use o Login do SO em vez das chaves SSH baseadas em metadados para vincular as contas do Linux dos usuários às respectivas identidades do Google. Ao remover uma conta de usuário, as chaves são revogadas automaticamente.

Consulte instruções em Configurar o Login do SO.

Restringir o acesso de contas de usuários externos

Não permita que usuários externos acessem o projeto, porque não é possível controlar o ciclo de vida dessas contas de usuário. Para restringir usuários externos, use a restrição de lista iam.allowedPolicyMemberDomains.

Consulte instruções em Como restringir identidades por domínio.

Usar o proxy do Cloud SQL Auth ao se conectar ao Cloud SQL

O proxy do Cloud SQL Auth permite conectar cargas de trabalho ao Cloud SQL com base nas permissões do IAM, em vez de no controle de acesso baseado em IP, como redes autorizadas. Ele valida as conexões usando as credenciais de um usuário ou conta de serviço e unindo a conexão em uma camada SSL/TLS autorizada para uma instância do Cloud SQL. É um método mais seguro de conexão do que usar certificados SSL/TLS autogerenciados ou redes autorizadas. Também é possível remover o acesso ao Cloud SQL ao revogar permissões da conta de usuário ou excluir a conta de usuário completamente.

Limitar o acesso a VMs

As máquinas virtuais, como as usadas pelo Compute Engine e pelo Google Kubernetes Engine, são grandes superfícies de possível ataque. Se alguém já acessou uma VM, especialmente com o acesso raiz ou de administrador, é extremamente difícil garantir que essa pessoa não tenha modificado a VM e deixado uma backdoor que permita a entrada no futuro. Somente pessoas com necessidades claras e específicas devem ter acesso à VM.

Por padrão, os editores e proprietários do projeto têm acesso administrativo a todas as VMs no projeto. Remova esse acesso padrão e use o princípio de privilégio mínimo para o acesso à VM.

Antes de conceder acesso de login à VM, pense em quais tarefas exigem acesso e determine se há outras maneiras de atender a essas necessidades, se possível. Por exemplo, em vez de conceder acesso ao login da VM a cada desenvolvedor para implantação de código, use ferramentas como Chef, Puppet e Salt para gerenciar implantações.

Preparar o ambiente para o rodízio de credenciais

Crie projetos e recursos para permitir uma troca fácil e sem interrupções de credenciais no nível do projeto. Essas credenciais são segredos vinculados ao próprio projeto, como chaves de conta de serviço, chaves secretas de clientes OAuth e segredos específicos de aplicativos, como senhas raiz de bancos de dados. Para mais informações, consulte Como gerenciar credenciais comprometidas do Google Cloud.

Restringir chaves da API

Ao criar e gerenciar chaves da API, restrinja o conjunto de websites, endereços IP e aplicativos que pode usá-las. Uma conta de usuário com papéis como Leitor ou Administrador de chaves de API pode ver as chaves de API do projeto. Por isso, todas as chaves sem restrições precisam ser trocadas ou excluídas para revogar o acesso ao faturamento. Para mais informações, consulte Proteger uma chave de API.

Práticas recomendadas adicionais

Além das práticas recomendadas descritas neste documento, analise as seguintes práticas:

Cenários para revogar o acesso a projetos do Google Cloud

Se você implementou as práticas recomendadas mencionadas em Práticas recomendadas para configurar seu projeto, a tabela a seguir resume como revogar o acesso.

Cenário Como revogar opções de acesso
Um funcionário sai da empresa. Se você configurar a federação entre o Cloud Identity ou o Google Workspace com o provisionamento automático de usuários, a revogação de acesso pode acontecer automaticamente.

Se você não seguir as práticas recomendadas e conceder acesso de identidades de usuários externos aos seus recursos, remova manualmente as identidades dos projetos e recursos.
A função de um funcionário muda. Você remove o funcionário do grupo da equipe.
Término de contrato. Se você configurar a federação entre o Cloud Identity ou o Google Workspace com o provisionamento automático de usuários, a revogação de acesso pode acontecer automaticamente.

Se você não seguir as práticas recomendadas e conceder acesso de identidades de usuários externos aos seus recursos, remova manualmente as identidades dos projetos e recursos.
Uma conta foi comprometida. Consulte instruções em Como processar credenciais comprometidas do Google Cloud.

Revogar acesso

Se você fez boas escolhas na configuração do projeto, os processos a seguir serão uma maneira eficiente de revogar o acesso de uma pessoa.

Para determinar a quais recursos uma pessoa tem acesso, use a Análise de políticas. Consulte instruções em Analisar políticas do IAM.

Excluir a conta de usuário do provedor de identidade

Se o usuário estiver saindo da organização e você tiver federado o Cloud Identity ou o Google Workspace ao provedor de identidade, com o provisionamento automático de usuários, a revogação de acesso pode acontecer automaticamente.

Mover a conta para outro grupo

Se o usuário estiver mudando de papel, remova a conta de usuários dos Grupos do Google atuais. Se você tiver federado o Cloud Identity ou o Google Workspace ao provedor de identidade para gerenciar a associação ao grupo, a revogação de acesso pode ocorrer automaticamente.

Remover a conta de usuário da associação ao projeto

  1. No console do Google Cloud, acesse a página de permissões do IAM.

    Permissões IAM

  2. Selecione o projeto do qual você quer remover uma conta de usuário.

  3. Clique na caixa de seleção ao lado da linha com a conta de usuário que você quer remover da lista de membros. Em seguida, clique em Remover.

Trocar as credenciais do projeto

Alternar chaves da conta de serviço

Se você usar chaves de conta de serviço para se autenticar em uma conta de serviço, será necessário alternar as chaves. Além disso, considere se a pessoa teria tido acesso a chaves de conta de serviço fora das ferramentas do Google Cloud, como o repositório de código-fonte ou as configurações do aplicativo.

  1. No Console do Google Cloud, acesse a página Credenciais da API.

    Credenciais da API

  2. Clique no nome da conta de serviço que você quer modificar.

  3. Na guia Chave, clique em Adicionar chave.

  4. Clique em Criar nova chave.

  5. Escolha o Tipo de chave que você quer criar. Na maioria das situações, o JSON é recomendado, mas o P12 está disponível para compatibilidade com versões anteriores do código que depende dele.

  6. Clique em Criar. Em seguida, o download de um arquivo com a nova chave será feito automaticamente por meio do browser. Implante essa chave nos aplicativos que precisam dela.

  7. Depois de confirmar que a nova chave funciona como esperado, volte à página de credenciais e exclua a chave anterior associada a essa conta de serviço.

Trocar chaves secretas de ID do cliente OAuth

Os segredos de ID do cliente OAuth não concedem acesso direto ao projeto. No entanto, se um invasor souber a chave secreta do ID do cliente OAuth, ele poderá falsificar seu aplicativo e solicitar acesso às Contas do Google dos usuários por meio de um aplicativo malicioso.

Talvez seja necessário trocar as chaves secretas do ID do cliente OAuth, se a pessoa que teve o acesso revogado tiver acesso à chave secreta, inclusive no repositório de código-fonte, nas configurações do aplicativo ou nos papéis do IAM.

  1. No Console do Google Cloud, acesse a página Credenciais da API.

    Credenciais da API

  2. Clique no nome do ID do cliente OAuth 2.0 que você quer modificar.

  3. Na página ID do cliente, clique em Redefinir chave secreta.

  4. Clique em Redefinir na caixa de diálogo de confirmação para revogar imediatamente a chave secreta anterior e definir uma nova. Todos os usuários ativos precisarão se autenticar novamente quando fizerem a próxima solicitação.

  5. Implante a nova chave secreta nos aplicativos que precisam dela.

Trocar chaves de API

As chaves de API não fornecem acesso ao projeto ou a dados de usuários, mas controlam quem é cobrado pelo Google por solicitações à API. Uma conta de usuário com papéis como "Leitor" ou Administrador de chaves de API pode ver as chaves de API do seu projeto. Se você tiver alguma chave sem restrições, será necessário excluí-la ou gerá-la novamente ao revogar o acesso de alguém ao projeto.

  1. No Console do Google Cloud, acesse a página Credenciais da API.

    Credenciais da API

  2. Clique no nome da chave de API que você quer modificar.

  3. Clique em Gerar chave novamente.

  4. A chave recém-criada será exibida em uma caixa de diálogo. Implante-a em qualquer aplicativo que esteja usando a chave que você quer substituir.

  5. Depois de confirmar que seus aplicativos estão funcionando como esperado com a nova chave, volte à página de credenciais e exclua a chave sem restrições anterior.

Revogar acesso a VMs

Se a pessoa que você está revogando não tiver acesso de login a nenhuma das VMs do projeto, pule esta etapa.

  1. Remova todas as chaves SSH no nível do projeto a que essa pessoa tinha acesso.

  2. Em cada VM em que a pessoa tinha acesso SSH, remova todas as chaves no nível da instância.

  3. Remova a conta da pessoa de todas as VMs que ela tinha acesso.

  4. Verifique se a pessoa instalou aplicativos suspeitos para ter acesso por backdoor à VM. Se você não tiver certeza quanto à segurança de qualquer código em execução na VM, recrie-a e reimplante os aplicativos necessários a partir da origem.

  5. Verifique se as configurações de firewall da VM não foram alteradas em relação à configuração planejada ou esperada.

  6. Caso você crie novas VMs a partir de imagens básicas personalizadas, verifique se essas imagens não foram modificadas de modo a comprometer a segurança das novas VMs.

Revogar acesso aos bancos de dados do Cloud SQL

Se o projeto não usar recursos do Cloud SQL, pule esta etapa.

  1. No Console do Google Cloud, acesse a página Instâncias de SQL.

    Instâncias de SQL

  2. Clique no código da instância no banco de dados a que você quer revogar o acesso.

  3. No menu à esquerda, clique em Conexões.

  4. Confirme se a lista de endereços IP em Redes autorizadas e a lista de aplicativos em Autorização do App Engine correspondem ao que você espera. Se a pessoa com o acesso que você está tentando revogar for capaz de acessar as redes ou os aplicativos listados, ela poderá entrar nesse banco de dados.

  5. No menu à esquerda, clique em Usuários.

  6. Exclua ou mude a senha de todas as contas de usuário às quais a pessoa tinha acesso. Atualize todos os aplicativos que precisem usar essas contas de usuário.

Reimplantar o App Engine

Por padrão, os aplicativos do App Engine têm acesso a uma conta de serviço que é um editor no projeto associado. Os gerenciadores de solicitações do App Engine podem criar novas VMs e ler ou modificar dados no Google Cloud Storage. Alguém capaz de implantar códigos no App Engine pode usar essa conta de serviço para abrir um backdoor para o projeto. Se você está preocupado com a integridade do código dos aplicativos implantados, pense na possibilidade de reimplantá-los com uma imagem conhecida do sistema de controle de versões. Faça isso inclusive com os módulos.

Verificar se as permissões foram removidas

Na CLI do Google Cloud, execute o método search-all-iam-policies para encontrar os recursos aos quais uma conta de usuário específica pode ter acesso. Por exemplo, para determinar se um usuário tem acesso aos seus recursos, execute:

gcloud asset search-all-iam-policies --scope='organizations/ORGANIZATION_ID --query='policy:IDENTITY'

Em que:

  • ORGANIZATION_ID é o número da sua organização.
  • IDENTITY é a identidade do usuário, como um endereço de e-mail.

A seguir