La mayoría de los Google Cloud recursos exponen el método testIamPermissions()
, que te permite comprobar de forma programática si el llamador autenticado actualmente tiene uno o varios permisos de gestión de identidades y accesos específicos en el recurso. El método testIamPermissions()
toma un identificador de recurso y un conjunto de permisos como parámetros de entrada, y devuelve el conjunto de permisos que tiene el llamante.
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, puede usar este método para decidir, en función de los permisos del usuario, si debe mostrar información detallada sobre un recurso. Google Cloud
Por ejemplo, para determinar si el usuario autenticado actualmente tiene permiso para eliminar un proyecto, llama al método projects.testIamPermissions()
proporcionando el ID del proyecto (como foo-project
) y el permiso resourcemanager.projects.delete
como parámetros de entrada. Si se ha concedido el permiso resourcemanager.projects.delete
a la persona que llama, se mostrará en el cuerpo de la respuesta. Si la persona que llama no tiene este permiso, el cuerpo de la respuesta no incluirá ningún permiso.
El método testIamPermissions()
está pensado para interfaces de usuario gráficas (GUIs) de terceros que necesiten mostrar recursos de Google Cloud en función de los permisos que tenga el usuario autenticado. Por ejemplo, la consolaGoogle Cloud usa internamente el método testIamPermissions()
para determinar qué recursos y funciones puedes ver después de autenticarte. Normalmente, se conceden permisos diferentes a los distintos usuarios, y la Google Cloud consola oculta o muestra los elementos en función de esos permisos.
Antes de empezar
Enable the Resource Manager API.
Configura la autenticación.
Select the tab for how you plan to use the samples on this page:
C#
Para usar las .NET muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
C++
Para usar las C++ muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
Java
Para usar las Java muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
Python
Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación. Google Cloud
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticación para usar REST de la documentación sobre autenticación de Google Cloud .
Roles obligatorios
No se necesita ningún rol de gestión de identidades y accesos para probar los permisos.
Cómo probar los permisos
En este ejemplo se muestra cómo probar los permisos
resourcemanager.projects.get
yresourcemanager.projects.delete
de un Google Cloud proyecto. Para probar los permisos de otros Google Cloud recursos, usa el métodotestIamPermissions()
expuesto por cada recurso. Por ejemplo, puedes probar los permisos de gestión de identidades y accesos de un segmento de Cloud Storage.C++
Para saber cómo instalar y usar la biblioteca de cliente de IAM, consulta Bibliotecas de cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API C++ de gestión de identidades y accesos.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
C#
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
Para saber cómo instalar y usar la biblioteca de cliente de Resource Manager, consulta el artículo sobre las bibliotecas de cliente de Resource Manager.
IAM prueba los permisos de la cuenta de servicio que estás usando para generar credenciales.
Java
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
Para saber cómo instalar y usar la biblioteca de cliente de Resource Manager, consulta el artículo sobre las bibliotecas de cliente de Resource Manager.
IAM prueba los permisos de la cuenta de servicio que estás usando para generar credenciales.
Python
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta la sección Antes de empezar.
Para saber cómo instalar y usar la biblioteca de cliente de Resource Manager, consulta el artículo sobre las bibliotecas de cliente de Resource Manager.
IAM prueba los permisos de la cuenta de servicio que estás usando para generar credenciales.
REST
En este ejemplo, el usuario tiene un rol de gestión de identidades y accesos que le permite obtener información sobre un proyecto, pero no eliminar proyectos.
El método
projects.testIamPermissions
de la API Resource Manager acepta una lista de permisos y comprueba cuáles tiene una entidad.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Google Cloud Los IDs de proyecto son cadenas 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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "permissions": [ "resourcemanager.projects.get" ] }
Siguientes pasos
Consulta cómo conceder, cambiar y revocar el acceso a las entidades.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-20 (UTC).