Ao adicionar um novo membro ao seu projeto, você pode usar uma política de gerenciamento de identidade e acesso (IAM) para conceder a esse membro uma ou mais funções do IAM. Cada função do IAM contém permissões que concedem ao membro acesso a recursos específicos.
O Compute Engine tem um conjunto de papéis predefinidos do IAM descritos nesta página. Você também pode criar funções personalizadas que contenham subconjuntos de permissões mapeadas diretamente para suas necessidades.
Para saber quais permissões são necessárias para cada método, consulte a documentação de referência da API Compute Engine:
Para obter informações sobre como conceder acesso, consulte as páginas a seguir.
- Para definir políticas do IAM em nível de projeto, consulte Concessão, alteração e revogação de acesso a recursos na documentação do IAM.
- Para definir políticas em recursos específicos do Compute Engine, leia Conceder acesso a recursos do Compute Engine .
- Para atribuir papéis a uma conta de serviço do Compute Engine, leia Como criar e ativar contas de serviço para instâncias .
O que é IAM?
Google Cloud oferece IAM , que permite fornecer acesso mais granular a determinadosGoogle Cloud recursos e impede o acesso indesejado a outros recursos. O IAM permite que você adote o princípio de segurança do menor privilégio , para que você conceda apenas o acesso necessário aos seus recursos.
O IAM permite controlar quem (identidade) tem qual permissão (funções) para quais recursos, definindo políticas do IAM. As políticas do IAM concedem funções específicas a um membro do projeto, concedendo a essa identidade determinadas permissões. Por exemplo, para um determinado recurso, como um projeto, você pode atribuir a função roles/compute.networkAdmin
a uma conta de usuário (uma Conta do Google ou uma conta de um provedor de identidade externo ) e essa conta pode controlar recursos relacionados à rede no projeto, mas não pode gerenciar outros recursos, como instâncias e discos. Você também pode usar o IAM para gerenciar os papéis legados do console do Google Cloud concedidos aos membros da equipe do projeto.
A função serviceAccountUser
Quando concedido junto com roles/compute.instanceAdmin.v1
, roles/iam.serviceAccountUser
oferece aos membros a capacidade de criar e gerenciar instâncias que usam uma conta de serviço. Especificamente, conceder roles/iam.serviceAccountUser
e roles/compute.instanceAdmin.v1
juntas dá aos membros permissão para:
- Crie uma instância que seja executada como uma conta de serviço .
- Anexe um disco permanente a uma instância executada como uma conta de serviço.
- Defina metadados de instância em uma instância executada como uma conta de serviço.
- Use SSH para se conectar a uma instância executada como uma conta de serviço.
- Reconfigure uma instância para ser executada como uma conta de serviço.
Você pode conceder roles/iam.serviceAccountUser
de duas maneiras:
Recomendado . Conceda o papel a um membro em uma conta de serviço específica . Isso dá ao membro acesso à conta de serviço da qual ele é
iam.serviceAccountUser
, mas impede o acesso a outras contas de serviço das quais o membro não éiam.serviceAccountUser
.Conceda a função a um membro no nível do projeto . O membro tem acesso a todas as contas de serviço do projeto, incluindo contas de serviço criadas no futuro.
Se você não estiver familiarizado com contas de serviço, saiba mais sobre contas de serviço .
Google Cloud Permissão do console
Para usar o console do Google Cloud para acessar recursos do Compute Engine, você precisa ter um papel que contenha a seguinte permissão no projeto:
compute.projects.get
Conectando-se a uma instância como instanceAdmin
Depois de conceder a função roles/compute.instanceAdmin.v1
a um membro do projeto, ele poderá se conectar a instâncias de máquina virtual (VM) usando padrão Google Cloudferramentas, como a CLI gcloud ou SSH-in-browser .
Quando um membro usa a CLI gcloud ou SSH no navegador, as ferramentas geram automaticamente um par de chaves pública/privada e adicionam a chave pública aos metadados do projeto. Se o membro não tiver permissões para editar metadados do projeto, a ferramenta adicionará a chave pública do membro aos metadados da instância.
Se o membro tiver um par de chaves existente que deseja usar, ele poderá adicionar manualmente sua chave pública aos metadados da instância. Saiba mais sobre como adicionar chaves SSH a uma instância .
IAM com contas de serviço
Crie novas contas de serviço personalizadas e conceda funções do IAM a contas de serviço para limitar o acesso às suas instâncias. Use funções do IAM com contas de serviço personalizadas para:
- Limite o acesso que suas instâncias têm Google Cloud APIs usando funções granulares do IAM.
- Dê a cada instância, ou conjunto de instâncias, uma identidade exclusiva.
- Limite o acesso da sua conta de serviço padrão.
Saiba mais sobre contas de serviço .
Grupos de instâncias gerenciadas e IAM
Grupos de instâncias gerenciadas (MIGs) são recursos que executam ações em seu nome sem interação direta do usuário. Por exemplo, o MIG pode adicionar e remover VMs do grupo.
Todas as operações realizadas pelo Compute Engine como parte do MIG são realizadas pelo agente de serviço de APIs do Google para seu projeto, que tem um endereço de e-mail como este: PROJECT_ID @cloudservices.gserviceaccount.com
Por padrão, o agente de serviço de APIs do Google recebe a função de editor ( roles/editor
) no nível do projeto, o que concede privilégios suficientes para criar recursos com base na configuração do MIG. Se você estiver personalizando o acesso ao agente de serviço de APIs do Google, conceda a função de administrador da instância do Compute (v1) ( roles/compute.instanceAdmin.v1
) e, opcionalmente, a função de usuário da conta de serviço ( roles/iam.serviceAccountUser
). A função de usuário da conta de serviço será necessária somente se o MIG criar VMs que possam ser executadas como uma conta de serviço.
Observe que o agente de serviço de APIs do Google também é usado por outros processos, incluindo o Deployment Manager .
Quando você cria um MIG ou atualiza seu modelo de instância, o Compute Engine valida se o agente de serviço de APIs do Google tem as seguintes funções e permissões:
- Função de usuário da conta de serviço, que é importante se você planeja criar instâncias que possam ser executadas como uma conta de serviço
- Permissões para todos os recursos referenciados em modelos de instância, como imagens, discos, redes VPC e sub-redes
Papéis predefinidos do IAM do Compute Engine
Com o IAM, cada método de API na API Compute Engine exige que a identidade que faz a solicitação de API tenha as permissões apropriadas para usar o recurso. As permissões são concedidas por meio da definição de políticas que concedem funções a um membro (usuário, grupo ou conta de serviço) do seu projeto.
Além dos papéis básicos ( visualizador, editor, proprietário ) e dos papéis personalizados , você pode atribuir os seguintes papéis predefinidos do Compute Engine aos membros do seu projeto.
Você pode conceder diversas funções a um membro do projeto no mesmo recurso. Por exemplo, se sua equipe de rede também gerencia regras de firewall, você pode conceder roles/compute.networkAdmin
e roles/compute.securityAdmin
ao grupo do Google da equipe de rede.
As tabelas a seguir descrevem os papéis predefinidos do IAM do Compute Engine, bem como as permissões contidas em cada papel. Cada função contém um conjunto de permissões adequadas para uma tarefa específica. Por exemplo, as funções de administrador de instância concedem permissões para gerenciar instâncias, as funções relacionadas à rede incluem permissões para gerenciar recursos relacionados à rede e a função de segurança inclui permissões para gerenciar recursos relacionados à segurança, como firewalls e certificados SSL. Ao trabalhar no Compute Engine, você também pode precisar de papéis para outros serviços, como Cloud DNS e contas de serviço IAM. Para obter uma lista completa de funções do IAM, consulte a documentação de referência de funções do IAM .
Role | Permissions |
---|---|
Compute Admin( Full control of all Compute Engine resources.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
Lowest-level resources where you can grant this role:
|
|
Compute Future Reservation Admin Beta(
|
|
Compute Future Reservation User Beta(
|
|
Compute Future Reservation Viewer Beta(
|
|
Compute Image User( Permission to list and read images without having other permissions on the image. Granting this role at the project level gives users the ability to list all images in the project and create resources, such as instances and persistent disks, based on images in the project. Lowest-level resources where you can grant this role:
|
|
Compute Instance Admin (beta)( Permissions to create, modify, and delete virtual machine instances. This includes permissions to create, modify, and delete disks, and also to configure Shielded VM settings.
If the user will be managing virtual machine instances that are configured
to run as a service account, you must also grant the
For example, if your company has someone who manages groups of virtual machine instances but does not manage network or security settings and does not manage instances that run as service accounts, you can grant this role on the organization, folder, or project that contains the instances, or you can grant it on individual instances. Lowest-level resources where you can grant this role:
|
|
Compute Instance Admin (v1)( Full control of Compute Engine instances, instance groups, disks, snapshots, and images. Read access to all Compute Engine networking resources. If you grant a user this role only at an instance level, then that user cannot create new instances. |
|
Compute Load Balancer Admin( Permissions to create, modify, and delete load balancers and associate resources. For example, if your company has a load balancing team that manages load balancers, SSL certificates for load balancers, SSL policies, and other load balancing resources, and a separate networking team that manages the rest of the networking resources, then grant this role to the load balancing team's group. Lowest-level resources where you can grant this role:
|
|
Compute Load Balancer Services User( Permissions to use services from a load balancer in other projects. |
|
Compute Network Admin( Permissions to create, modify, and delete networking resources, except for firewall rules and SSL certificates. The network admin role allows read-only access to firewall rules, SSL certificates, and instances (to view their ephemeral IP addresses). The network admin role does not allow a user to create, start, stop, or delete instances.
For example, if your company has a security team that manages firewalls
and SSL certificates and a networking team that manages the rest of the
networking resources, then grant this role to the networking team's group.
Or, if you have a combined team that manages both security and networking,
then grant this role as well as the
Lowest-level resources where you can grant this role:
|
|
Compute Network User( Provides access to a shared VPC network Once granted, service owners can use VPC networks and subnets that belong to the host project. For example, a network user can create a VM instance that belongs to a host project network but they cannot delete or create new networks in the host project. Lowest-level resources where you can grant this role:
|
|
Compute Network Viewer( Read-only access to all networking resources For example, if you have software that inspects your network configuration, you could grant this role to that software's service account. Lowest-level resources where you can grant this role:
|
|
Compute Organization Firewall Policy Admin( Full control of Compute Engine Organization Firewall Policies. |
|
Compute Organization Firewall Policy User( View or use Compute Engine Firewall Policies to associate with the organization or folders. |
|
Compute Organization Security Policy Admin( Full control of Compute Engine Organization Security Policies. |
|
Compute Organization Security Policy User( View or use Compute Engine Security Policies to associate with the organization or folders. |
|
Compute Organization Resource Admin( Full control of Compute Engine Firewall Policy associations to the organization or folders. |
|
Compute OS Admin Login( Access to log in to a Compute Engine instance as an administrator user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login( Access to log in to a Compute Engine instance as a standard user. Lowest-level resources where you can grant this role:
|
|
Compute OS Login External User( Available only at the organization level. Access for an external user to set OS Login information associated with this organization. This role does not grant access to instances. External users must be granted one of the required OS Login roles in order to allow access to instances using SSH. Lowest-level resources where you can grant this role:
|
|
Compute packet mirroring admin( Specify resources to be mirrored. |
|
Compute packet mirroring user( Use Compute Engine packet mirrorings. |
|
Compute Peer Subnet Migration Admin( Use subnetwork whose PURPOSE is "PEER_MIGRATION" |
|
Compute Public IP Admin( Full control of public IP address management for Compute Engine. |
|
Compute Security Admin( Permissions to create, modify, and delete firewall rules and SSL certificates, and also to configure Shielded VM settings. For example, if your company has a security team that manages firewalls and SSL certificates and a networking team that manages the rest of the networking resources, then grant this role to the security team's group. Lowest-level resources where you can grant this role:
|
|
Compute Sole Tenant Viewer( Permissions to view sole tenancy node groups |
|
Compute Storage Admin( Permissions to create, modify, and delete disks, images, and snapshots. For example, if your company has someone who manages project images and you don't want them to have the editor role on the project, then grant this role to their account on the project. Lowest-level resources where you can grant this role:
|
|
Compute Viewer( Read-only access to get and list Compute Engine resources, without being able to read the data stored on them. For example, an account with this role could inventory all of the disks in a project, but it could not read any of the data on those disks. Lowest-level resources where you can grant this role:
|
|
Compute Shared VPC Admin( Permissions to administer shared VPC host projects, specifically enabling the host projects and associating shared VPC service projects to the host project's network. At the organization level, this role can only be granted by an organization admin.
Google Cloud recommends that the Shared VPC Admin be the owner of the shared VPC host project. The
Shared VPC Admin is responsible for granting the Compute Network User role
( Lowest-level resources where you can grant this role:
|
|
OS Config Admin( Full access to OS Config resources |
|
GuestPolicy Admin Beta( Full admin access to GuestPolicies |
|
GuestPolicy Editor Beta( Editor of GuestPolicy resources |
|
GuestPolicy Viewer Beta( Viewer of GuestPolicy resources |
|
InstanceOSPoliciesCompliance Viewer Beta( Viewer of OS Policies Compliance of VM instances |
|
OS Inventory Viewer( Viewer of OS Inventories |
|
OSPolicyAssignment Admin( Full admin access to OS Policy Assignments |
|
OSPolicyAssignment Editor( Editor of OS Policy Assignments |
|
OSPolicyAssignmentReport Viewer( Viewer of OS policy assignment reports for VM instances |
|
OSPolicyAssignment Viewer( Viewer of OS Policy Assignments |
|
PatchDeployment Admin( Full admin access to PatchDeployments |
|
PatchDeployment Viewer( Viewer of PatchDeployment resources |
|
Patch Job Executor( Access to execute Patch Jobs. |
|
Patch Job Viewer( Get and list Patch Jobs. |
|
PolicyOrchestrator Admin Beta( Admin of PolicyOrchestrator resources |
|
PolicyOrchestrator Viewer Beta( Viewer of PolicyOrchestrator resources |
|
Project Feature Settings Editor( Read/write access to project feature settings |
|
Project Feature Settings Viewer( Read access to project feature settings |
|
Upgrade Report Viewer Beta( Provides read-only access to VM Manager Upgrade Reports |
|
OS Config Viewer( Readonly access to OS Config resources |
|
OS VulnerabilityReport Viewer( Viewer of OS VulnerabilityReports |
|
O que vem a seguir
- Saiba mais sobre o IAM .
- Aprenda como criar e gerenciar funções personalizadas do IAM .
- Conceda funções do IAM aos usuários do projeto .
- Conceda papéis do IAM para recursos específicos do Compute Engine .
- Conceda funções do IAM a contas de serviço .