Neste guia, descrevemos como usar o princípio de menor privilégio ao conceder acesso a recursos específicos do Compute Engine em vez de a um recurso pai, como um projeto, uma pasta ou uma organização.
Para conceder acesso a um recurso, defina uma política de gerenciamento de identidade e acesso (IAM, na sigla em inglês) no recurso. A política vincula um ou mais membros, como um usuário ou uma conta de serviço, a um ou mais papéis. Cada papel tem uma lista de permissões que permitem que o membro interaja com o recurso.
Ao conceder acesso a um recurso pai (por exemplo, a um projeto), você concede acesso implícito a todos os recursos filhos (por exemplo, todas as VMs desse projeto). Para limitar o acesso aos recursos, defina políticas do IAM em recursos de nível inferior, quando possível, em vez de no nível do projeto ou acima.
Para informações gerais sobre como conceder, alterar e revogar o acesso a recursos não relacionados ao Compute Engine (como conceder acesso a um projeto do Google Cloud, por exemplo), consulte a documentação do IAM sobre Como conceder, alterar e revogar acesso a recursos.
Antes de começar
- Revise a visão geral do IAM.
- Leia a visão geral do controle de acesso do Compute Engine.
- Conheça os papéis do IAM para o Compute Engine .
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Para conceder ou revogar o acesso a recursos:
-
compute.projects.get
no projeto -
compute.RESOURCE_TYPE.get
no recurso -
compute.RESOURCE_TYPE.getIamPolicy
no recurso -
compute.RESOURCE_TYPE.setIamPolicy
no recurso
-
-
Para testar as permissões do autor da chamada:
compute.RESOURCE_TYPE.getIamPolicy
no recursoSubstitua RESOURCE_TYPE pelo recurso a que você quer gerenciar o acesso. Por exemplo,
instances
,instanceTemplates
ouimages
. - No console do Google Cloud, acesse a página do recurso em que você
quer incluir permissões.
- Para instâncias, acesse a página Instâncias de VMs.
- Para ver discos regionais e por zona, acesse a página "Discos".
- Para instantâneos, acesse a página Instantâneos.
- Para imagens, acesse a página Imagens.
- Para modelos de instância, acesse a página "Modelos de instância".
- Para imagens de máquina, acesse a página Imagens de máquina.
- Para fazer reservas, acesse a página Reservas.
- Para nós de locatário individual, acesse a página "Nós de locatário individual".
- Marque as caixas de seleção ao lado dos recursos que você quer atualizar.
- Conclua as etapas a seguir com base na página de recursos.
- Para instâncias de VM, clique em Permissões.
- Para todos os outros recursos, faça o seguinte:
- Verifique se o painel de informações está visível. Se não estiver, clique em Mostrar painel de informações.
- Selecione a guia Permissões.
- Clique em Adicionar principal.
- Adicione a identidade da principal e selecione o papel necessário.
- Para salvar as alterações, clique em Save.
RESOURCE_TYPE
: o tipo do recurso. Valores válidos incluem:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: o nome do recurso. Por exemplo,my_instance
.PRINCIPAL
: uma identidade válida para o principal a quem você quer conceder o papel. Precisa estar no formatouser|group|serviceAccount:EMAIL_ADDRESS
oudomain:DOMAIN_ADDRESS
. Exemplo:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: o papel que você quer atribuir ao principal.Leia a política atual com o respectivo método
getIamPolicy
do recurso. Por exemplo, a solicitação HTTP a seguir lê a política do IAM de uma VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Substitua:
PROJECT_ID
: o ID do projeto a que esta VM pertence.ZONE
: a zona da VM. Para recursos regionais ou globais, substituazones/ZONE
porregions/REGION
ouglobal
.VM_NAME
: o nome da instância de VM.
O Compute Engine retorna a política atual na resposta.
Edite a política com um editor de texto para incluir ou remover principais e os respectivos papéis. Por exemplo, para conceder o papel
compute.admin
a email@example.com, inclua a nova vinculação a seguir à política:{ "members": [ "user:email@example.com" ], "role":"roles/compute.admin" }
Grave a política atualizada com
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Substitua:
PROJECT_ID
: o ID do projeto a que esta VM pertence.ZONE
: a zona da VM. Para recursos regionais ou globais, substituazones/ZONE
porregions/REGION
ouglobal
.VM_NAME
: o nome da instância de VM.
No corpo da solicitação, forneça a política do IAM atualizada da etapa anterior.
- No console do Google Cloud, acesse a página do recurso em que você
quer incluir permissões.
- Para instâncias, acesse a página Instâncias de VMs.
- Para ver discos regionais e por zona, acesse a página "Discos".
- Para instantâneos, acesse a página Instantâneos.
- Para imagens, acesse a página Imagens.
- Para grupos de instâncias, acesse a página "Grupos de instâncias".
- Para modelos de instância, acesse a página "Modelos de instância".
- Para imagens de máquina, acesse a página Imagens de máquina.
- Para fazer reservas, acesse a página Reservas.
- Para nós de locatário individual, acesse a página "Nós de locatário individual".
- Marque as caixas de seleção ao lado dos recursos que você quer atualizar.
- Conclua as etapas a seguir com base na página de recursos.
- Para instâncias de VM, clique em Permissões.
- Para todos os outros recursos, faça o seguinte:
- Verifique se o painel de informações está visível. Se não estiver, clique em Mostrar painel de informações.
- Selecione a guia Permissões.
- Clique no card de função de que você quer remover principais. Isso expande o cartão e mostra os membros com esse papel no recurso.
- Para remover um usuário desse papel, clique em Excluir.
RESOURCE_TYPE
: tipo do recurso. Valores válidos incluem:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: nome do recurso. Por exemplo,my_instance
.PRINCIPAL
: uma identidade válida para o principal. Precisa estar no formatouser|group|serviceAccount:EMAIL_ADDRESS
oudomain:DOMAIN_ADDRESS
. Exemplo:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: o papel que você quer remover da identidade.Leia a política atual com o respectivo método
getIamPolicy
do recurso. Por exemplo, a solicitação HTTP a seguir lê a política do IAM de uma VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Substitua:
PROJECT_ID
: o ID do projeto a que esta VM pertence.ZONE
: a zona da VM. Para recursos regionais ou globais, substituazones/ZONE
porregions/REGION
ouglobal
.VM_NAME
: o nome da instância de VM.
O Compute Engine retorna a política atual na resposta.
Edite a política com um editor de texto para remover membros dos respectivos papéis. Por exemplo, remova email@example.com do papel
compute.admin
:{ "members": [ "user:owner@example.com" ], "role":"roles/compute.admin" }
Grave a política atualizada com
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Substitua:
PROJECT_ID
: o ID do projeto a que esta VM pertence.ZONE
: a zona da VM. Para recursos regionais ou globais, substituazones/ZONE
porregions/REGION
ouglobal
.VM_NAME
: o nome da instância de VM.
No corpo da solicitação, forneça a política do IAM atualizada da etapa anterior.
Envie uma solicitação para o recurso e inclua no corpo dela uma lista de permissões a serem verificadas.
Por exemplo, em uma instância, convém verificar
compute.instances.start
,compute.instances.stop
ecompute.instances.delete
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/testIamPermissions { "permissions": [ "compute.instances.start", "compute.instances.stop", "compute.instances.delete" ] }
A solicitação retorna as permissões ativadas para o autor da chamada.
{ "permissions": [ "compute.instances.start", "compute.instances.stop" ] }
- Saiba como gerenciar o acesso a imagens personalizadas com o IAM.
- Saiba mais sobre contas de serviço.
- Saiba mais sobre os Papéis do IAM do Compute Engine.
- Saiba mais sobre as permissões incluídas nos papéis predefinidos do IAM do Compute Engine.
- Saiba como criar e gerenciar papéis personalizados.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para receber as permissões necessárias para gerenciar o acesso aos recursos do Compute Engine, peça ao administrador para conceder a você o papel do IAM de Administrador do Compute (
roles/compute.admin
) no recurso. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Esse papel predefinido contém as permissões necessárias para gerenciar o acesso aos recursos do Compute Engine. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para gerenciar o acesso aos recursos do Compute Engine:
Também é possível conseguir essas permissões com papéis personalizados ou outros papéis predefinidos.
Recursos suportados
Para ver uma lista de recursos do Compute Engine compatíveis com o controle de acesso no nível do recurso, consulte Tipos de recursos que aceitam políticas do IAM e filtre por Compute Engine.
Para outros recursos do Compute Engine que não são compatíveis com o controle de acesso do recurso, é necessário gerenciar o acesso a esses recursos no projeto, na pasta ou na organização. Para informações sobre organizações, pastas ou projetos, consulte Hierarquia de recursos.
Como conceder acesso aos recursos do Compute Engine
Um principal, como uma conta de usuário ou serviço, pode acessar os recursos do Compute Engine. Uma identidade é uma propriedade de uma principal. A identidade de um principal normalmente é representada por um endereço de e-mail associado à conta.
Antes de conceder um papel de IAM a um usuário em um recurso, verifique quais papéis estão disponíveis para esse recurso específico. Para mais informações, consulte Como ver os papéis atribuíveis a recursos.
Para conceder aos usuários permissão para acessar recursos específicos do Compute Engine, defina uma política de IAM no recurso.
Console
gcloud
Para conceder um papel a um principal em um recurso, use o subcomando
add-iam-policy-binding
desse recurso com as sinalizações--member
e--role
.gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \ --member='PRINCIPAL' \ --role='ROLE'
Substitua:
Se você estiver concedendo acesso a um recurso que está em visualização, use um comando
gcloud beta compute
.REST
Para modificar uma política do IAM por meio da API, faça o seguinte:
Como revogar acesso a recursos
Como prática recomendada, depois que os membros não precisarem mais acessar seus recursos do Compute Engine, revogue o acesso deles.
Console
gcloud
Para remover um papel de um principal de um recurso, use o subcomando
remove-iam-policy-binding
do recurso com as sinalizações--member
e--role
.gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \ --member='MEMBER' \ --role='ROLE'
Substitua:
Se você quiser remover o acesso a um recurso que está atualmente na versão Beta, use um comando
gcloud beta compute
.REST
Para modificar uma política do IAM diretamente por meio da API, faça o seguinte:
Como testar se o autor da chamada tem permissões
Se você não souber quais permissões uma identidade tem, use o método de API
testIamPermissions
para verificar as permissões disponíveis para essa identidade.Esse método usa o URL de um recurso e um conjunto de permissões como parâmetros de entrada, e retorna o conjunto de permissões autorizadas ao autor da chamada. Ele pode ser usado em todos os recursos compatíveis.
Geralmente,
testIamPermissions
se destina à integração com seu software proprietário, como uma interface gráfica do usuário (GUI, na sigla em inglês) personalizada. Normalmente, você não chamatestIamPermissions
se estiver usando o Google Cloud diretamente para gerenciar as permissões.Por exemplo, se você estiver criando uma GUI na API Compute Engine e essa interface tiver um botão para iniciar uma instância, chame
compute.instances.testIamPermissions()
para determinar se o botão tem que estar ativado ou desativado.Para testar se o autor da chamada tem permissões específicas em um recurso:
Como modificar o acesso de vários membros aos recursos
Se você quiser modificar simultaneamente o acesso de vários membros aos recursos do Compute Engine, revise as recomendações sobre como modificar uma política do IAM de maneira programática.
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-22 UTC.
-