La mayoría de los recursos de Google Cloud exponen el método testIamPermissions()
, que te permite comprobar de manera programática si el emisor autenticado actual tiene uno o más permisos de IAM específicos en el recurso. El método testIamPermissions()
toma un identificador de recursos y un conjunto de permisos como parámetros de entrada y muestra el conjunto de permisos habilitados para el emisor.
Puedes usar el método testIamPermissions()
para determinar si un usuario debe tener acceso a una herramienta administrativa en una aplicación web. Por ejemplo, puedes usar este método para decidir, en función de los permisos del usuario, si deseas mostrar información detallada sobre un recurso de Google Cloud.
Por ejemplo, si quieres determinar si el usuario autenticado actual tiene permiso para borrar un proyecto, llama al método projects.testIamPermissions()
mediante el ID del proyecto (por ejemplo, foo-project
) y el permiso resourcemanager.projects.delete
como parámetros de entrada. Si se le otorgó el permiso resourcemanager.projects.delete
al emisor, se lo incluirá en el cuerpo de la respuesta. Si el emisor no tiene este permiso, el cuerpo de la respuesta no mostrará ningún permiso.
El método testIamPermissions()
está orientado a interfaces gráficas de usuario (GUI) de terceros que necesitan mostrar recursos de Google Cloud según lo que el usuario autenticado tenga permiso para ver. Por ejemplo, en la consola se usa el método testIamPermissions()
a nivel interno a fin de determinar qué recursos y funciones son visibles para ti después de la autenticación. En general, los diferentes usuarios tienen distintos permisos, y la consola los oculta o expone según corresponda.
Antes de comenzar
-
Habilita Resource Manager API.
Funciones requeridas
No se requiere ningún rol de IAM para probar los permisos.
Cómo probar permisos
En este ejemplo, se muestra cómo probar los permisos resourcemanager.projects.get
y resourcemanager.projects.delete
para un proyecto de Google Cloud. Para probar los permisos de otros recursos de Google Cloud, debes usar el método testIamPermissions()
que expone cada recurso. Por ejemplo, puedes probar los permisos de IAM para un depósito de Cloud Storage.
REST
En este ejemplo, el usuario tiene una función de IAM que le permite obtener información sobre un proyecto, pero no borrarlo.
El método projects.testIamPermissions
de la API de Resource Manager acepta una lista de permisos y prueba qué permisos tiene un miembro.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, comomy-project
.
Método HTTP y URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
Cuerpo JSON de la solicitud:
{ "permissions": [ "resourcemanager.projects.get", "resourcemanager.projects.delete" ] }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "permissions": [ "resourcemanager.projects.get" ] }
C++
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Si deseas obtener más información, consulta la documentación de referencia de la API de IAM para C++.
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Si deseas obtener más información, consulta la documentación de referencia de la API de IAM para C#.
IAM prueba los permisos de la cuenta de servicio que usas para generar credenciales.Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Si deseas obtener más información, consulta la documentación de referencia de la API de IAM para Java.
IAM prueba los permisos de la cuenta de servicio que usas para generar credenciales.Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Si deseas obtener más información, consulta la documentación de referencia de la API de IAM para Python.
IAM prueba los permisos de la cuenta de servicio que usas para generar credenciales.¿Qué sigue?
Obtén más información para otorgar, cambiar y revocar el acceso a las principales.