A maioria dos recursos do Google Cloud expõe o método testIamPermissions()
, que
permite verificar programaticamente se o autor da chamada
autenticado recebeu uma ou mais permissões específicas do IAM no
recurso. O método testIamPermissions()
usa um identificador de recurso e um conjunto de permissões como parâmetros de entrada e retorna o conjunto de permissões dado ao autor da chamada.
É possível usar o método testIamPermissions()
para determinar se um usuário deve ter acesso a uma ferramenta administrativa em um aplicativo da Web. Por exemplo, é possível usar esse método para decidir, com base nas permissões do usuário, se serão exibidas informações detalhadas sobre um recurso do Google Cloud.
Por exemplo, para determinar se o usuário atualmente autenticado tem permissão para excluir um projeto, chame o projects.testIamPermissions()
usando o ID do projeto, como foo-project
, e a permissão resourcemanager.projects.delete
como parâmetros de entrada. Se o autor da chamada tiver recebido a permissão resourcemanager.projects.delete
, ele será listado no corpo da resposta. Se o autor da chamada não tiver essa permissão, o corpo da resposta não listará nenhuma permissão.
O método testIamPermissions()
destina-se a interfaces gráficas do usuário (GUIs) de terceiros que precisam exibir recursos do Google Cloud com base no que o usuário autenticado tem permissão para ver. Por exemplo, o
Console do Google Cloud usa internamente o método testIamPermissions()
para determinar quais recursos e funcionalidades ficam visíveis para você após
a autenticação. Normalmente, usuários diferentes recebem permissões distintas,
e o Console do Google Cloud oculta ou expõe os itens adequadamente.
Antes de começar
-
Ative a Resource Manager API.
Funções exigidas
Nenhum papel do IAM é necessário para testar as permissões.
Como testar permissões
Este exemplo mostra como testar as permissões resourcemanager.projects.get
e resourcemanager.projects.delete
para um projeto do Google Cloud. Para testar as permissões de outros recursos do Google Cloud, use o método testIamPermissions()
exposto por cada recurso. Por exemplo, é possível
testar as permissões do IAM para um
bucket do Cloud Storage.
REST
Neste exemplo, o usuário tem um papel do IAM que permite receber informações sobre um projeto, mas não excluir projetos.
O método
projects.testIamPermissions
da API Resource Manager aceita uma lista de permissões e testa qual permissão um principal tem.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto do Google Cloud. Os IDs do projeto são strings alfanuméricas, comomy-project
.
Método HTTP e URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
Corpo JSON da solicitação:
{ "permissions": [ "resourcemanager.projects.get", "resourcemanager.projects.delete" ] }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "permissions": [ "resourcemanager.projects.get" ] }
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 Configurar a autenticação para um ambiente de desenvolvimento local.
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 Configurar a autenticação para um ambiente de desenvolvimento local.
O IAM testa as permissões da conta de serviço que você está usando para gerar credenciais.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 Configurar a autenticação para um ambiente de desenvolvimento local.
O IAM testa as permissões da conta de serviço que você está usando para gerar credenciais.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 Configurar a autenticação para um ambiente de desenvolvimento local.
O IAM testa as permissões da conta de serviço que você está usando para gerar credenciais.A seguir
Saiba como conceder, alterar e revogar acesso a principais.