Por padrão, todos Google Cloud os projetos vêm com um único usuário: o criador original do projeto. Nenhum outro usuário tem acesso ao projeto e, portanto, acesso aos recursos do Compute Engine, até que um usuário seja adicionado como membro do projeto ou vinculado a um recurso específico. Esta página descreve como adicionar novos usuários ao seu projeto e como definir o controle de acesso para os recursos do Compute Engine usando o gerenciamento de identidade e acesso (IAM).
Para obter informações sobre como fornecer acesso a aplicativos em execução nas instâncias do Compute Engine, consulte Como a autorização é determinada .
Opções de controle de acesso para usuários
Para permitir que os usuários criem e gerenciem os recursos do Compute Engine, você pode adicionar usuários como membros da equipe ao seu projeto ou a recursos específicos e conceder-lhes permissões usando funções do IAM .
Um membro da equipe pode ser um usuário individual com uma Conta do Google válida ou uma conta de usuário de um provedor de identidade externo , um Grupo do Google, um grupo de identidades de um pool de identidades da força de trabalho, uma conta de serviço ou um domínio do Google Workspace. Ao adicionar um membro da equipe a um projeto ou recurso, você especifica quais funções conceder a ele. O IAM fornece três tipos de funções: funções predefinidas , funções básicas e funções personalizadas .
Os recursos herdam as políticas de seus recursos pais noGoogle Cloudhierarquia de recursos . A política eficaz para um recurso é a união da política definida nesse recurso e da política herdada do seu pai.
Papéis predefinidos do Compute Engine
As funções predefinidas concedem um conjunto de permissões relacionadas. O Compute Engine oferece os seguintes papéis predefinidos:
Título da função | Capacidades | Usuário alvo |
---|---|---|
Usuário de imagem do Compute Engine | Permissão para listar e usar imagens de outro projeto. Conceda esta função a um membro junto com outra função para que o membro possa usar imagens de outro projeto para criar um novo recurso. Por exemplo, conceda essa função e a função 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 de APIs do Google do projeto antes de poder usar imagens de outros projetos. |
|
Administrador da instância do Compute Engine (v1) | Controle total de instâncias, grupos de instâncias, discos, snapshots 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 execução como uma conta de serviço, você também deverá conceder a função |
|
Função 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 execução como uma conta de serviço, você também deverá conceder a função |
|
Administrador de rede do Compute Engine | Permissões para criar, modificar e excluir recursos de rede, exceto regras de firewall e certificados SSL. A função de administrador de rede permite acesso somente leitura a regras de firewall, certificados SSL e instâncias (para visualizar seus endereços IP temporários). A função de administrador de rede não permite que um membro crie, inicie, interrompa 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 beta do balanceador de carga do Compute Engine | Permissões para criar, modificar e excluir balanceadores de carga e recursos associados. | Administradores de balanceador 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 uma conta de serviço. Você não deve conceder esse papel por si só porque ele não fornece permissões para a API Compute Engine. Você deve conceder a um membro esta função e outra função, como a função de administrador da instância. |
|
Função de visualizador do Compute Engine | Acesso somente leitura para obter e listar recursos do Compute Engine, sem poder ler os dados armazenados neles. Por exemplo, uma conta com esta função poderia inventariar todos os discos de um projeto, mas não poderia ler nenhum dado nesses discos. | Administradores de sistema |
Usuário da rede do Compute Engine | Permissões para usar uma rede VPC compartilhada . Especificamente, conceda esta função aos proprietários de serviços que precisam de utilizar recursos no projeto anfitrião. Uma vez concedido, os proprietários do serviço podem usar sub-redes e redes que pertencem ao projeto host. Por exemplo, um usuário da rede pode criar uma instância de VM que pertença a uma rede host VPC compartilhada, mas não pode excluir ou criar novas redes no projeto host. |
|
Visualizador de rede do Compute Engine | Acesso somente leitura a todos os recursos de rede. Por exemplo, se você tiver um software que inspeciona a configuração da sua rede, poderá conceder à conta de serviço desse software a função de visualizador de rede. |
|
Administrador de armazenamento do Compute Engine Beta | Permissões para criar, modificar e excluir discos, imagens e instantâneos. Por exemplo, se sua empresa tem alguém que gerencia imagens e você não deseja que ele tenha a função de editor no projeto, conceda essa função à conta dele. |
|
Administrador de VPC compartilhada do Compute Engine | Permissões para administrar projetos host de VPC compartilhados, habilitando especificamente os projetos host e associando projetos de serviço à rede do projeto host. Essa função só pode ser concedida no nível da organização. | Criadores de projetos |
Para ver uma lista de métodos de API aos quais um papel específico concede permissão, revise a documentação dos papéis do IAM do Compute Engine .
Matriz de funções predefinidas
A tabela a seguir fornece uma comparação completa dos recursos de cada função do Compute Engine.
Capacidade | Administrador da instância (v1) | Usuário de imagem | Usuário da rede | Visualizador de rede | Administrador de rede | Administrador de segurança | Administrador de armazenamento | Administrador de VPC compartilhada | Administrador de computação | Visualizador de computação | Administrador do balanceador de carga |
---|---|---|---|---|---|---|---|---|---|---|---|
Criar ou excluir instâncias de VM | * | ||||||||||
SSH em instâncias de VM | * | * | |||||||||
Liste ou obtenha instâncias de VM | |||||||||||
Crie ou exclua imagens, discos, instantâneos | |||||||||||
Liste ou obtenha imagens | |||||||||||
Criar ou excluir grupos de instâncias | * | ||||||||||
Liste ou obtenha grupos de instâncias | |||||||||||
Criar e gerenciar balanceadores de carga | |||||||||||
Crie e gerencie VPNs | |||||||||||
Ver recursos de rede/sub-rede | |||||||||||
Ver regras de firewall | |||||||||||
Crie e gerencie firewalls e certificados SSL | para firewalls, para certificados SSL | ||||||||||
Crie e gerencie projetos host de VPC compartilhados | |||||||||||
Use redes e sub-redes em um projeto host de VPC compartilhado | |||||||||||
Crie e gerencie redes e sub-redes |
*Se a instância de VM puder ser executada como uma conta de serviço, conceda também a função de usuário da conta de serviço.
Para ver uma lista de métodos de API aos quais um papel específico concede permissão, revise a documentação dos papéis do IAM do Compute Engine .
Funções básicas do IAM
As funções básicas do IAM são mapeadas diretamente para as funções de proprietário, editor e visualizador do projeto legado. Geralmente, você deve usar funções predefinidas sempre que possível; entretanto, em alguns casos, onde o IAM ainda não é compatível, talvez seja necessário usar uma função básica para conceder as permissões corretas.
Título da função | Permissões |
---|---|
Owner | Todos os privilégios de visualizador e editor, além da capacidade de alterar configurações de faturamento, gerenciar controle de acesso e excluir um projeto. |
Editor | Todos os privilégios de visualizador, além da capacidade de criar, modificar e excluir recursos. |
Viewer | Permissões somente leitura para todos os recursos; nenhuma permissão para alterar recursos. |
Para saber mais sobre funções básicas, leia a documentação sobre funções básicas .
Se as funções predefinidas ou básicas não atenderem às suas necessidades, você poderá criar funções personalizadas .
Políticas do IAM para recursos do Compute Engine
Você pode conceder acesso aos recursos do Compute Engine, como instâncias de VM, imagens e discos, anexando políticas do IAM diretamente a esses recursos. Uma política do IAM permite gerenciar funções do IAM nesses recursos em vez de, ou além de, gerenciar funções no nível do projeto. Isso lhe dá flexibilidade para aplicar o princípio do menor privilégio, que consiste em conceder acesso apenas aos recursos específicos de que os colaboradores precisam para realizar seu trabalho.
Com as políticas do IAM para recursos do Compute Engine, as organizações podem:
- Conceda aos usuários acesso a um subconjunto específico de recursos . Suponha que Alice deva gerenciar um subconjunto de instâncias em um projeto. Com políticas do IAM em nível de instância, você concede a ela a função
compute.instanceAdmin.v1
somente nessas instâncias. Se você concedesse a mesma função a Alice no projeto, ela teria permissão para modificar todas as instâncias do projeto. - Permitir que os administradores concedam acesso . Os administradores podem conceder a outras pessoas acesso a instâncias, discos e imagens sem a necessidade de serem proprietários poderosos do projeto. Suponha que Bob seja um desenvolvedor que recebeu a função
compute.storageAdmin
em uma imagem específica. Ele pode compartilhar essa imagem com seus colegas de equipe concedendo-lhes a funçãocompute.imageUser
na imagem. Sem políticas de IAM para recursos do Compute Engine, Bob não poderá compartilhar essa imagem com os colegas de equipe, a menos que se torne proprietário do projeto, pois precisaria modificar a política de IAM do projeto.
Os recursos também herdam as políticas dos seus recursos pais. Se você definir uma política no nível do projeto, ela será herdada por todos os seus recursos filhos. A política eficaz para um recurso é a união da política definida nesse recurso e da política herdada do nível superior na hierarquia. Para obter mais informações, leia sobre a hierarquia de políticas do IAM .
Políticas da organização
Se você for membro do Google Workspace, seu projeto poderá fazer parte de um recurso da organização . Um recurso Organização é o supernó no Google Cloudhierarquia de recursos intimamente associada a uma conta do Google Workspace. Após a criação de um recurso Organização para um domínio do Google Workspace, todosGoogle Cloud os projetos criados por membros do domínio pertencem ao recurso Organização.
Uma organização pode implementar políticas organizacionais , que são políticas que restringem as configurações permitidas em toda a sua empresa.Google Cloud hierarquia de recursos. Para o Compute Engine, você pode implementar as seguintes políticas:
- Desative o acesso interativo ao console serial .
- Desative endereços IP externos para instâncias de VM .
- Restrinja quais projetos de imagem estão disponíveis para os membros do seu projeto
Para definir políticas da organização , você deve ter recebido a função orgpolicy.policyAdmin
na organização. Você também pode definir substituições específicas do projeto caso haja exceções à política.
Para saber mais sobre Organizações, leia a documentação de Organizações .
Para saber mais sobre as políticas da organização, leia a documentação sobre políticas da organização .
Concedendo aos usuários acesso SSH a instâncias de VM
Para permitir que um usuário se conecte a uma instância de VM usando SSH sem 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. Usando esse método, você pode evitar adicionar um usuário como membro do projeto, ao mesmo tempo que concede a ele acesso a instâncias específicas.
Para saber mais sobre SSH e gerenciamento de chaves SSH, leia Visão geral das chaves SSH .
Observe que se você conceder a função roles/compute.instanceAdmin.v1
a um membro do projeto, ele poderá se conectar automaticamente às instâncias usando SSH, desde que a instância não esteja configurada para ser executada como uma conta de serviço. Se a instância estiver configurada para ser executada como uma conta de serviço, você também deverá conceder a função roles/iam.serviceAccountUser
antes que o membro possa se conectar à instância.
Se você adicionar um membro como proprietário ou editor do projeto, ele também terá automaticamente acesso SSH às instâncias de VM no projeto.
Controle de acesso para aplicativos em execução em instâncias de VM
Se você executar o código do aplicativo em instâncias e o aplicativo precisar se autenticar em outros Google Cloud APIs, você pode criar contas de serviço e atribuir a essas contas de serviço funções específicas do IAM para autenticação em outros Google Cloud APIs em seu nome. Uma conta de serviço é uma conta especial que não possui credenciais de usuário e é ideal para interações entre servidores.
Para saber mais sobre contas de serviço, leia a documentação de contas de serviço .
Identidades de carga de trabalho gerenciadas para cargas de trabalho do Compute Engine
Você pode configurar o provisionamento automático e o gerenciamento do ciclo de vida de certificados X.509 do Certificate Authority Service (CA Service) usando identidades de carga de trabalho gerenciadas. Os certificados de identidade de carga de trabalho gerenciada são emitidos pelo CA Service, que é um serviço altamente disponível e escalável. Google Cloud serviço que ajuda você a simplificar e automatizar a implantação, o gerenciamento e a segurança dos serviços de CA, mantendo o controle de suas chaves privadas.
Com identidades de carga de trabalho gerenciadas, você pode se beneficiar do mTLS por VM gerenciado pelo Compute Engine. O mTLS por VM usa certificados X.509 emitidos quando você cria uma VM. Esses certificados mTLS são alternados automaticamente, então você não precisa mais se preocupar com o gerenciamento dos certificados.
As identidades de carga de trabalho gerenciadas fornecem uma base para permitir comunicações mutuamente autenticadas e criptografadas entre quaisquer duas VMs do Compute Engine. Por exemplo, quando você usa identidades de carga de trabalho gerenciadas, o serviço A em execução em uma VM se comunica com o serviço B em execução em outro canal criptografado estabelecido usando mTLS.
Para obter informações sobre como configurar identidades de carga de trabalho gerenciadas, consulte Autenticar cargas de trabalho para outras cargas de trabalho por meio de mTLS .
O que vem a seguir?
- Adicione usuários como membros da equipe .
- Saiba mais sobre as funções do IAM .
- Saiba mais sobre como adicionar e remover chaves SSH .
- Saiba mais sobre contas de serviço .