A maioria dos Google Cloud recursos expõe o método testIamPermissions()
, que
permite verificar programaticamente se o autor da chamada autenticado atualmente
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 permitido
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 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 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
Enable the Resource Manager API.
Configure a autenticação.
Select the tab for how you plan to use the samples on this page:
Para usar os exemplos .NET desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Para usar os exemplos C++ desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local na documentação de autenticação do Google Cloud.
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
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
projetoGoogle Cloud . Para
testar as permissões de outros recursos 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.
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.
Para autenticar no Resource Manager, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Para saber como instalar e usar a biblioteca de cliente do Resource Manager, consulte Bibliotecas de cliente do Resource Manager.
O IAM testa as permissões da conta de serviço que você está usando para gerar credenciais.
Para autenticar no Resource Manager, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Para saber como instalar e usar a biblioteca de cliente do Resource Manager, consulte Bibliotecas de cliente do Resource Manager.
O IAM testa as permissões da conta de serviço que você está usando para gerar credenciais.
Para autenticar no Resource Manager, configure o Application Default Credentials. Para mais informações, consulte Antes de começar.
Para saber como instalar e usar a biblioteca de cliente do Resource Manager, consulte Bibliotecas de cliente do Resource Manager.
O IAM testa as permissões da conta de serviço que você está usando para gerar credenciais.
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 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:
curl (Linux, macOS ou Cloud Shell)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID :testIamPermissions"
PowerShell (Windows)
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID :testIamPermissions" | Select-Object -Expand Content
APIs Explorer (navegador)
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
{ "permissions": [ "resourcemanager.projects.get" ] }
A seguir
Saiba como conceder, alterar e revogar acesso a principais.