Visão geral do controle de acesso

Por padrão, todos os projetos do Google Cloud Platform vêm com um único usuário: o criador do projeto original. Nenhum outro usuário tem acesso ao projeto e aos os recursos do Compute Engine até que um usuário seja adicionado como membro do projeto ou esteja vinculado a um recurso específico. Nesta página, descrevemos as diferentes maneiras para adicionar novos usuários ao projeto e como configurar o controle de acesso para os recursos do Compute Engine.

Além disso, se você executar aplicativos em uma instância de máquina virtual (VM, na sigla em inglês) e o aplicativo precisar acessar o Compute Engine ou outras APIs do Google Cloud Platform, será possível usar contas de serviço para autenticar seus aplicativos em vez de usar as credenciais do usuário.

Opções de controle de acesso para usuários

Para oferecer aos usuários a capacidade de criar e gerenciar recursos do Compute Engine, você pode adicionar usuários como membros da equipe ao projeto ou a recursos específicos e conceder a eles permissões usando as funções do gerenciamento de identidade e acesso do Cloud.

Um membro pode ser um usuário individual com uma conta do Google, um Grupo do Google, uma conta de serviço ou um domínio do G Suite que esteja válido. Quando você adiciona um membro da equipe a um projeto ou a um recurso, especifica quais funções devem ser concedidas. O Cloud IAM oferece três tipos de papéis: predefinidos, primários e personalizados.

Os recursos herdam as políticas do pai na hierarquia de recursos do GCP. A política efetiva de um recurso é a combinação da política definida para o recurso com a herdada do pai dele.

Papéis predefinidos do Compute Engine

Os papéis predefinidos concedem um grupo de permissões relacionadas. O Compute Engine oferece os seguintes papéis predefinidos:

Título do papel Recursos Usuário-alvo
Usuário de imagem do Compute Engine

Permissão para listar e usar imagens de outro projeto. Conceda esse papel a um membro com outro papel para que ele possa usar imagens de outro projeto para criar um novo recurso. Por exemplo, conceda esse papel e o papel de administrador de instância para que um membro possa usar imagens de outro projeto para criar instâncias de VM e discos permanentes.

Se você estiver criando grupos de instâncias gerenciadas ou usando o Deployment Manager para criar instâncias de VM, talvez seja necessário conceder esse papel à conta de serviço das APIs do Google para poder usar imagens de outros projetos.

  • Contas de serviço
  • Administradores de sistemas
  • Desenvolvedores
Administrador de instância do Compute Engine (v1)

Controle total de instâncias, grupos de instâncias, discos, instantâneos e imagens do Compute Engine. Acesso somente leitura a todos os recursos de rede do Compute Engine.

Se o membro estiver gerenciando instâncias de máquina virtual configuradas para serem executadas como uma conta de serviço, também será necessário conceder o papel de usuário da conta de serviço para que ele consiga atribuir contas de serviço a instâncias de VM.

  • Administradores de sistemas
  • Desenvolvedores
Papel de Administrador do Compute Engine

Controle total de todos os recursos do Compute Engine. Se o usuário gerenciar instâncias de máquina virtual configuradas para serem executadas como uma conta de serviço, conceda também o papel roles/iam.serviceAccountUser.

  • Administradores de sistemas
  • Desenvolvedores
Administrador de rede do Compute Engine

Permissões para criar, modificar e excluir recursos de rede, exceto regras de firewall e certificados SSL. O papel de administrador de rede permite acesso somente leitura a regras de firewall, certificados SSL e instâncias para visualizar endereços IP temporários. O papel de administrador de rede não permite que o usuário crie, inicie, pare ou exclua instâncias.

Administradores de rede
Administrador de segurança do Compute Engine

Permissões para criar, modificar e excluir regras de firewall e certificados SSL.

Administradores de segurança
Administrador de balanceamento de carga do Compute EngineBeta

Permissões para criar, modificar e excluir balanceadores de carga e recursos associados.

Administradores de balanceamento de carga
Usuário da conta de serviço do Compute Engine

Permissão para criar instâncias que usam contas de serviço e permissão para anexar um disco e definir metadados em uma instância já configurada para ser executada como conta de serviço.

Não é recomendável conceder esse papel isoladamente porque ele não fornece permissões para a API Compute Engine. Conceda esse papel a um membro junto com outro papel, como o de administrador de instâncias.

  • Administradores de sistemas
  • Desenvolvedores
Papel de Leitor do Compute Engine

Acesso somente leitura para receber e listar recursos do Compute Engine, sem poder ler os dados armazenados neles. Por exemplo, uma conta com esse papel poderia inventariar todos os discos em um projeto, mas não conseguiria ler nenhum dos dados nesses discos.

Administradores de sistema
Usuário de rede do Compute Engine

Permissões para usar uma rede VPC compartilhada. Especificamente, conceda esse papel aos proprietários de serviço que precisam usar recursos no projeto de host. Assim que o acesso é concedido, os proprietários do serviço podem usar as redes e sub-redes que pertencem ao projeto de host. Por exemplo, um usuário da rede pode criar uma instância de máquina virtual (VM, na sigla em inglês) que pertence a uma rede VPC compartilhada do projeto de host, mas não pode excluir nem criar novas redes do projeto de host.

  • Administradores de sistemas
  • Desenvolvedores
Leitor de rede do Compute Engine

Acesso somente de leitura a todos os recursos de rede. Por exemplo, se há um software que inspeciona sua configuração de rede, conceda à conta de serviço do software o papel de visualizador de rede.

  • Administradores de rede
  • Administradores de sistemas
  • Desenvolvedores
  • Contas de serviço
Administrador de armazenamento do Compute EngineBeta

Permissões para criar, modificar e excluir discos, imagens e instantâneos.

Por exemplo, se na sua empresa existe alguém que gerencia imagens e você não quer que essa pessoa tenha o papel de editor no projeto, atribua este papel à conta dela.

  • Administradores de sistemas
  • Desenvolvedores
Administrador de VPC compartilhada do Compute Engine

Permissões para administrar projetos de host da VPC compartilhada, especificamente habilitando os projetos de host e associando os projetos do serviço à rede do projeto de host. Esse papel só pode ser atribuído no nível da organização.

Criadores de projetos

Para ver uma lista dos métodos da API a que um papel específico concede permissão, leia a documentação Papéis de IAM do Compute Engine.

Matriz de papéis predefinidos

A tabela a seguir fornece uma comparação completa dos recursos de cada papel do Compute Engine.

Recurso Administrador de instâncias (v1) Usuário de imagem Usuário de rede Visualizador de rede Administrador de rede Administrador de segurança Administrador de armazenamento Administrador de VPC compartilhada Administrador do Compute Leitor do Compute Administrador do Balanceador de Carga
Criar ou excluir instâncias de VM Sim* Não Não Não Não Não Não Não Sim Não Não
SSH em instâncias de VM Sim* Não Não Não Não Não Não Não Sim* Não Não
Listar ou acessar instâncias de VM Sim Não Não Sim Sim Não Não Não Sim Sim Sim
Criar ou excluir imagens, discos, instantâneos Sim Não Não Não Não Não Sim Não Sim Sim Não
Listar ou receber imagens Sim Sim Não Não Não Não Sim Não Sim Sim Não
Criar ou excluir grupos de instâncias Sim* Não Não Não Não Não Não Não Sim Não Sim
Listar ou acessar grupos de instâncias Sim Não Não Sim Sim Não Não Não Sim Sim Sim
Criar e gerenciar balanceadores de carga Não Não Não Não Sim Não Não Não Sim Não Sim
Criar e gerenciar VPNs Não Não Não Não Sim Não Não Não Sim Não Não
Visualizar recursos de rede/sub-rede Sim Não Sim Sim Sim Não Não Não Sim Sim Sim
Visualizar regras de firewall Sim Não Sim Sim Sim Sim Não Não Sim Sim Não
Criar e gerenciar firewalls e certificados SSL Não Não Não Não Não Sim Não Não Sim Não Não para firewalls, sim para certificados SSL
Criar e gerenciar projetos de host de VPC compartilhada Não Não Não Não Não Não Não Sim Sim Não Não
Usar redes e sub-redes em um projeto de host de VPC compartilhada Não Não Sim Não Não Não Não Não Sim Não Não
Criar e gerenciar redes e sub-redes Não Não Não Não Sim Não Não Não Sim Não Não

*Se a instância de VM puder ser executada como uma conta de serviço, conceda também o papel de usuário da conta de serviço.

Para ver uma lista dos métodos da API a que um papel específico concede permissão, leia a documentação Papéis de IAM do Compute Engine.

Papéis primitivos do Cloud IAM

Os papéis primitivos do Cloud IAM são mapeados diretamente para os papéis herdados do proprietário, do editor e do visualizador do projeto. Use papéis predefinidos sempre que possível. No entanto, em alguns casos em que o Cloud IAM ainda não é compatível, talvez seja necessário usar um papel primitivo para conceder as permissões corretas.

Título do papel Permissões
Owner Todos os privilégios do visualizador e do editor, além da capacidade de alterar as configurações de faturamento, gerenciar o controle de acesso e excluir um projeto.
Editor Todos os privilégios do visualizador, além da capacidade de criar, modificar e excluir recursos.
Viewer Permissões somente leitura para todos os recursos. Sem permissão para alterar recursos.

Para saber mais sobre papéis primários, leia a documentação para Papéis primários.

Se os papéis predefinidos ou primitivos não atenderem às suas necessidades, você poderá criar papéis personalizados.

Políticas do Cloud IAM para recursos do Compute Engine

É possível conceder acesso a recursos do Compute Engine, como instâncias de VM, imagens e discos. Basta anexar políticas do Cloud IAM diretamente a esses recursos. Uma política do Cloud IAM permite gerenciar os papéis do Cloud IAM nesses recursos em vez de, ou além de, gerenciar papéis no nível do projeto. Isso lhe dá flexibilidade para aplicar o princípio do menor privilégio: conceder acesso apenas a recursos específicos que os colaboradores precisam para realizar o trabalho.

Com as políticas do Cloud IAM para recursos do Compute Engine, as organizações podem os itens a seguir:

  • Conceder aos usuários acesso a um subconjunto específico de recursos. Suponha que Alice gerencie um subconjunto de instâncias em um projeto. Com as políticas do Cloud IAM no nível da instância, você concede a ela o papel compute.instanceAdmin.v1 apenas nessas instâncias. Se você concedesse a Alice o mesmo papel no projeto, ela teria permissão para modificar todas as instâncias dele.
  • Permitir que administradores de instâncias, discos e imagens concedam a outras pessoas acesso a esses recursos, sem precisarem ser proprietários avançados de projetos. Suponha que Bob seja um desenvolvedor que recebeu o papel compute.storageAdmin em uma imagem específica. Ele pode compartilhar essa imagem com os colegas de equipe concedendo a eles o papel compute.imageUser na imagem. Sem as políticas do Cloud IAM para recursos do Compute Engine, ele precisaria ser proprietário de um projeto para compartilhar a imagem, porque seria necessário modificar a política do Cloud IAM do projeto.

Os recursos também herdam as políticas do pai. Se você definir uma política no nível do projeto, ela será herdada por todos os recursos filhos. A política efetiva para um recurso é a união do conjunto de políticas nesse recurso e a política herdada do recurso mais alto na hierarquia. Para mais informações, leia sobre a hierarquia de políticas do Cloud IAM.

Políticas da organização

Se você for um membro do G Suite, seu projeto poderá fazer parte de um recurso da organização. Um recurso da organização é o supernó na hierarquia de recursos do Google Cloud Platform. Essa hierarquia está intimamente associada a uma conta do G Suite. Depois que um recurso da organização for criado para um domínio do G Suite, todos os projetos do Cloud Platform criados por membros do domínio pertencerão a esse recurso.

Uma organização pode implementar as Políticas da organização, que são políticas que restringem as configurações permitidas em toda a hierarquia do Cloud Resource. No Compute Engine, você pode implementar as seguintes políticas:

Para definir Políticas da organização, é preciso ter o papel orgpolicy.policyAdmin nela. Também é possível definir substituições específicas do projeto caso você tenha exceções à política.

Para saber mais sobre organizações, leia a documentação Organizações.

Para saber mais sobre as Políticas da organização, leia a documentação Política da organização.

Como conceder a usuários acesso SSH para instâncias de VM

Se você quer apenas que o usuário tenha a capacidade de se conectar a uma instância de máquina virtual usando SSH, mas não quer conceder a ele a capacidade de gerenciar recursos do Compute Engine, adicione a chave pública do usuário ao projeto ou adicione a chave pública de um usuário a uma instância específica. Com esse método, é possível evitar a adição de um usuário como um membro do projeto, concedendo acesso a instâncias específicas.

Para saber mais sobre SSH e gerenciamento de chaves SSH, leia a Visão geral das chaves SSH.

Observe que, se você conceder o papel roles/compute.instanceAdmin.v1 a um membro do projeto, ele poderá se conectar automaticamente a instâncias usando SSH, desde que a instância não esteja configurada para ser executada como uma conta de serviço. Caso contrário, também será necessário conceder ao membro o papel roles/iam.serviceAccountUser para que ele possa se conectar à instância.

Se você adicionar um membro como proprietário ou editor do projeto, ele também automaticamente terá acesso por SSH às instâncias de máquina virtual no projeto.

Controle de acesso para aplicativos em execução em instâncias de VM

Se o código do aplicativo for executado em instâncias e o aplicativo precisar se autenticar em outras APIs do Google Cloud Platform, você poderá criar contas de serviço e atribuir a elas papéis específicos do Cloud IAM para se autenticar em outras APIs do Cloud Platform em seu nome. Uma conta de serviço é uma conta especial que não tem credenciais de usuário e é ideal para interações de servidor para servidor.

Para saber mais sobre contas de serviço, leia a documentação Contas de serviço.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine