Visão geral do controle de acesso

Por padrão, todos os projetos do Google Cloud Platform (GCP) vêm com um único usuário: o criador original do projeto. 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 como adicionar novos usuários a um projeto e definir o controle de acesso dos recursos do Compute Engine.

Além disso, se você executar aplicativos em uma máquina virtual (VM, na sigla em inglês) e o aplicativo precisar de acesso ao Compute Engine ou outras APIs GCP, será possível usar contas de serviço para autenticar aplicativos em vez de usar credenciais de 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, adicione usuários como membros da equipe ao projeto ou a recursos específicos e conceder a eles permissões usando os papéis do Cloud Identity and Access Management.

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 papéis precisam ser concedidos. 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 uniã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 papéis predefinidos a seguir:

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 o Deployment Manager para criar instâncias de VMs, talvez seja necessário conceder esse papel à conta de serviço das APIs do Google antes de 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 VM configuradas para serem executadas como uma conta de serviço, será necessário conceder o papel de usuário da conta de serviço para que elas possam 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 estiver gerenciando instâncias de VM configuradas para serem executadas como uma conta de serviço, também será necessário conceder 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 execução 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 a proprietários de serviços 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 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 leitura a todos os recursos de rede. Por exemplo, se você tem um software que inspeciona a configuração de rede, conceda o papel de leitor de rede à conta de serviço do software.

  • 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 de métodos de API para os quais um papel específico concede permissão, consulte a documentação sobre Papéis do Cloud IAM do Compute Engine.

Matriz de papéis predefinidos

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

Capacidade Administrador de instâncias (v1) Usuário de imagem Usuário de rede Leitor de rede Administrador de rede Administrador de segurança Administrador do Storage 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 buscar 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 buscar 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 de métodos de API para os quais um papel específico concede permissão, consulte a documentação sobre Papéis do Cloud IAM do Compute Engine.

Papéis primários 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 leitor 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 de leitor, 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, crie 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 dá a você flexibilidade para aplicar o princípio do menor privilégio, que é conceder acesso somente aos 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 realizar as ações 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 os administradores concedam acesso. Administradores de instâncias, discos e imagens podem conceder a outras pessoas acesso a esses recursos, sem precisarem ser proprietários 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, Bob não pode compartilhar essa imagem com os colegas de equipe se não for proprietário do projeto, porque ele precisa 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ê é membro do G Suite, seu projeto pode fazer parte de um recurso da organização. Um recurso organização é o supernó na hierarquia de recursos do GCP, que está intimamente associada a uma conta do G Suite. Depois que o recurso organização é criado para um domínio do G Suite, todos os projetos do GCP criados pelos membros do domínio pertencem 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 Google Cloud. No Compute Engine, é possível implementar as políticas a seguir:

Para definir políticas organizacionais, você precisa ter o papel orgpolicy.policyAdmin na organização. 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

Para permitir que um usuário se conecte a uma instância de VM usando SSH sem permitir que ele gerencie 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.

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

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

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

Caso o código do aplicativo esteja sendo executado em instâncias e o aplicativo precisar se autenticar em outras APIs GCP, crie contas de serviço e conceda papéis do Cloud IAM específicas para autenticar outras APIs GCP por você. 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.

A seguir

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

Enviar comentários sobre…

Documentação do Compute Engine