Antes de conceder um papel de gerenciamento de identidade e acesso (IAM, na sigla em inglês) a um usuário para um recurso, talvez você queira saber quais papéis estão disponíveis para um determinado recurso.
Antes de começar
Ative a API IAM.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.Configure a autenticação.
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
gcloud
No console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
C#
Para usar os exemplos do .NET nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
C++
Para usar os exemplos de C++ nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Go
Para usar os exemplos de Go nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Java
Para usar os exemplos do Java nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
Python
Para usar os exemplos do Python nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud .
REST
Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
-
Funções exigidas
Para receber as permissões
necessárias a fim de listar papéis atribuíveis,
peça ao administrador para conceder a você o
papel do IAM de Revisor de segurança (roles/iam.securityReviewer)
no recurso com os papéis atribuíveis que você quer listar.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
getIamPolicy para todos os tipos de recursos. Para
listar papéis atribuíveis, é preciso ter a permissão getIamPolicy para o recurso
em que você quer listar os papéis atribuíveis. Por exemplo, para listar os papéis atribuíveis
de um projeto, você precisa da permissão resourcemanager.projects.getIamPolicy
.
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Como entender quais papéis são atribuíveis
Um papel será concedido em um recurso ou sobre ele se contiver permissões para esse tipo de recurso. Por exemplo, o papel storage.admin concede permissões às APIs storage.buckets.get e storage.objects.get. Por isso, pode ser concedido nos tipos de recursos buckets de armazenamento e Objetos de armazenamento.
Os papéis também podem ser concedidos "acima" dos tipos de recursos com permissões definidas. Em outras palavras, os papéis para recursos de nível inferior podem ser concedidos em um recurso que está mais acima na Google Cloud hierarquia de recursos. Por exemplo, o papel storage.admin também pode ser concedido nos níveis do projeto ou da organização, além dos buckets do Storage.
As permissões concedidas por um papel afetam somente recursos no nível especificado ou abaixo, e não recursos de nível superior ou pares. Além disso, quando um papel é concedido em um recurso, somente as permissões aplicáveis ao recurso fornecido são concedidas, independentemente do nome, da descrição ou de outras permissões do papel. Por exemplo, atribuir o papel resourcemanager.organizationAdmin (que concede a permissão resourcemanager.projects.list) a um usuário no nível do projeto concede somente a ele permissões para esse projeto específico. O usuário não terá permissão para listar ou administrar todos os projetos na organização.
Da mesma maneira, atribuir o papel compute.admin a uma instância específica do Compute Engine só concede permissões para essa instância, não para outras no projeto.
Como listar papéis atribuíveis
É possível listar os papéis atribuíveis usando o console do Google Cloud , a Google Cloud CLI, a API IAM ou as bibliotecas de cliente do IAM.
O console Google Cloud sempre lista todos os papéis atribuíveis do recurso que você está visualizando. A CLI do Google Cloud, a API IAM e as bibliotecas de cliente listam apenas os papéis atribuíveis de APIs ativadas.
Console
Para ver os papéis atribuíveis de um projeto, uma pasta ou uma organização, realize estas ações:
No console do Google Cloud , acesse a página IAM.
Clique em Selecionar um projeto na parte superior da página.
Selecione o projeto, a pasta ou a organização com os papéis atribuíveis que você quer visualizar.
Clique em CONCEDER ACESSO.
Clique em Selecionar papel. Esse menu exibe todos os papéis, incluindo aqueles personalizados, que podem ser concedidos nesse recurso.
Para visualizar os papéis atribuíveis de outros tipos de recurso, realize estas ações:
No console do Google Cloud , acesse a página que lista o recurso com os papéis atribuíveis que você quer visualizar.
Por exemplo, para gerenciar o acesso a uma instância do Compute Engine, acesse a página Instâncias de VM.
Marque a caixa de seleção ao lado do recurso com os papéis atribuíveis que você quer visualizar.
Verifique se o painel de informações está visível. Se não estiver, clique em Mostrar painel de informações.
Clique em Adicional principal.
Clique em Selecionar papel. Esse menu exibe todos os papéis, incluindo aqueles personalizados, que podem ser concedidos nesse recurso.
gcloud
Use o comando gcloud iam list-grantable-roles para retornar uma lista de todos os papéis que podem ser aplicados a determinado recurso.
gcloud iam list-grantable-roles full-resource-name
Dependendo do recurso escolhido, um grande número de papéis pode ser retornado. Para limitar os resultados, especifique uma expressão de filtro.
A resposta será similar a esta:
description: Full control of all Compute Engine resources.
name: roles/compute.admin
title: Compute Admin
---
description: Full control of Compute Engine instance resources.
name: roles/compute.instanceAdmin
title: Compute Instance Admin
# Additional results here...
C++
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API C++ do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
C#
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API C# do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Go
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Go do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Java
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Java do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Python
Para saber como instalar e usar a biblioteca de cliente do IAM, consulte Bibliotecas de cliente do IAM. Para mais informações, consulte a documentação de referência da API Python do IAM.
Para autenticar no IAM, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
REST
O método roles.queryGrantableRoles retorna uma lista de todos os papéis que podem ser concedidos em um recurso.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
FULL_RESOURCE_NAME: um URI que consiste no nome do serviço e no caminho para o recurso. Veja exemplos em Nomes de recursos completos.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/roles:queryGrantableRoles
Corpo JSON da solicitação:
{
"fullResourceName": "FULL_RESOURCE_NAME"
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"roles": [
{
"name": "roles/compute.admin",
"title": "Compute Admin",
"description": "Full control of all Compute Engine resources."
},
{
"name": "roles/compute.instanceAdmin",
"title": "Compute Instance Admin (beta)",
"description": "Full control of Compute Engine instance resources."
}
]
}
Nos exemplos acima, o nome completo do recurso é um URI sem esquema, consistindo em um nome de serviço de API compatível com DNS e um caminho de recurso.
Por exemplo, para retornar todos os papéis que possam ser atribuídos em um projeto, use:
//cloudresourcemanager.googleapis.com/projects/project-id
Os recursos de nível inferior têm um nome totalmente qualificado mais detalhado. Por exemplo, use o seguinte comando para retornar todos os papéis que podem ser atribuídos em uma instância do Compute Engine:
//compute.googleapis.com/projects/project-id/zones/zone-name/instances/instance-id
A seguir
- Conheça os papéis de IAM disponíveis.
- Saiba como escolher os papéis predefinidos mais apropriados.
- Saiba como conceder, alterar e revogar o acesso de um principal.
- Veja exemplos de nomes de recursos para diferentes tipos de recursos.