Esta página descreve como você pode exercer o princípio do privilégio mínimo concedendo acesso a recursos específicos do Compute Engine em vez de conceder acesso a um recurso pai, como um projeto, uma pasta ou uma organização.
Você concede acesso a um recurso definindo uma política de gerenciamento de identidade e acesso (IAM) no recurso. A política vincula um ou mais membros, como um usuário ou uma conta de serviço, a uma ou mais funções . Cada função contém uma lista de permissões que permitem ao membro interagir com o recurso.
Se você conceder acesso a um recurso pai (por exemplo, a um projeto), você concederá acesso implicitamente a todos os seus recursos filhos (por exemplo, a todas as VMs nesse projeto). Para limitar o acesso aos recursos, defina políticas de IAM em recursos de nível inferior, quando possível, em vez de no nível do projeto ou superior.
Para informações gerais sobre como conceder, alterar e revogar acesso a recursos não relacionados ao Compute Engine, por exemplo, para conceder acesso a um Google Cloud projeto, consulte a documentação do IAM para 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.
- Familiarize-se com os papéis do IAM para o Compute Engine .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Para conceder ou revogar 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 chamador:
compute. RESOURCE_TYPE .getIamPolicy
no recursoSubstitua RESOURCE_TYPE pelo recurso ao qual você deseja gerenciar o acesso. Por exemplo,
instances
,instanceTemplates
ouimages
. - No console do Google Cloud, acesse a página do respectivo recurso para o qual você deseja adicionar permissões.
- Para instâncias, acesse a página de instâncias de VM .
- Para discos zonais e regionais, acesse a página Discos .
- Para instantâneos, acesse a página Instantâneos .
- Para imagens, vá para 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 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ê deseja 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, preencha o seguinte:
- Verifique se o painel de informações está visível. Se não estiver visível, clique em Mostrar painel de informações .
- Selecione a guia Permissões .
- Clique em Adicionar principal .
- Adicione a identidade do principal e selecione a função necessária.
- Para salvar suas alterações, clique em Salvar .
-
RESOURCE_TYPE
: o tipo de recurso. Os 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 ao qual você deseja conceder a função. Deve estar no formatouser|group|serviceAccount: EMAIL_ADDRESS
oudomain: DOMAIN_ADDRESS
. Por exemplo:-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
-
-
ROLE
: a função a ser atribuída a esse principal. Leia a política existente com o respectivo método
getIamPolicy
do recurso. Por exemplo, a seguinte solicitação HTTP lê a política IAM de uma VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Substitua o seguinte:
-
PROJECT_ID
: o ID do projeto ao qual 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 da VM.
O Compute Engine retorna a política atual na resposta.
-
Edite a política com um editor de texto para adicionar ou remover principais e suas funções associadas. Por exemplo, para conceder a função
compute.admin
a email@example.com, adicione a seguinte nova ligação à política:{ "members": [ "user:email@example.com" ], "role":"roles/compute.admin" }
Escreva a política atualizada com
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Substitua o seguinte:
-
PROJECT_ID
: o ID do projeto ao qual 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 da VM.
No corpo da solicitação, forneça a política IAM atualizada da etapa anterior.
-
- No console do Google Cloud, acesse a página do respectivo recurso para o qual você deseja adicionar permissões.
- Para instâncias, acesse a página de instâncias de VM .
- Para discos zonais e regionais, acesse a página Discos .
- Para instantâneos, acesse a página Instantâneos .
- Para imagens, vá para 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 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ê deseja 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, preencha o seguinte:
- Verifique se o painel de informações está visível. Se não estiver visível, clique em Mostrar painel de informações .
- Selecione a guia Permissões .
- Clique no cartão de função do qual você deseja remover os principais. Isso expande o cartão e mostra os usuários com essa função para esse recurso.
- Para remover um principal dessa função, clique em Excluir .
-
RESOURCE_TYPE
: tipo de recurso. Os 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. Deve estar no formatouser|group|serviceAccount: EMAIL_ADDRESS
oudomain: DOMAIN_ADDRESS
. Por exemplo:-
user:test-user@gmail.com
-
group:admins@example.com
-
serviceAccount:test123@example.domain.com
-
domain:example.domain.com
-
-
ROLE
: função da qual você deseja remover o principal. Leia a política existente com o respectivo método
getIamPolicy
do recurso. Por exemplo, a seguinte solicitação HTTP lê a política IAM de uma VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Substitua o seguinte:
-
PROJECT_ID
: o ID do projeto ao qual 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 da VM.
O Compute Engine retorna a política atual na resposta.
-
Edite a política com um editor de texto para remover membros das funções associadas. Por exemplo, remova email@example.com da função
compute.admin
:{ "members": [ "user:owner@example.com" ], "role":"roles/compute.admin" }
Escreva a política atualizada com
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Substitua o seguinte:
-
PROJECT_ID
: o ID do projeto ao qual 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 da VM.
No corpo da solicitação, forneça a política IAM atualizada da etapa anterior.
-
Envie uma solicitação ao recurso e inclua no corpo da solicitação uma lista de permissões a serem verificadas.
Por exemplo, em uma instância, você pode 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 habilitadas para o chamador.
{ "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 .
- Aprenda como criar e gerenciar funções personalizadas .
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções obrigatórias
Para obter as permissões necessárias para gerenciar o acesso aos recursos do Compute Engine, peça ao administrador que conceda a você o papel do IAM Administrador do Compute (
roles/compute.admin
) no recurso. Para obter mais informações sobre a concessão de funções, consulte Gerenciar 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 ver as permissões exatas necessárias, expanda a seção Permissões necessárias :
Permissões necessárias
As seguintes permissões são necessárias para gerenciar o acesso aos recursos do Compute Engine:
Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .
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 filtram o Compute Engine .
Para outros recursos do Compute Engine que não oferecem suporte ao controle de acesso no nível do recurso, você precisa gerenciar o acesso a esses recursos nos níveis do projeto, da pasta ou da organização. Para obter informações sobre organizações, pastas ou projetos, consulte Hierarquia de recursos .
Como conceder acesso aos recursos do Compute Engine
Uma entidade principal , como uma conta de usuário ou de serviço, pode acessar os recursos do Compute Engine. Uma identidade é uma propriedade de um principal. A identidade de um principal normalmente é representada por um endereço de e-mail associado à conta.
Antes de conceder uma função do IAM a um principal para um recurso, verifique quais funções estão disponíveis para concessão em um recurso específico. Para obter mais informações, consulte Visualizando as funções concedíveis em recursos .
Para conceder permissão de acesso a recursos específicos do Compute Engine, defina uma política do IAM no recurso.
Console
gcloud
Para conceder uma função a um principal em um recurso, use o subcomando
add-iam-policy-binding
desse recurso com os sinalizadores--member
e--role
.gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \ --member='PRINCIPAL' \ --role='ROLE'
Substitua o seguinte:
Se você estiver concedendo acesso a um recurso que está em versão prévia, use um comando
gcloud beta compute
.DESCANSAR
Para modificar uma política do IAM por meio da API, faça o seguinte:
Revogando o acesso aos recursos
Como prática recomendada, depois que os principais não precisarem mais de acesso aos recursos do Compute Engine, revogue o acesso deles.
Console
gcloud
Para remover uma função de uma entidade de segurança para um recurso, use o subcomando
remove-iam-policy-binding
do recurso com os sinalizadores--member
e--role
.gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \ --member='MEMBER' \ --role='ROLE'
Substitua o seguinte:
Se você estiver revogando o acesso a um recurso que está em versão prévia, use um comando
gcloud beta compute
.DESCANSAR
Para modificar uma política do IAM diretamente por meio da API, faça o seguinte:
Testando se um chamador tem permissões
Se você não sabe quais permissões uma identidade possui, use o método de API
testIamPermissions
para verificar quais permissões estão disponíveis para uma identidade.O método usa uma URL de recurso e um conjunto de permissões como parâmetros de entrada e retorna o conjunto de permissões permitidas ao chamador. Você pode usar esse método em qualquer um dos recursos suportados .
Normalmente,
testIamPermissions
destina-se à integração com seu software proprietário, como uma interface gráfica de usuário personalizada. Normalmente você não chamatestIamPermissions
se estiver usando Google Clouddiretamente para gerenciar permissões.Por exemplo, se você estiver criando uma GUI com base na API Compute Engine e sua GUI tiver um botão "iniciar" que inicia uma instância, você poderá chamar
compute.instances.testIamPermissions()
para determinar se o botão deve ser ativado ou desativado.Para testar se um chamador tem permissões específicas em um recurso:
Modificando o acesso a recursos para vários membros
Se você quiser modificar o acesso aos recursos do Compute Engine para vários membros simultaneamente, revise as recomendações sobre como modificar uma política do IAM de maneira programática .
O que vem 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 2025-04-17 UTC.
-