Esta página descreve como pode exercer o princípio do menor privilégio concedendo acesso a recursos específicos do Compute Engine em vez de conceder acesso a um recurso principal, como um projeto, uma pasta ou uma organização.
Concede acesso a um recurso definindo uma política de gestão de identidade e de acesso (IAM) no recurso. A política associa um ou mais membros, como um utilizador ou uma conta de serviço, a uma ou mais funções. Cada função contém uma lista de autorizações que permitem ao membro interagir com o recurso.
Se conceder acesso a um recurso principal (por exemplo, a um projeto), concede implicitamente acesso a todos os respetivos recursos secundários (por exemplo, a todas as VMs nesse projeto). Para limitar o acesso aos recursos, defina políticas IAM em recursos de nível inferior sempre que possível, em vez de ao nível do projeto ou superior.
Para obter informações gerais sobre como conceder, alterar e revogar o acesso a recursos não relacionados com o Compute Engine, por exemplo, para conceder acesso a um Trusted Cloud by S3NS projeto, consulte a documentação do IAM sobre como conceder, alterar e revogar o acesso a recursos.
Antes de começar
- Reveja a vista geral do IAM.
- Leia a vista geral do controlo de acesso do Compute Engine.
- Familiarize-se com as funções do IAM para o Compute Engine .
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.
Funções necessárias
Para obter as autorizações de que precisa para gerir o acesso aos recursos do Compute Engine, peça ao seu administrador que lhe conceda a função IAM de administrador de computação (
roles/compute.admin
) no recurso. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Esta função predefinida contém as autorizações necessárias para gerir o acesso aos recursos do Compute Engine. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para gerir o acesso aos recursos do Compute Engine:
-
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 autorizações do autor da chamada:
compute.RESOURCE_TYPE.getIamPolicy
no recursoSubstitua RESOURCE_TYPE pelo recurso ao qual quer gerir o acesso. Por exemplo,
instances
,instanceTemplates
ouimages
.
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Recursos suportados
Para ver uma lista de recursos do Compute Engine que suportam o controlo de acesso ao nível do recurso, consulte os tipos de recursos que aceitam políticas do IAM e filtre por Compute Engine.
Para outros recursos do Compute Engine que não suportam o controlo de acesso ao nível do recurso, tem de gerir o acesso a esses recursos ao nível do projeto, da pasta ou da organização. Para informações sobre organizações, pastas ou projetos, consulte o artigo Hierarquia de recursos.
Conceder acesso a recursos do Compute Engine
Um principal, como um utilizador ou uma conta de serviço, pode aceder aos recursos do Compute Engine. Uma identidade é uma propriedade de um principal. Normalmente, a identidade de um principal é representada por um endereço de email associado à conta.
Antes de conceder uma função de IAM a um principal para um recurso, verifique que funções estão disponíveis para conceder num recurso específico. Para mais informações, consulte o artigo Ver as funções atribuíveis aos recursos.
Para conceder autorização de acesso a recursos específicos do Compute Engine, defina uma política IAM no recurso.
Consola
- Na Trusted Cloud consola, aceda à página de recursos respetiva para a qual quer adicionar autorizações.
- Para instâncias, aceda à página de instâncias de VM.
- Para discos zonais e regionais, aceda à página Discos.
- Para ver as capturas instantâneas, aceda à página Capturas instantâneas.
- Para imagens, aceda à página Imagens.
- Para modelos de instâncias, aceda à página Modelos de instâncias.
- Para imagens de máquinas, aceda à página Imagens de máquinas.
- Para reservas, aceda à página de reservas.
- Para nós de inquilino único, aceda à página de nós de inquilino único.
- Selecione as caixas de verificação junto aos recursos que quer atualizar.
- Conclua os seguintes passos com base na página de recursos.
- Para instâncias de VM, clique em Autorizações.
- Para todos os outros recursos, conclua 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 o separador Autorizações.
- Clique em Adicionar principal.
- Adicione a identidade do principal e selecione a função necessária.
- Para guardar as alterações, clique em Guardar.
gcloud
Para conceder uma função a um principal num 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:
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 quer conceder a função. Tem de 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 atribuir a este principal.
Se estiver a conceder acesso a um recurso em pré-visualização, use um comando
gcloud beta compute
.REST
Para modificar uma política de IAM através da API, faça o seguinte:
Leia a política existente com o método
getIamPolicy
respetivo do recurso. Por exemplo, o seguinte pedido HTTP lê a política de 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 de VM.
O Compute Engine devolve a política atual na resposta.
Edite a política com um editor de texto para adicionar ou remover responsáveis e as respetivas funções associadas. Por exemplo, para conceder a função
compute.admin
a email@example.com, adicione a seguinte nova associaçã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 de VM.
No corpo do pedido, indique a política de IAM atualizada do passo anterior.
Revogar o acesso a recursos
Como prática recomendada, depois de os principais já não precisarem de acesso aos seus recursos do Compute Engine, revogue o respetivo acesso.
Consola
- Na Trusted Cloud consola, aceda à página de recursos respetiva para a qual quer adicionar autorizações.
- Para instâncias, aceda à página de instâncias de VM.
- Para discos zonais e regionais, aceda à página Discos.
- Para ver as capturas instantâneas, aceda à página Capturas instantâneas.
- Para imagens, aceda à página Imagens.
- Para grupos de instâncias, aceda à página Grupos de instâncias.
- Para modelos de instâncias, aceda à página Modelos de instâncias.
- Para imagens de máquinas, aceda à página Imagens de máquinas.
- Para reservas, aceda à página de reservas.
- Para nós de inquilino único, aceda à página de nós de inquilino único.
- Selecione as caixas de verificação junto aos recursos que quer atualizar.
- Conclua os seguintes passos com base na página de recursos.
- Para instâncias de VM, clique em Autorizações.
- Para todos os outros recursos, conclua 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 o separador Autorizações.
- Clique no cartão de função do qual quer remover os responsáveis. Esta ação expande o cartão e mostra os utilizadores com essa função para esse recurso.
- Para remover um principal dessa função, clique em Eliminar.
gcloud
Para remover uma função de um principal 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:
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. Tem de 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 quer remover o principal.
Se estiver a revogar o acesso a um recurso em pré-visualização, use um comando
gcloud beta compute
.REST
Para modificar uma política de IAM diretamente através da API, faça o seguinte:
Leia a política existente com o método
getIamPolicy
respetivo do recurso. Por exemplo, o seguinte pedido HTTP lê a política de 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 de VM.
O Compute Engine devolve 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 o endereço 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 de VM.
No corpo do pedido, indique a política de IAM atualizada do passo anterior.
Testar se um autor da chamada tem autorizações
Se não souber que autorizações uma identidade tem, use o método da API
testIamPermissions
para verificar que autorizações estão disponíveis para uma identidade.O método usa um URL de recurso e um conjunto de autorizações como parâmetros de entrada e devolve o conjunto de autorizações que o autor da chamada tem permissão para usar. Pode usar este método em qualquer um dos recursos suportados.
Normalmente, o
testIamPermissions
destina-se à integração com o seu software proprietário, como uma interface gráfica do utilizador personalizada. Normalmente, não chamatestIamPermissions
se estiver a usar Trusted Clouddiretamente para gerir autorizações.Por exemplo, se estiver a criar uma GUI com base na API Compute Engine e a GUI tiver um botão "iniciar" que inicia uma instância, pode chamar
compute.instances.testIamPermissions()
para determinar se o botão deve ser ativado ou desativado.Para testar se um autor da chamada tem autorizações específicas num recurso:
Envie um pedido para o recurso e inclua no corpo do pedido uma lista de autorizações a verificar.
Por exemplo, numa instância, pode verificar a existência de
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" ] }
O pedido devolve as autorizações ativadas para o autor da chamada.
{ "permissions": [ "compute.instances.start", "compute.instances.stop" ] }
Modificar o acesso aos recursos de vários membros
Se quiser modificar o acesso aos recursos do Compute Engine para vários membros em simultâneo, reveja as recomendações sobre como modificar uma política de IAM de forma programática.
O que se segue?
- Saiba como gerir o acesso a imagens personalizadas com o IAM.
- Saiba mais sobre as contas de serviço.
- Saiba mais sobre as funções de IAM do Compute Engine.
- Saiba mais acerca das autorizações incluídas nas funções de IAM do Compute Engine predefinidas.
- Saiba como criar e gerir funções personalizadas.
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-09-29 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-29 UTC."],[],[],null,[]] -