A maioria dos recursos do Cloud de Confiance by S3NS 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 concedido 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 Cloud de Confiance .
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 Cloud de Confiance com base no que o usuário autenticado tem permissão para ver. Por exemplo, o
consoleCloud de Confiance 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 Cloud de Confiance oculta ou expõe os itens adequadamente.
Antes de começar
Ative a API Resource Manager.
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:
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.
-
Configure a gcloud CLI para usar sua identidade federada.
Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
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 Cloud de Confiance .
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.
-
Configure a gcloud CLI para usar sua identidade federada.
Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
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 Cloud de Confiance .
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.
-
Configure a gcloud CLI para usar sua identidade federada.
Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
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 Cloud de Confiance .
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.
-
Configure a gcloud CLI para usar sua identidade federada.
Para mais informações, consulte Fazer login na gcloud CLI com sua identidade federada.
-
Crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
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 Cloud de Confiance .
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 e faça login na gcloud CLI com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Cloud de Confiance .
-
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
projetoCloud de Confiance . Para
testar as permissões de outros Cloud de Confiance recursos, 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.
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.
Antes de executar os exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
C#
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.
Java
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.
Python
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.
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 Cloud de Confiance . 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"
]
}
A seguir
Saiba como conceder, alterar e revogar acesso a principais.