Quando adiciona um novo membro ao seu projeto, pode usar uma política de gestão de identidade e acesso (IAM) para atribuir a esse membro uma ou mais funções de IAM. Cada função de IAM contém autorizações que concedem ao membro acesso a recursos específicos.
O Compute Engine tem um conjunto de funções IAM predefinidas descritas nesta página. Também pode criar funções personalizadas que contenham subconjuntos de autorizações que se adequam diretamente às suas necessidades.
Para saber que autorizaçõ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 seguintes páginas.
- Para definir políticas IAM ao nível do projeto, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações na documentação da IAM.
- Para definir políticas em recursos específicos do Compute Engine, leia o artigo Conceder acesso a recursos do Compute Engine.
- Para atribuir funções a uma conta de serviço do Compute Engine, leia o artigo Crie uma VM que use uma conta de serviço gerida pelo utilizador.
O que é a IAM?
Google Cloud oferece IAM, que lhe permite conceder acesso mais detalhado a Google Cloud recursos específicos e impede o acesso indesejado a outros recursos. O IAM permite-lhe adotar o princípio de segurança do menor privilégio, pelo que concede apenas o acesso necessário aos seus recursos.
O IAM permite-lhe controlar quem (identidade) tem
que (funções) autorização para que recursos através da definição de
políticas de IAM. As políticas de IAM concedem funções específicas a um membro do projeto, dando a essa identidade determinadas autorizações. Por exemplo, para um determinado recurso, como um projeto, pode atribuir a função de administrador de rede de computação (roles/compute.networkAdmin
) a uma conta de utilizador (uma Conta Google ou uma conta de um fornecedor de identidade externo), e essa conta pode controlar recursos relacionados com a rede no projeto, mas não pode gerir outros recursos, como instâncias e discos. Também pode usar o IAM para gerir as
Google Cloud funções antigas da consola
concedidas aos membros da equipa do projeto.
A função serviceAccountUser
Quando concedida juntamente com a
função de administrador de instâncias do Compute (v1)
(roles/compute.instanceAdmin.v1
),
a função de utilizador da conta de serviço
(roles/iam.serviceAccountUser
) dá aos membros a capacidade de criar
e gerir instâncias que usam uma conta de serviço. Especificamente, a concessão das funções roles/iam.serviceAccountUser
e roles/compute.instanceAdmin.v1
em conjunto dá aos membros autorização para fazer o seguinte:
- Crie uma instância que seja executada como uma conta de serviço.
- Anexe um disco persistente a uma instância que é executada como uma conta de serviço.
- Definir metadados de instância numa instância que é executada como uma conta de serviço.
- Use o SSH para se ligar a uma instância que é executada como uma conta de serviço.
- Reconfigure uma instância para ser executada como uma conta de serviço.
Pode conceder a função Utilizador da conta de serviço (roles/iam.serviceAccountUser
) de uma das seguintes formas:
Recomendado. Conceda a função a um membro numa conta de serviço específica. Isto dá a um membro acesso à conta de serviço para a qual é um
iam.serviceAccountUser
, mas impede o acesso a outras contas de serviço para as quais o membro não é umiam.serviceAccountUser
.Conceda a função a um membro ao nível do projeto. O membro tem acesso a todas as contas de serviço no projeto, incluindo contas de serviço que forem criadas no futuro.
Se não estiver familiarizado com as contas de serviço, saiba mais sobre as contas de serviço.
Autorização daGoogle Cloud console
Para usar o Google Cloud console para aceder aos recursos do Compute Engine, tem de ter uma função que contenha a seguinte autorização no projeto:
compute.projects.get
Estabelecer ligação a uma instância como instanceAdmin
Depois de conceder a um membro do projeto a função roles/compute.instanceAdmin.v1
, este
pode estabelecer ligação a instâncias de máquinas virtuais (VM) através de ferramentas Google Cloud
padrão, como a CLI gcloud ou o
SSH no navegador.
Quando um membro usa a CLI gcloud ou o SSH no navegador, as ferramentas geram automaticamente um par de chaves públicas/privadas e adicionam a chave pública aos metadados do projeto. Se o membro não tiver autorizações para editar os metadados do projeto, a ferramenta adiciona a chave pública do membro aos metadados da instância.
Se o membro tiver um par de chaves existente que queira usar, pode adicionar manualmente a respetiva 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 de IAM a contas de serviço para limitar o acesso das suas instâncias. Use funções de IAM com contas de serviço personalizadas para:
- Limite o acesso que as suas instâncias têm às Google Cloud APIs através de funções do IAM detalhadas.
- Atribua uma identidade exclusiva a cada instância ou conjunto de instâncias.
- Limite o acesso da sua conta de serviço predefinida.
Saiba mais sobre as contas de serviço.
Grupos de instâncias geridas e IAM
Os grupos de instâncias geridos (MIGs) são recursos que realizam ações em seu nome sem interação direta do utilizador. 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 do serviço das APIs Google
para o seu projeto, que tem um endereço de email semelhante ao seguinte:
PROJECT_ID@cloudservices.gserviceaccount.com
Por predefinição, o agente do serviço das APIs Google tem a função de editor (roles/editor
) ao nível do projeto, o que lhe concede privilégios suficientes para criar recursos com base na configuração do MIG. Se estiver a personalizar o acesso para o agente do serviço das APIs Google, conceda a função Administrador da instância de computação (v1) (roles/compute.instanceAdmin.v1
) e, opcionalmente, a função Utilizador da conta de serviço (roles/iam.serviceAccountUser
). A função Utilizador da conta de serviço só é necessária se o MIG criar VMs que possam ser executadas como uma conta de serviço.
Tenha em atenção que o agente do serviço das APIs Google também é usado por outros processos, incluindo o Deployment Manager.
Quando cria um MIG ou atualiza o respetivo modelo de instância, o Compute Engine valida se o agente de serviço das APIs Google tem a seguinte função e autorizações:
- Função de utilizador da conta de serviço, que é importante se planear criar instâncias que possam ser executadas como uma conta de serviço
- Autorizações para todos os recursos referenciados a partir de modelos de instâncias, como imagens, discos, redes de VPC e sub-redes
Funções IAM do Compute Engine predefinidas
Com o IAM, todos os métodos da API Compute Engine requerem que a identidade que faz o pedido à API tenha as autorizações adequadas para usar o recurso. As autorizações são concedidas através da definição de políticas que concedem funções a um membro (utilizador, grupo ou conta de serviço) do seu projeto.
Além das funções básicas (leitor, editor, proprietário) e das funções personalizadas, pode atribuir as seguintes funções predefinidas do Compute Engine aos membros do seu projeto.
Pode conceder várias funções a um membro do projeto no mesmo recurso. Por exemplo, se a sua equipa de rede também gerir regras de firewall, pode conceder roles/compute.networkAdmin
e roles/compute.securityAdmin
ao grupo Google da equipa de rede.
As tabelas seguintes descrevem as funções de IAM do Compute Engine predefinidas, bem como as autorizações contidas em cada função. Cada função contém um conjunto de autorizações adequado para uma tarefa específica. Por exemplo, as funções de administrador de instâncias concedem autorizações para gerir instâncias, as funções relacionadas com a rede incluem autorizações para gerir recursos relacionados com a rede e a função de segurança inclui autorizações para gerir recursos relacionados com a segurança, como firewalls e certificados SSL. Quando trabalha no Compute Engine, também pode precisar de funções para outros serviços, como o Cloud DNS e as contas de serviço do IAM. Para ver uma lista completa de funções de IAM, consulte a documentação de referência de funções de 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. |
|
Instance Group Manager Service Agent( Role containing all permissions required by Managed Instance Groups to create and manage instances. |
|
Interconnect Attachment Group Analyzer( Analyze Interconnect Attachment Groups via their GetOperationalStatus method. |
|
Interconnect Group Analyzer( Analyze Interconnect Groups via their GetOperationalStatus method. |
|
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 Engine Service Agent( Gives Compute Engine Service Account access to assert service account authority. Includes access to service accounts. |
|
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:
|
|
O que se segue?
- Saiba mais sobre a IAM
- Crie e faça a gestão de funções personalizadas da IAM
- Conceda funções do IAM a utilizadores do projeto
- Conceda funções IAM para recursos específicos do Compute Engine
- Conceda funções da IAM a contas de serviço