Como testar permissões

A maioria dos recursos do Google Cloud Platform expõe o método testIamPermissions(), que permite verificar se o autor da chamada atualmente autenticado recebeu uma ou mais permissões específicas do Cloud IAM para o 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 do autor da chamada.

Por exemplo, para determinar se o usuário atualmente autenticado tem permissão para excluir um projeto, chame o método projects.testIamPermissions() fornecendo 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, ela constará do 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, na sigla em inglês) de terceiros que precisam exibir recursos do GCP com base no que o usuário autenticado tem permissão para ver. Por exemplo, o Console do GCP usa internamente o método testIamPermissions() para determinar quais recursos e funcionalidades ficam visíveis para você após a autenticação. Usuários diferentes costumam receber permissões distintas, e o Console do GCP oculta ou expõe os itens de acordo com isso.

Como testar permissões

Para testar permissões de um projeto do Resource Manager, em que o autor da chamada tem permissões para acessar um projeto, mas não para listar projetos:

API

Consulte o método projects.testIamPermissions() para mais informações.

Solicitação:

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_ID]:testIamPermissions

{
    "permissions":  [
        "resourcemanager.projects.get",
        "resourcemanager.projects.delete"
    ]
}

Substitua o ID do projeto do GCP por [PROJECT_ID].

Resposta:

{
    "permissions": [
        "resourcemanager.projects.get"
    ]
}

Java

import com.google.api.services.cloudresourcemanager.model.TestIamPermissionsRequest;
import java.util.List;

...

TestIamPermissionsRequest testIamPermissionsRequest =
    new TestIamPermissionsRequest().setPermissions(
        Arrays.asList("resourcemanager.projects.get", "resourcemanager.projects.delete"));

TestIamPermissionsResponse testIamPermissionsResponse =
    client.projects().testIamPermissions(
        projectId, testIamPermissionsRequest).execute();
List<String> testResults = testIamPermissionsResponse.getPermissions();
...

Próximos passos

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud IAM