Para permitir que os utilizadores criem, eliminem, usem ou partilhem as suas imagens personalizadas, tem de conceder-lhes as funções de gestão de identidades e acessos (IAM) adequadas. Este documento descreve as autorizações de IAM necessárias para criar e gerir imagens personalizadas, bem como a forma de as conceder aos utilizadores.
Para obter informações gerais sobre a concessão de acesso a recursos do Compute Engine, consulte o artigo Gerir o acesso a recursos do Compute Engine. Para informações sobre o IAM, leia a documentação do IAM.
Antes de começar
- Leia a documentação do IAM.
- Leia acerca das funções IAM do Compute Engine, em particular, a função de utilizador de imagens do Compute Engine
(
roles/compute.imageUser
). -
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- 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. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Funções necessárias
Para receber as autorizações de que precisa para gerir o acesso a imagens personalizadas, peça ao seu administrador que lhe conceda as seguintes funções do IAM:
-
Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin
) no projeto -
Administrador de computação (
roles/compute.admin
) no projeto
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.
Estas funções predefinidas contêm as autorizações necessárias para gerir o acesso a imagens personalizadas. 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 a imagens personalizadas:
-
Para conceder aos utilizadores ou às contas de serviço as autorizações necessárias para criar e partilhar imagens personalizadas:
-
resourcemanager.projects.getIamPolicy
no projeto -
resourcemanager.projects.setIamPolicy
no projeto
-
-
Para conceder aos utilizadores ou às contas de serviço as autorizações necessárias para eliminar imagens personalizadas:
-
resourcemanager.projects.getIamPolicy
no projeto -
resourcemanager.projects.setIamPolicy
no projeto -
compute.images.getIamPolicy
na imagem -
compute.images.setIamPolicy
na imagem
-
-
Para revogar o acesso de um utilizador ou de uma conta de serviço a imagens personalizadas:
-
resourcemanager.projects.getIamPolicy
no projeto -
resourcemanager.projects.setIamPolicy
no projeto
-
-
Para criar uma instância com uma imagem partilhada:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnly
no instantâneo - Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Para atribuir uma rede antiga à VM:
compute.networks.use
no projeto - Para especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIp
no projeto - Para especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Para definir etiquetas para a VM:
compute.instances.setTags
na VM - Para definir etiquetas para a VM:
compute.instances.setLabels
na VM - Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Para criar um novo disco para a VM:
compute.disks.create
no projeto - Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.use
no disco - Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnly
no disco
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Limitações
Nas imagens, não pode conceder funções ao tipo de membro especial
allUsers
.Dê autorização para criar imagens personalizadas
Pode dar aos utilizadores a capacidade de criar imagens personalizadas na sua organização ou projeto.
O Compute Engine oferece a função de administrador de armazenamento do Compute (
roles/compute.storageAdmin
) predefinida que pode atribuir aos utilizadores para que possam criar, eliminar e gerir recursos relacionados com o armazenamento, incluindo imagens, discos e capturas de ecrã. Se precisar de uma função que permita apenas a criação de imagens, tem de criar uma função personalizada. No seu papel personalizado, inclua as seguintes autorizações:compute.images.create
para criar novas imagenscompute.images.list
para listar imagens no projetocompute.disks.use
se a imagem for criada a partir de um discocompute.disks.list
se os utilizadores precisarem de listar todos os discos num projeto
Se conceder a um utilizador a capacidade de criar imagens personalizadas ao nível da organização, o utilizador pode criar imagens personalizadas para qualquer projeto na organização.
Consola
Na Google Cloud consola, aceda à página IAM do projeto ou da organização.
Para adicionar um novo membro, clique em
Conceder acesso.No campo Novos membros, introduza o endereço de email da identidade à qual quer conceder acesso.
Por exemplo:
- Email da Conta Google:
test-user@gmail.com
- Grupo Google:
admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
server@example.gserviceaccount.com
- Domínio do Google Workspace:
example.com
- Email da Conta Google:
Na lista Selecionar uma função, selecione Compute Engine > Compute Storage Admin ou selecione uma função personalizada, se tiver criado uma.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
gcloud
Para conceder a função
roles/compute.storageAdmin
ao nível da organização, use o comandogcloud organizations add-iam-policy-binding
:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member='MEMBER' \ --role='roles/compute.storageAdmin'
Para conceder a função
roles/compute.storageAdmin
ao nível do projeto, use o comandogcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/compute.storageAdmin'
Substitua o seguinte:
ORGANIZATION_ID
ouPROJECT_ID
: o ID da organização ou o ID do projeto, por exemplo,my-organization-1
oumy-project-1
MEMBER
: uma identidade válida à qual quer conceder a funçãoPor exemplo:
- Email da Conta Google:
user:user@gmail.com
- Grupo Google:
group:admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
serviceAccount:server@example.gserviceaccount.com
- Domínio do Google Workspace:
domain:example.com
- Email da Conta Google:
REST
Leia a política existente com o método
getIamPolicy
do recurso. Para projetos, use o métodoprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto, por exemplo,my-project-1
.Para organizações, use o método
organizations.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
Substitua
ORGANIZATION_ID
pelo ID da organização. Por exemplo,123456578920
.O Compute Engine devolve a política atual na resposta.
Para adicionar ou remover membros e as respetivas funções associadas, edite a política com um editor de texto. Use o seguinte formato para adicionar membros:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Por exemplo, para conceder a função
roles/compute.storageAdmin
agroup:admins@example.com
, adicione a seguinte associação à política:{ "members": [ "group:admins@example.com" ], "role":"roles/compute.storageAdmin" }
Escreva a política atualizada através do método
setIamPolicy
.Por exemplo, para definir uma política ao nível do projeto, use o método
project.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto.
Conceda autorizações para eliminar imagens personalizadas
Consoante as suas necessidades, pode conceder aos utilizadores autorização para fazer o seguinte:
- Elimine uma imagem específica
- Elimine imagens pertencentes a um projeto específico
- Elimine imagens de qualquer projeto numa organização
A concessão de autorização ao nível do projeto permite que os utilizadores eliminem todas as imagens pertencentes a esse projeto. A concessão de autorização ao nível da organização permite ao utilizador eliminar quaisquer imagens pertencentes a essa organização, independentemente do projeto.
O Compute Engine oferece a função predefinida Administrador de armazenamento do Compute (
roles/compute.storageAdmin
) que pode atribuir aos utilizadores para que possam criar, eliminar e gerir recursos relacionados com o armazenamento, incluindo imagens, discos e capturas de ecrã. Se precisar de uma função que permita apenas a eliminação de imagens, tem de criar uma função personalizada. Na sua função personalizada, inclua as seguintes autorizações:compute.images.delete
para eliminar imagenscompute.images.list
se os utilizadores precisarem de listar imagens no projeto ou na organizaçãocompute.images.get
para receber as imagens
Consola
Para conceder autorização para eliminar imagens específicas, faça o seguinte:
Na Google Cloud consola, aceda à página Imagens.
Selecione as imagens às quais quer conceder autorizações.
Para expandir a coluna de autorizações, clique em Mostrar painel de informações.
Para adicionar um ou mais membros, clique em Adicionar principal.
No campo Novos principais, introduza o endereço de email da identidade com a qual quer partilhar a imagem.
Por exemplo:
- Email da Conta Google:
test-user@gmail.com
- Grupo Google:
admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
server@example.gserviceaccount.com
- Domínio do Google Workspace:
example.com
- Email da Conta Google:
Na lista Função, passe o ponteiro do rato sobre Compute Engine e selecione Administrador de armazenamento ou selecione uma função personalizada na lista Personalizado.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
Para conceder autorização para eliminar imagens de um projeto ou uma organização, faça o seguinte:
Aceda à página IAM do projeto ou da organização.
Clique em
Conceder acesso.No campo Novos membros, introduza o endereço de email da identidade à qual quer conceder acesso. Por exemplo:
- Email da Conta Google:
test-user@gmail.com
- Grupo Google:
admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
server@example.gserviceaccount.com
- Domínio do Google Workspace:
example.com
- Email da Conta Google:
Na lista Função, passe o ponteiro do rato sobre Compute Engine e selecione Administrador de armazenamento ou selecione uma função personalizada na lista Personalizado.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
gcloud
Para conceder autorizações para eliminar imagens ao nível da organização, use o comando
gcloud organizations add-iam-policy-binding
:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member='MEMBER' \ --role='ROLE'
Para conceder autorizações para eliminar imagens ao nível do projeto, use o
gcloud projects add-iam-policy-binding
comando:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='ROLE'
Para conceder autorizações para eliminar uma imagem específica, use o
gcloud compute images add-iam-policy-binding
comando:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Substitua o seguinte:
ORGANIZATION_ID
ouPROJECT_ID
ouIMAGE_NAME
: o ID numérico de 12 dígitos da organização, o ID do projeto ou o nome da imagem, por exemplo,123456578920
,my-project-1
oumy-custom-image
MEMBER
: uma identidade válida à qual quer conceder a funçãoPor exemplo:
- Email da Conta Google:
user:user@gmail.com
- Grupo Google:
group:admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
serviceAccount:server@example.gserviceaccount.com
- Domínio do Google Workspace:
domain:example.com
- Email da Conta Google:
ROLE
: a função a atribuir a esta identidade, por exemplo, a funçãoroles/compute.storageAdmin
ou uma função personalizada, comoroles/customImageDeletionRole
REST
Leia a política existente com o
getIamPolicy
método respetivo do recurso. Para projetos, use oprojects.getIamPolicy
método:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto.Para organizações, use o método
organizations.getIamPolicy
:POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
Substitua
ORGANIZATION_ID
pelo ID da organização numérico de 12 dígitos.Para uma imagem específica, use o método
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projetoIMAGE_NAME
: o nome da imagem
O Compute Engine devolve a política atual na resposta.
Para adicionar ou remover membros e as respetivas funções associadas, pode editar a política com um editor de texto. Use o seguinte formato para adicionar membros:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Por exemplo, para conceder a função
roles/compute.storageAdmin
auser:test-email@example.com
, adicione a seguinte associação à política:{ "members": [ "user:test-email@example.com" ], "role":"roles/compute.storageAdmin" }
Escreva a política atualizada através do método
setIamPolicy
.Por exemplo, para definir uma política ao nível do projeto, use o método
project.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto.
Conceda autorizações para partilhar imagens personalizadas numa organização
Se o seu projeto pertencer a uma organização, esta pode ter vários outros projetos com diferentes níveis de acesso a outros projetos. Quando cria imagens personalizadas, pode partilhá-las com outros utilizadores de outros projetos na organização.
O Compute Engine oferece as seguintes funções IAM predefinidas que pode usar para a gestão de imagens:
- Utilizador de imagens do Compute (
roles/compute.imageUser
): autorização para listar, ler e usar imagens nos seus pedidos, sem ter outras autorizações na imagem - Administrador de armazenamento do Compute (
roles/compute.storageAdmin
): autorizações para criar, modificar e eliminar discos, imagens e instantâneos
Em alternativa, também pode criar a sua própria função de IAM personalizada.
Como prática recomendada, recomendamos que mantenha todas as suas imagens personalizadas num único projeto dedicado ao alojamento destas imagens. Esta prática melhora a gestão dessas imagens e permite-lhe conceder acesso a equipas específicas apenas às imagens de que precisam. Também pode conceder às equipas acesso a todo o projeto de imagens, mas não o recomendamos, uma vez que o acesso das equipas a todo o projeto de imagens viola o princípio do menor privilégio.
O exemplo abaixo mostra como adicionar um grupo para que os utilizadores desse grupo tenham acesso à imagem.
Consola
Na Google Cloud consola, aceda à página Imagens.
Selecione a imagem que quer partilhar com outros utilizadores.
Para expandir a coluna de autorizações, clique em Mostrar painel de informações.
Para adicionar um ou mais membros, clique em Adicionar principal.
No campo Novos principais, introduza o endereço de email da identidade com a qual quer partilhar a imagem.
Por exemplo:
- Email da Conta Google:
test-user@gmail.com
- Grupo Google:
admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
server@example.gserviceaccount.com
- Domínio do Google Workspace:
example.com
- Email da Conta Google:
Na lista Função, mantenha o ponteiro sobre Compute Engine e selecione Utilizador de imagens ou Administrador de armazenamento, ou selecione uma função personalizada.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
Para permitir que os utilizadores iniciem imagens personalizadas partilhadas a partir da Google Cloud consola, conceda aos utilizadores a função IAM de leitor (
roles/viewer
) para o projeto de imagem. A concessão desta função ajuda a garantir que as imagens partilhadas aparecem na lista de seleção de imagens.Na Google Cloud consola, aceda à página IAM.
Clique em
Conceder acesso.No campo Novos principais, introduza o endereço de email da identidade com a qual quer partilhar a imagem. Por exemplo:
- Email da Conta Google:
test-user@gmail.com
- Grupo Google:
admins@googlegroups.com
- Identidade de um fornecedor de identidade externo:
principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
- Conta de serviço:
server@example.gserviceaccount.com
- Domínio do Google Workspace:
example.com
- Email da Conta Google:
Na lista Função, coloque o cursor do rato sobre Projeto e selecione Visualizador.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
gcloud
Para atualizar a política de IAM de uma imagem específica, use o comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Substitua o seguinte:
IMAGE_NAME
: o nome da imagem, por exemplo,custom-centos-8
MEMBER
: uma identidade válida à qual quer conceder a funçãoPor exemplo:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: a função à qual atribuir esta identidade, comoroles/compute.imageUser
,roles/compute.storageAdmin
ou uma função personalizada
Opcionalmente, para permitir que os utilizadores vejam estas imagens partilhadas nos respetivos
images.list
pedidos, conceda aos utilizadores a função de IAM de leitor (roles/viewer
) para o projeto de imagens através do comandogcloud projects add-iam-policy-binding
. Se não precisar que os utilizadores possam ver a lista de imagens partilhadas, pode ignorar este passo.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
REST
Leia a política existente com o método
getIamPolicy
do recurso. Por exemplo, para obter a política sobre uma imagem específica, use o métodoimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
O Compute Engine devolve a política atual na resposta.
Para adicionar ou remover membros e as respetivas funções associadas, edite a política com um editor de texto. Use o seguinte formato para adicionar membros:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Por exemplo, para conceder
roles/compute.imageUser
atest-email@example.com
, adicione a seguinte associação à política:{ "members": [ "user:test-email@example.com" ], "role":"roles/compute.imageUser" }
Escreva a política atualizada através do método
setIamPolicy
. Por exemplo, para definir a política numa imagem específica, use o métodoproject.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
Opcionalmente, para permitir que os utilizadores vejam estas imagens partilhadas nos respetivos
images.list
pedidos, conceda aos utilizadores a função de IAM de leitor (roles/viewer
) para o projeto de imagens através do métodoprojects.setIamPolicy
. Se não precisar que os seus utilizadores possam ver a lista de imagens partilhadas, pode ignorar este passo.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Conceda autorizações para partilhar imagens personalizadas entre organizações
A criação de um catálogo de imagens personalizadas pode ser útil para partilhar imagens com parceiros, utilizadores ou contratados externos à sua organização. Para partilhar as suas imagens com utilizadores fora da organização, adicione-os como utilizadores de imagens ao seu projeto:
Consola
Na Google Cloud consola, aceda à página Imagens.
Selecione a imagem que quer partilhar com outros utilizadores.
Para expandir a coluna de autorizações, clique em Mostrar painel de informações.
Para adicionar um ou mais membros, clique em Adicionar principal.
No campo Novos principais, introduza o endereço de email do grupo com o qual quer partilhar a imagem. Por exemplo,
admins@example.com
.Na lista Função, mantenha o ponteiro sobre Compute Engine e selecione Utilizador de imagens de computação.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
Para permitir que os utilizadores iniciem imagens personalizadas partilhadas a partir da Google Cloud consola, conceda aos utilizadores a função IAM de leitor (
roles/viewer
) para o projeto de imagem. A concessão deste papel ajuda a garantir que as imagens partilhadas aparecem na lista de seleção de imagens.Na Google Cloud consola, aceda à página IAM.
Clique em
Conceder acesso.No campo Novos principais, introduza o endereço de email da identidade com a qual quer partilhar a imagem. Por exemplo,
admins@example.com
.Na lista Função, coloque o cursor do rato sobre Projeto e selecione Visualizador.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Guarde as alterações.
gcloud
Para conceder a função de
roles/compute.imageUser
aos utilizadores, use ogcloud compute images add-iam-policy-binding
comando:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='roles/compute.imageUser'
Substitua o seguinte:
IMAGE_NAME
: o nome da imagem, por exemplo,custom-centos-8
MEMBER
: uma identidade válida à qual quer atribuir a função, por exemplo,group:admins@example.com
Opcionalmente, para permitir que os utilizadores vejam estas imagens partilhadas nos respetivos
images.list
pedidos, conceda aos utilizadores a função de IAM de leitor (roles/viewer
) para o projeto de imagens através do comandogcloud projects add-iam-policy-binding
. Se não precisar que os seus utilizadores possam ver a lista de imagens partilhadas, pode ignorar este passo.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
REST
Leia a política existente com o método
getIamPolicy
do recurso. Por exemplo, para obter a política sobre uma imagem específica, use o métodoimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
O Compute Engine devolve a política atual na resposta.
Para adicionar ou remover membros e as respetivas funções associadas, pode editar a política com um editor de texto. Use o seguinte formato para adicionar membros:
user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
Por exemplo, para conceder
roles/compute.imageUser
atest-user@example.com
, adicione a seguinte associação à política:{ "members": [ "user:test-user@example.com" ], "role":"roles/compute.imageUser" }
Escreva a política atualizada através do método
setIamPolicy
. Por exemplo, para definir uma política numa imagem específica, use o métodoimages.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
Opcionalmente, para permitir que os utilizadores vejam estas imagens partilhadas nos respetivos
images.list
pedidos, conceda-lhes a função de IAM de leitor (roles/viewer
) para o projeto de imagens através do métodoprojects.setIamPolicy
. Se não precisar que os seus utilizadores possam ver a lista de imagens partilhadas, pode ignorar este passo.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Conceda autorizações para partilhar imagens personalizadas publicamente
Pode partilhar as suas imagens personalizadas com todos os utilizadores autenticados do Compute Engine, independentemente de fazerem parte da sua organização ou projeto.
Só pode partilhar recursos, como imagens, com todos os utilizadores autenticados; não pode partilhar projetos nem organizações com todos os utilizadores autenticados. Esta restrição, e a hierarquia de recursos, ajuda a impedir que uma organização partilhe inadvertidamente todo o seu projeto com todos os utilizadores autenticados do Compute Engine.
O exemplo seguinte mostra como conceder a todos os utilizadores autenticados do Compute Engine a função de utilizador de imagens do Compute (
roles/compute.imageUser
) a uma imagem personalizada.gcloud
Para tornar as imagens públicas, use o comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='allAuthenticatedUsers' \ --role='roles/compute.imageUser'
Substitua
IMAGE_NAME
pelo nome do recurso, por exemplo,my_image
.REST
Leia a política existente com o método
getIamPolicy
. Por exemplo, para obter a política sobre uma imagem específica, use o métodoimages.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
O Compute Engine devolve a política atual na resposta.
Para adicionar ou remover membros e as respetivas funções associadas, edite a política com um editor de texto:
{ "members": [ "allAuthenticatedUsers" ], "role":"roles/compute.imageUser" }
Escreva a política atualizada através do método
setIamPolicy
. Por exemplo, para definir uma política numa imagem específica, use o métodoimages.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
Conceda a um grupo de instâncias geridas acesso a imagens
O Compute Engine permite-lhe criar grupos de instâncias, quer como grupos de instâncias geridos ou não geridos. Se criar um grupo de instâncias geridas (GIG), o Compute Engine usa o agente de serviço das APIs Google para chamar a API Compute Engine e realizar ações relacionadas com o grupo, como recriar instâncias não íntegras e atualizar instâncias.
Se quiser criar um MIG com uma imagem de outro projeto, conceda a função Utilizador de imagens do Compute (
roles/compute.imageUser
) à conta de serviço das APIs pertencente ao projeto que cria o MIG. Por exemplo:- O projeto A quer criar um MIG com imagens pertencentes ao projeto B.
- O projeto B concede à conta de serviço do projeto A a função de utilizador da imagem de computação.
- O projeto A pode agora usar imagens do projeto B para criar MIGs.
Depois de conceder a função de utilizador da imagem do Compute, pode aceder à imagem a partir dos outros projetos através da consola ou do URL da imagem quando criar o modelo de instância para o grupo gerido.
Obtenha o endereço de email da conta de serviço
Na Google Cloud consola, aceda à página IAM do projeto cuja conta de serviço quer conceder acesso.
Se lhe for pedido, selecione o seu projeto na lista.
Procure o agente do serviço das APIs Google, que tem o endereço de email no seguinte formato:
PROJECT_NUMBER@cloudservices.gserviceaccount.com
Depois de obter o endereço de email da conta de serviço, pode aceder a uma das seguintes secções:
- Conceda a um MIG acesso a todas as imagens num projeto
- Conceda a um MIG acesso a imagens específicas num projeto
Conceda a um MIG acesso a todas as imagens num projeto
Agora que tem o endereço de email de uma conta de serviço, pode adicionar o endereço a outro projeto e conceder-lhe a função de utilizador de imagens do Compute Engine (
roles/compute.imageUser
).Consola
Na Google Cloud consola, aceda à página IAM do projeto de imagem.
Para adicionar um novo membro, clique em
Conceder acesso.No campo Novos membros, adicione o endereço de email da conta de serviço.
Na lista Função, mantenha o ponteiro sobre Compute e selecione Utilizador da imagem do Compute.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Clique em Guardar.
Mude novamente para o projeto da conta de serviço.
Agora, pode criar um modelo de instância com base numa imagem do projeto de imagem e criar um MIG com base no modelo de instância.
gcloud
Adicione uma conta de serviço do projeto de imagens através do comando
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' --role='roles/compute.imageUser'
Substitua o seguinte:
PROJECT_ID
: o ID do projeto que contém as imagens que quer partilharSERVICE_ACCOUNT_EMAIL
: o email da conta de serviço
Agora, pode criar um modelo de instância com base numa imagem do projeto de imagem e criar um MIG com base no modelo de instância.
REST
Obtenha a Política IAM do projeto de imagens através do método
projects.getIamPolicy
:POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Substitua
PROJECT_ID
pelo ID do projeto de imagens.Para conceder a função
roles/compute.imageUser
à conta de serviço, edite a política com um editor de texto:{ "bindings": [ { "role": "roles/compute.imageUser", "members": [ "serviceAccount:SERVICE_ACCOUNT_EMAIL" ] } ] }
Substitua
SERVICE_ACCOUNT_EMAIL
pelo email da conta de serviço.Escreva a política atualizada usando o
projects.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
Substitua
PROJECT_ID
pelo ID do produto do projeto de imagem.Agora, pode criar um modelo de instância com base numa imagem do projeto de imagem e criar um MIG com base no modelo de instância.
Conceda a um MIG acesso a imagens específicas num projeto
Agora que tem o endereço de email de uma conta de serviço, pode adicionar o endereço a outro projeto e conceder a função de utilizador de imagens de computação (
roles/compute.imageUser
) para determinadas imagens.Consola
Na Google Cloud consola, aceda à página Imagens do projeto de imagens.
Selecione as caixas de verificação junto às imagens que quer partilhar.
Para expandir a coluna de autorizações, clique em Mostrar painel de informações.
No painel Autorizações, clique em Adicionar principal.
No campo Novos membros, introduza o email da conta de serviço com o qual quer partilhar a imagem. Por exemplo,
test123@example.domain.com
.Na lista Função, escolha Compute e selecione Utilizador de imagens do Compute.
Opcional: para controlar ainda mais o acesso dos utilizadores aos Google Cloud recursos, adicione uma associação de funções condicional.
Clique em Guardar.
Mude novamente para o projeto da conta de serviço.
Agora, pode criar um modelo de instância com base numa imagem do projeto de imagem e criar um MIG com base no modelo de instância.
gcloud
Para conceder a uma conta de serviço acesso a uma imagem específica, use o comando
gcloud compute images add-iam-policy-binding
:gcloud compute images add-iam-policy-binding IMAGE_NAME \ --member='serviceAccount:SERVICE_ACCOUNT_EMAIL' \ --role='roles/compute.imageUser'
Substitua o seguinte:
IMAGE_NAME
: o nome da imagem que quer partilharSERVICE_ACCOUNT_EMAIL
: o email da conta de serviço
Agora, pode criar um modelo de instância com base numa imagem do projeto de imagem e criar um MIG com base no modelo de instância.
REST
Obtenha a política IAM de uma imagem através do método
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto da imagem do projetoIMAGE_NAME
: o nome da imagem que quer partilhar
Para conceder a função
roles/compute.imageUser
à conta de serviço, edite a política com um editor de texto:{ "bindings": [ { "role": "roles/compute.imageUser", "members": [ "serviceAccount:SERVICE_ACCOUNT_EMAIL" ] } ] }
Substitua
SERVICE_ACCOUNT_EMAIL
pelo email da conta de serviço.Escreva a política atualizada através do método
images.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:setIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto da imagem do projetoIMAGE_NAME
: o nome da imagem que quer partilhar
Agora, pode criar um modelo de instância com base numa imagem do projeto de imagem e criar um MIG com base no modelo de instância.
Controle a utilização das suas imagens e capturas de ecrã partilhadas
Depois de partilhar as suas imagens com outros utilizadores, pode controlar onde esses utilizadores usam esses recursos na sua organização. Defina a restrição
constraints/compute.storageResourceUseRestrictions
para definir os projetos onde os utilizadores têm autorização para usar os seus recursos de armazenamento.Tem de ter autorização para modificar as políticas da sua organização para definir estas restrições. Por exemplo, a função
resourcemanager.organizationAdmin
tem autorização para definir estas restrições.Encontre o ID da organização da sua organização através do comando
gcloud organization list
:gcloud organizations list
Obtenha as definições da política existentes para a sua organização através do comando
gcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe \ compute.storageResourceUseRestrictions \ --organization ORGANIZATION_ID > org-policy.yaml
Substitua ORGANIZATION_ID pelo ID da organização numérico de 12 dígitos.
Abra o ficheiro
org-policy.yaml
num editor de texto e modifique a restriçãocompute.storageResourceUseRestrictions
. Adicione as restrições de que precisa ou remova as restrições que já não são necessárias. Quando terminar de editar o ficheiro, guarde as alterações. Por exemplo, pode definir a seguinte entrada de restrição no ficheiro de política:constraint: compute.storageResourceUseRestrictions listPolicy: allowedValues: - under:organization/organization-id
Aplique o ficheiro
org-policy.yaml
à sua organização através do comandogcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy \ --organization=ORGANIZATION_ID org-policy.yaml
Substitua ORGANIZATION_ID pelo ID da organização numérico de 12 dígitos.
Quando terminar de configurar as restrições na política da organização, teste-as para garantir que criam as restrições pretendidas.
Use imagens de outro projeto
Se alguém lhe conceder acesso a uma ou mais imagens noutro projeto, pode aceder a estas imagens no projeto especificando o projeto de imagens nos seus pedidos.
Por exemplo, para criar uma instância com uma imagem partilhada de outro projeto, siga os passos indicados em Crie uma instância a partir de uma imagem partilhada.
Também pode criar volumes de disco de arranque a partir de imagens noutro projeto. Para informações sobre como criar um disco de arranque a partir de uma imagem, consulte o artigo Criar um disco persistente de arranque autónomo.
Revogue o acesso a imagens partilhadas
Depois de um utilizador deixar de precisar de acesso aos seus recursos do Compute Engine, revogue o respetivo acesso através da Google Cloud consola, da Google Cloud CLI ou da API REST.
Consola
Na Google Cloud consola, aceda à página Imagens do projeto de imagens.
Selecione as caixas de verificação junto às imagens que quer atualizar.
Para expandir a coluna de autorizações, clique em Mostrar painel de informações.
Expanda a função para a qual quer remover utilizadores.
Para remover um utilizador dessa função, clique em
Eliminar.
gcloud
Para remover um utilizador de uma função numa imagem, use o
gcloud compute images remove-iam-policy-binding
comando com as flags--member
e--role
:gcloud compute images remove-iam-policy-binding IMAGE_NAME \ --member='MEMBER' \ --role='ROLE'
Substitua o seguinte:
IMAGE_NAME
: o nome da imagem, por exemplo,my_image
MEMBER
: a identidade que quer removerTem de estar no formato
user|group|serviceAccount:email
oudomain:domain
. Por exemplo:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: a função da qual quer remover a identidade
Se estiver a revogar o acesso a um recurso em versão beta, use um comando
gcloud beta compute
em alternativa.REST
Leia a política existente com o método
images.getIamPolicy
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
O Compute Engine devolve a política atual na resposta.
Para remover membros e as respetivas funções associadas, edite a política com um editor de texto.
Escreva a política atualizada através do método
images.setIamPolicy
. No corpo do pedido, indique a política de IAM atualizada do passo anterior.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/global/images/IMAGE_NAME:setIamPolicy
Substitua o seguinte:
PROJECT_ID
: o ID do projeto ao qual esta imagem pertenceIMAGE_NAME
: o nome da imagem
O que se segue?
- Leia sobre o IAM.
- Veja uma lista de funções IAM do Compute Engine.
- Saiba mais sobre imagens.
- Saiba como criar uma instância através de uma imagem partilhada.
- Saiba como criar um disco persistente de arranque autónomo.
- Saiba como usar esta função com as suas implementações do Deployment Manager.
- Aplique o princípio do menor privilégio concedendo acesso a recursos específicos do Compute Engine, em vez de a um projeto completo.
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-19 UTC.
-