Nesta página, descrevemos como criar e gerenciar papéis personalizados de gerenciamento de identidade e acesso (IAM). O gerenciamento de papéis inclui modificar, desativar, listar, excluir e cancelar a exclusão de papéis.
Antes de começar
Ative a API IAM.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). 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 CLI gcloud 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 CLI gcloud 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 CLI gcloud 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 em Java desta 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 CLI gcloud 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 CLI gcloud 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 nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
-
Entenda a Google Cloud hierarquia de recursos.
Funções exigidas
Para receber as permissões necessárias para criar e gerenciar papéis personalizados, peça ao administrador que conceda a você os seguintes papéis do IAM:
-
Para gerenciar papéis para um projeto:
administrador de papéis (
roles/iam.roleAdmin) no projeto em que você quer gerenciar os papéis -
Para gerenciar papéis para uma organização:
administrador de papéis da organização (
roles/iam.organizationRoleAdmin) na organização em que você quer gerenciar os papéis
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Ver as permissões disponíveis para projetos, pastas e organizações
É possível criar papéis personalizados para uma organização inteira ou para um projeto específico dessa organização. As permissões disponíveis para papéis personalizados dependem de onde o papel é criado. Por exemplo, se uma permissão só pode ser usada no nível da organização, ela não pode ser incluída em um papel personalizado no nível do projeto.
Para verificar quais permissões estão disponíveis para os papéis personalizados no nível da organização e do projeto, use a CLI gcloud ou a API de gerenciamento de identidade e acesso para listar as permissões disponíveis em uma organização ou projeto específico. Por exemplo, é possível conseguir todas as permissões disponíveis para papéis personalizados criados no projeto.
Algumas permissões podem não estar visíveis para você ou utilizáveis em um papel personalizado, mesmo que sejam suportadas por papéis personalizados. Por exemplo, uma permissão pode não estar disponível para uso em papéis personalizados se você não tiver ativado a API para o serviço.
Para saber mais sobre as permissões que podem ser adicionadas aos papéis personalizados, consulte Permissões compatíveis.
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.
-
Use o comando
gcloud iam list-testable-permissionspara receber uma lista de permissões disponíveis para papéis personalizados em um projeto ou uma organização específica. A resposta lista as permissões que podem ser usadas em papéis personalizados para esse projeto ou organização.Para listar as permissões disponíveis em papéis personalizados de um projeto ou organização, execute este comando:
gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"Substitua
FULL_RESOURCE_NAMEpor um dos seguintes valores:-
Projeto:
//cloudresourcemanager.googleapis.com/projects/PROJECT_ID(por exemplo,//cloudresourcemanager.googleapis.com/projects/my-project) -
Organização:
//cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID(por exemplo,//cloudresourcemanager.googleapis.com/organizations/123456789012)
Os resultados indicam se cada permissão é compatível com papéis personalizados. As permissões que não têm um campo
customRolesSupportLevelsão totalmente compatíveis.O comando
list-testable-permissionspode retornar centenas de resultados. Este exemplo parcial mostra o formato de cada resultado:--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA ---
-
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
permissions.queryTestablePermissions lista as permissões disponíveis em uma organização ou um projeto.
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.PAGE_SIZE: opcional. O número de permissões a serem incluídas na resposta. O valor padrão é 100, e o valor máximo é 1.000. Se o número de permissões for maior que o tamanho da página, a resposta conterá um token de paginação que é possível usar para recuperar a próxima página de resultados.NEXT_PAGE_TOKEN: opcional. O token de paginação retornado em uma resposta anterior desse método. Se especificado, a lista de permissões testáveis começará onde a resposta anterior terminou.
Método HTTP e URL:
POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions
Corpo JSON da solicitação:
{
"fullResourceName": "FULL_RESOURCE_NAME"
"pageSize": PAGE_SIZE,
"pageToken": "NEXT_PAGE_TOKEN"
}
Para enviar a solicitação, expanda uma destas opções:
A resposta contém a lista de permissões.
{
"permissions": [
{
"name": "iam.serviceAccountKeys.create",
"stage": "GA"
},
{
"name": "iam.serviceAccountKeys.delete",
"stage": "GA"
},
{
"name": "iam.serviceAccountKeys.get",
"stage": "GA"
}
],
"nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q"
}
acessar os metadados do papel
Antes de criar um papel personalizado, consulte os metadados dos papéis predefinidos e personalizados. Esses metadados incluem o código e as permissões do papel. É possível visualizar os metadados usando o console doGoogle Cloud ou a API IAM.
Para visualizar os metadados do papel, use um dos métodos abaixo:
Console
No console do Google Cloud , acesse a página Papéis.
Selecione a organização ou o projeto na lista suspensa na parte superior da página.
Clique na guia do tipo de função para ver os metadados:
- Para conferir os metadados dos papéis predefinidos, permaneça na guia Predefinido.
- Para ver os metadados de papéis personalizados, clique na guia Personalizado.
Para conferir as permissões de um papel, marque a caixa de seleção dos papéis que você quer visualizar e clique em Detalhes. O painel mostra as permissões contidas nos papéis.
Para procurar todos os papéis com uma permissão específica, digite o nome da permissão na caixa Filtro, na parte de cima da lista de papéis.
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.
-
Use o comando
gcloud iam roles describepara visualizar os metadados de papéis predefinidos e personalizados.Para visualizar os metadados de um papel predefinido, execute o seguinte comando:
gcloud iam roles describe ROLE_ID
ROLE_IDé o ID do papel. Os papéis predefinidos incluem o prefixorolenos IDs. Por exemplo,roles/iam.roleViewer.O exemplo a seguir demonstra a saída do comando
describequando executado no papel predefinidoroles/iam.roleViewer:gcloud iam roles describe roles/iam.roleViewerdescription: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer
Para visualizar os metadados de um papel personalizado, execute um dos seguintes comandos:
-
Para visualizar os metadados de um papel personalizado criado no nível da organização, execute o seguinte comando:
gcloud iam roles describe --organization=ORGANIZATION_ID ROLE_ID
-
Para visualizar os metadados de um papel personalizado criado no nível do projeto, execute o seguinte comando:
gcloud iam roles describe --project=PROJECT_ID ROLE_ID
Cada valor do marcador é descrito a seguir:
-
ORGANIZATION_IDé o ID numérico da organização, como123456789012. -
PROJECT_IDé o nome do projeto, comomy-project. -
ROLE_IDé o ID do papel, excluindo qualquer prefixo comoprojects/,organizations/ouroles/. Por exemplo,myCompanyAdmin.
Para saber mais, consulte a documentação de referência para
gcloud iam roles describe. -
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.