En esta página, se describe cómo otorgar, cambiar y revocar el acceso a los proyectos, las carpetas y las organizaciones. Para obtener información sobre cómo administrar el acceso a otros recursos, consulta las siguientes guías:
En Identity and Access Management (IAM), el acceso se otorga a través de políticas de permisos, también conocidas como políticas de IAM. Una política de permisos se adjunta a un recurso de Google Cloud. Cada política de permisos contiene una colección de vinculaciones de roles que asocian una o más principales, como usuarios o cuentas de servicio, a un rol de IAM. Estas vinculaciones de roles otorgan los roles especificados a las principales, tanto en el recurso al que se adjunta la política de permisos como en todos los elementos subordinados de ese recurso. Para obtener más información sobre las políticas de permisos, consulta Comprende las políticas de permisos.
Puedes administrar el acceso a proyectos, carpetas y organizaciones con la consola de Google Cloud, Google Cloud CLI, la API de REST o las bibliotecas cliente de Resource Manager.
Antes de comenzar
Habilita Resource Manager API.
Configura la autenticación.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
Para usar las muestras de .NET de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Java
Para usar las muestras de Java de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
Python
Para usar las muestras de Python de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local en la documentación de autenticación de Google Cloud.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Roles obligatorios
Cuando creas un proyecto, una carpeta o una organización, se te otorga de forma automática una función que te permite administrar el acceso a ese recurso. Para obtener más información, consulta Políticas predeterminadas.
Si no creaste el proyecto, organización o carpeta, asegúrate de tener los roles que necesitas para administrar el acceso a ese recurso.
Para obtener los permisos que necesitas a fin de administrar el acceso a un proyecto, organización o carpeta, pídele a tu administrador que te otorgue las siguientes roles de IAM en el recurso para el que deseas administrar el acceso (proyecto , carpeta u organización):
- Para administrar el acceso a un proyecto, administrador de IAM del proyecto (
roles/resourcemanager.projectIamAdmin
) - Para administrar el acceso a una carpeta: Administrador de carpetas (
roles/resourcemanager.folderAdmin
) - Para administrar el acceso a proyectos, carpetas y organizaciones: Administrador de la organización (
roles/resourcemanager.organizationAdmin
) - Para administrar el acceso a casi todos los recursos de Google Cloud, administrador de seguridad (
roles/iam.securityAdmin
)
Estas funciones predefinidas contienen los permisos necesarios para administrar el acceso a una organización, una carpeta o un proyecto. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Los siguientes permisos son necesarios para administrar el acceso a un proyecto, una carpeta o una organización:
-
Para administrar el acceso a los proyectos:
-
resourcemanager.projects.getIamPolicy
-
resourcemanager.projects.setIamPolicy
-
-
Para administrar el acceso a las carpetas, haz lo siguiente:
-
resourcemanager.folders.getIamPolicy
-
resourcemanager.folders.setIamPolicy
-
-
Para administrar el acceso a las organizaciones:
-
resourcemanager.organizations.getIamPolicy
-
resourcemanager.organizations.setIamPolicy
-
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Visualiza el acceso actual
Puedes ver quién tiene acceso a tu proyecto, organización o carpeta mediante la consola de Google Cloud, la CLI de gcloud, la API de REST o las bibliotecas cliente de Resource Manager.
Console
En la consola de Google Cloud, ve a la página IAM.
Selecciona un proyecto, una carpeta o una organización.
La consola de Google Cloud enumera todas las principales a las que se les otorgaron roles en tu proyecto, organización o carpeta. En esta lista, se incluyen las principales que heredaron roles del recurso de los recursos superiores. Para obtener más información sobre la herencia de políticas, consulta La herencia de políticas y la jerarquía de recursos.
Opcional: Para ver las asignaciones de funciones de las cuentas de servicio administradas por Google, selecciona la casilla de verificación Incluir asignaciones de funciones proporcionadas por Google.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Para ver quién tiene acceso a tu proyecto, organización o carpeta, obtén la política de permisos para el recurso. Para obtener información sobre cómo interpretar las políticas de permisos, consulta Comprende las políticas de permisos.
A fin de obtener la política de permisos del recurso, ejecuta el comando
get-iam-policy
para el recurso:gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Ingresa los siguientes valores:
-
RESOURCE_TYPE
: El tipo de recurso para el que deseas ver el acceso. Usa uno de estos valores:projects
,resource-manager folders
oorganizations
. -
RESOURCE_ID
: Tu ID de la organización, carpeta y proyecto de Google Cloud. Los ID de proyecto son alfanuméricos, comomy-project
. Los ID de carpeta y organización son numéricos, como123456789012
. -
FORMAT
: El formato deseado para la política. Usajson
oyaml
. -
PATH
: Es la ruta a un nuevo archivo de salida de la política.
Por ejemplo, con el siguiente comando, se obtiene la política para el proyecto
my-project
y se guarda en tu directorio principal en formato JSON:gcloud projects get-iam-policy my-project --format=json > ~/policy.json
-
C#
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Para ver quién tiene acceso a tu proyecto, organización o carpeta, obtén la política de permisos para el recurso. Si deseas obtener información para interpretar las políticas de permisos, consulta Comprende las políticas de permisos.
En el siguiente ejemplo, se muestra cómo obtener la política de permisos para un proyecto. Si deseas aprender a obtener la política de permisos para una carpeta o una organización, consulta la documentación de la biblioteca cliente de Resource Manager para tu lenguaje de programación.
Java
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Para ver quién tiene acceso a tu proyecto, organización o carpeta, obtén la política de permisos para el recurso. Si deseas obtener información para interpretar las políticas de permisos, consulta Comprende las políticas de permisos.
En el siguiente ejemplo, se muestra cómo obtener la política de permisos para un proyecto. Si deseas aprender a obtener la política de permisos para una carpeta o una organización, consulta la documentación de la biblioteca cliente de Resource Manager para tu lenguaje de programación.
Python
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Para ver quién tiene acceso a tu proyecto, organización o carpeta, obtén la política de permisos para el recurso. Si deseas obtener información para interpretar las políticas de permisos, consulta Comprende las políticas de permisos.
En el siguiente ejemplo, se muestra cómo obtener la política de permisos para un proyecto. Si deseas aprender a obtener la política de permisos para una carpeta o una organización, consulta la documentación de la biblioteca cliente de Resource Manager para tu lenguaje de programación.
REST
Para ver quién tiene acceso a tu proyecto, organización o carpeta, obtén la política de permisos para el recurso. Para obtener información sobre cómo interpretar las políticas de permisos, consulta Comprende las políticas de permisos.
El método
getIamPolicy
de la API de Resource Manager obtiene la política de permisos de un proyecto, una carpeta o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
API_VERSION
: La versión de la API que se usará. Para los proyectos y las organizaciones, usav1
. Para las carpetas, usav2
.RESOURCE_TYPE
: El tipo de recurso cuya política deseas administrar. Usa el valorprojects
,folders
oorganizations
.RESOURCE_ID
: El proyecto ID de la carpeta, la organización o el proyecto de Google Cloud. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.POLICY_VERSION
: Es la versión de la política que se mostrará. Las solicitudes deben especificar la versión de política más reciente, que es la versión de política 3. Consulta Especifica una versión de política cuando obtienes una política para obtener más detalles.
Método HTTP y URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
Cuerpo JSON de la solicitud:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la política de permisos del recurso. Por ejemplo:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:owner@example.com" ] } ] }
Otorga o revoca un solo rol
Puedes usar la consola de Google Cloud y la CLI de gcloud a fin de otorgar o revocar con rapidez un solo rol para una sola principal, sin editar directamente la política de permisos del recurso. Los tipos comunes de principales incluyen Cuentas de Google, cuentas de servicio, Grupos de Google y dominios. Para obtener una lista de todos los tipos de principales, consulta Conceptos relacionados con la identidad.
Si necesitas ayuda para identificar el rol predefinido más adecuado, consulta Elige funciones predefinidas.
Otorga una sola función
Para otorgar una sola función a una principal, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página IAM.
Selecciona un proyecto, una carpeta o una organización.
Selecciona una principal para otorgarle una función:
Para otorgar un rol a una principal que ya tenga otros roles en el recurso, busca una fila que contenga la principal y haz clic en
Editar principal en esa fila y haz clic en Agregar otro rol.Si deseas otorgar una función a una cuenta de servicio administrada por Google, selecciona la casilla de verificación Incluir asignaciones de funciones proporcionadas por Google para ver su dirección de correo electrónico.
Para otorgar un rol a una principal que aún no tenga otros roles en el recurso, haz clic en
Otorgar acceso y, luego, ingresa la dirección de correo electrónico de la principal o algún otro identificador.
Selecciona una función para otorgar de la lista desplegable. Para una mejor seguridad, elige una función que incluya solo los permisos que necesita tu principal.
Opcional: Agrega una condición a la función.
Haz clic en Guardar. A la principal se le otorga la función en el recurso.
Para otorgar un rol a una principal en más de un proyecto, organización o carpeta, haz lo siguiente:
En la consola de Google Cloud, ve a la página Administrar recursos:
Selecciona todos los proyectos para los que deseas otorgar permisos.
Si el panel de información no está visible, haz clic en Mostrar panel de información. Luego, haz clic en Permisos.
Selecciona una principal para otorgarle una función:
Para otorgar un rol a una principal que ya tenga otros roles, busca una fila que contenga la principal y haz clic en
Editar principal en esa fila y haz clic en Agregar otro rol.Para otorgar un rol a una principal que aún no tenga otros roles, haz clic en
Agregar principal y, luego, ingresa la dirección de correo electrónico de la principal.
Selecciona una función para otorgar de la lista desplegable.
Opcional: Agrega una condición a la función.
Haz clic en Guardar. A la principal se le otorga la función seleccionada en cada uno de los recursos seleccionados.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
El comando
add-iam-policy-binding
te permite otorgar un rol a una principal con rapidez.Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
-
RESOURCE_TYPE
: Es el tipo de recurso en el que deseas administrar el acceso. Usaprojects
,resource-manager folders
oorganizations
. -
RESOURCE_ID
: Tu ID de la organización, carpeta y proyecto de Google Cloud. Los ID de proyecto son alfanuméricos, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
. -
PRINCIPAL
: Un identificador para la principal o el miembro, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID
. Por ejemplo,user:my-user@example.com
. Si deseas obtener una lista completa de los valores quePRINCIPAL
puede tener, consulta la referencia sobre la vinculación de políticas.Para el tipo de principal
user
, el nombre de dominio en el identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para obtener información sobre cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity. -
ROLE_NAME
: El nombre del rol que deseas revocar. Usa uno de los siguientes formatos:- Roles predefinidos:
roles/SERVICE.IDENTIFIER
- Roles personalizados a nivel de proyecto:
projects/PROJECT_ID/roles/IDENTIFIER
- Roles personalizados a nivel de la organización:
organizations/ORG_ID/roles/IDENTIFIER
Para obtener una lista de roles predefinidos, consulta Cómo entender los roles.
- Roles predefinidos:
-
CONDITION
: La condición que se agregará a la vinculación de función. Si no deseas agregar una condición, usa el valorNone
. Para obtener más información sobre las condiciones, consulta la descripción general de las condiciones.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Windows (PowerShell)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ` --member=PRINCIPAL --role=ROLE_NAME ` --condition=CONDITION
Windows (cmd.exe)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^ --member=PRINCIPAL --role=ROLE_NAME ^ --condition=CONDITION
La respuesta contiene la política de IAM actualizada.
-
Revoca una sola función
Para revocar una sola función de una principal, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página IAM.
Selecciona un proyecto, una carpeta o una organización.
Busca la fila que contiene el principal cuyo acceso deseas revocar. Luego, haz clic en
Editar principal en esa fila.Haz clic en el botón Borrar
para el rol que deseas revocar y, luego, haz clic en Guardar.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Para revocar una función de un usuario, ejecuta el comando
remove-iam-policy-binding
:gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME
Ingresa los siguientes valores:
-
RESOURCE_TYPE
: Es el tipo de recurso en el que deseas administrar el acceso. Usaprojects
,resource-manager folders
,organizations
, , , , , , , , , , , , , , , , , o . -
RESOURCE_ID
: Tu ID de la organización, carpeta y proyecto de Google Cloud. Los IDs de proyecto son alfanuméricos, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
. -
PRINCIPAL
: Un identificador para la principal o el miembro, que suele tener el siguiente formato:PRINCIPAL_TYPE:ID
. Por ejemplo,user:my-user@example.com
. Si deseas obtener una lista completa de los valores quePRINCIPAL
puede tener, consulta la referencia sobre la vinculación de políticas.Para el tipo de principal
user
, el nombre de dominio en el identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para obtener información sobre cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity. -
ROLE_NAME
: El nombre del rol que deseas revocar. Usa uno de los siguientes formatos:- Roles predefinidos:
roles/SERVICE.IDENTIFIER
- Roles personalizados a nivel de proyecto:
projects/PROJECT_ID/roles/IDENTIFIER
- Roles personalizados a nivel de la organización:
organizations/ORG_ID/roles/IDENTIFIER
Para obtener una lista de roles predefinidos, consulta Cómo entender los roles.
- Roles predefinidos:
Por ejemplo, para revocar la función de creador de proyectos del usuario
my-user@example.com
en el proyectomy-project
, ejecuta este comando:gcloud projects remove-iam-policy-binding my-project \ --member=user:my-user@example.com --role=roles/resourcemanager.projectCreator
-
Para asegurarte de no revocar ningún rol necesario, puedes habilitar las recomendaciones de riesgos de cambios. Las recomendaciones de riesgos de cambios generan advertencias cuando intentas revocar los roles a nivel de proyecto que Google Cloud identificó como importantes.
Otorga o revoca varios roles con la consola de Google Cloud
Puedes usar la consola de Google Cloud a fin de otorgar y revocar varios roles para una sola principal:
En la consola de Google Cloud, ve a la página IAM.
Selecciona un proyecto, una carpeta o una organización.
Selecciona la principal cuyos roles deseas modificar:
Para modificar los roles de una principal que ya tiene roles en el recurso, busca una fila que contenga la principal, haz clic en
Editar principal en esa fila y haz clic en Agregar otro rol.Para modificar los roles de una cuenta de servicio administrada por Google, selecciona la casilla de verificación Incluir asignaciones de roles proporcionadas por Google para ver su correo electrónico.
Para otorgar un rol a una principal que aún no tenga otros roles en el recurso, haz clic en
Otorgar acceso y, luego, ingresa la dirección de correo electrónico de la principal o algún otro identificador.
Modifica los roles de la principal:
- Para otorgar un rol a una principal que aún no tenga otros roles en el recurso, haz clic en Seleccionar un rol y, luego, selecciona un rol para otorgar de la lista desplegable.
- Para otorgar un rol adicional a la principal, haz clic en Agregar otro rol y, luego, selecciona un rol para otorgar de la lista desplegable.
- Para reemplazar uno de los roles de la principal por un rol diferente, haz clic en el rol existente y, luego, elige un rol diferente para otorgar de la lista desplegable.
- Para revocar uno de los roles de la principal, haz clic en el botón Borrar en cada rol que deseas revocar.
También puedes agregar una condición a un rol, modificar la condición de un rol o quitar la condición de un rol.
Haz clic en Guardar.
Otorga o revoca varios roles de manera programática
Para realizar cambios de acceso a gran escala que implican otorgar y revocar varios roles para varias principales, usa el patrón lectura-modificación-escritura a fin de actualizar la política de permisos del recurso:
- Para leer la política de permisos actual, llama a
getIamPolicy()
. - Edita de la política de permisos, ya sea mediante el uso de un editor de texto o de manera programática, para agregar o quitar vinculaciones de roles o principales.
- Para escribir la política de permisos actualizada, llama a
setIamPolicy()
.
Puedes usar la CLI de gcloud, la API de REST o las bibliotecas cliente de Resource Manager para actualizar la política de permisos.
Obtén la política de permisos actual
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
A fin de obtener la política de permisos del recurso, ejecuta el comando
get-iam-policy
para el recurso:gcloud RESOURCE_TYPE get-iam-policy RESOURCE_ID --format=FORMAT > PATH
Ingresa los siguientes valores:
-
RESOURCE_TYPE
: Es el tipo de recurso para el que deseas obtener la política de permisos. Usa uno de los siguientes valores:projects
,resource-manager folders
oorganizations
. -
RESOURCE_ID
: Tu ID de la organización, carpeta y proyecto de Google Cloud. Los ID de proyecto son alfanuméricos, comomy-project
. Los ID de carpeta y organización son numéricos, como123456789012
. -
FORMAT
: El formato deseado para la política permisos. Usajson
oyaml
. -
PATH
: La ruta a un nuevo archivo de salida de la política de permisos.
Por ejemplo, con el siguiente comando, se obtiene la política de permisos para el proyecto
my-project
y se guarda en tu directorio principal en formato JSON:gcloud projects get-iam-policy my-project --format json > ~/policy.json
-
C#
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
En el siguiente ejemplo, se muestra cómo obtener la política de permisos para un proyecto. Para obtener información sobre la política de permisos de una carpeta u organización, consulta la documentación de las bibliotecas cliente de Resource Manager de tu lenguaje de programación.
Java
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
En el siguiente ejemplo, se muestra cómo obtener la política de permisos para un proyecto. Para obtener información sobre la política de permisos de una carpeta u organización, consulta la documentación de las bibliotecas cliente de Resource Manager de tu lenguaje de programación.
Python
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
En el siguiente ejemplo, se muestra cómo obtener la política de permisos para un proyecto. Para obtener información sobre la política de permisos de una carpeta u organización, consulta la documentación de las bibliotecas cliente de Resource Manager de tu lenguaje de programación.
REST
El método
getIamPolicy
de la API de Resource Manager obtiene la política de permisos de un proyecto, una carpeta o una organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
API_VERSION
: La versión de la API que se usará. Para los proyectos y las organizaciones, usav1
. Para las carpetas, usav2
.RESOURCE_TYPE
: El tipo de recurso cuya política deseas administrar. Usa el valorprojects
,folders
oorganizations
.RESOURCE_ID
: El proyecto ID de la carpeta, la organización o el proyecto de Google Cloud. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.POLICY_VERSION
: Es la versión de la política que se mostrará. Las solicitudes deben especificar la versión de política más reciente, que es la versión de política 3. Consulta Especifica una versión de política cuando obtienes una política para obtener más detalles.
Método HTTP y URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:getIamPolicy
Cuerpo JSON de la solicitud:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la política de permisos del recurso. Por ejemplo:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/owner", "members": [ "user:owner@example.com" ] } ] }
Guarda la respuesta en un archivo del tipo adecuado (
json
oyaml
).Modifica la política de permisos
De manera programática o mediante un editor de texto, modifica la copia local de la política de permisos de tu proyecto para que refleje los roles que deseas otorgar o revocar.
Para asegurarte de no reemplazar otros cambios, no edites ni quites el campo
etag
de la política de permisos. El campoetag
identifica el estado actual de la política de permisos. Cuando configuras la política de permisos actualizada, IAM compara el valor deetag
en la solicitud con eletag
existente y solo escribe la política de permisos si los valores coinciden.Para editar los roles que otorga una política de permisos, debes editar las vinculaciones de roles en la política de permisos. Las vinculaciones de roles tienen el siguiente formato:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
Los marcadores de posición tienen los siguientes valores:
ROLE_NAME
: El nombre del rol que deseas otorgar. Usa uno de los siguientes formatos:- Roles predefinidos:
roles/SERVICE.IDENTIFIER
- Roles personalizados a nivel de proyecto:
projects/PROJECT_ID/roles/IDENTIFIER
- Roles personalizados a nivel de la organización:
organizations/ORG_ID/roles/IDENTIFIER
Para obtener una lista de roles predefinidos, consulta Cómo entender los roles.
- Roles predefinidos:
PRINCIPAL_1
,PRINCIPAL_2
,...PRINCIPAL_N
: Los identificadores de las principales a las que deseas otorgar los roles.Los identificadores principales suelen tener el siguiente formato:
PRINCIPAL-TYPE:ID
. Por ejemplo,user:my-user@example.com
Si deseas obtener una lista completa de los valores quePRINCIPAL
puede tener, consulta la referencia sobre la vinculación de políticas.Para el tipo de principal
user
, el nombre de dominio en el identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para obtener información sobre cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity.CONDITIONS
: Opcional Cualquier condición que especifique cuándo se otorgará el acceso.
Otorga una función
Para otorgar roles a las principales, modifica las vinculaciones de roles en la política de permisos. Para obtener información sobre qué roles puedes otorgar, consulta Comprende los roles o consulta los roles asignables para el recurso. Si necesitas ayuda para identificar las funciones predefinidas más adecuadas, consulta Elige funciones predefinidas.
De forma opcional, puedes usar condiciones para otorgar funciones solo cuando se cumplan ciertos requisitos.
Para otorgar un rol que ya está incluido en la política de permisos, agrega la principal a una vinculación de rol existente:
gcloud
Edita la política de permisos que se muestra y agrega la principal a una vinculación de rol existente. Ten en cuenta que este cambio no se hará efectivo hasta que configures la política de permisos actualizada.
Por ejemplo, imagina que la política de permisos contiene la siguiente vinculación de rol, que otorga el rol Security Reviewer (
roles/iam.securityReviewer
) akai@example.com
:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com" ] }
Para otorgar esa misma función a
raha@example.com
, agregaraha@example.com
a la vinculación de función existente:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
C#
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Go
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Java
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Python
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
REST
Edita la política de permisos que se muestra y agrega la principal a una vinculación de rol existente. Ten en cuenta que este cambio no se hará efectivo hasta que configures la política de permisos actualizada.
Por ejemplo, imagina que la política de permisos contiene la siguiente vinculación de rol, que otorga el rol Security Reviewer (
roles/iam.securityReviewer
) akai@example.com
:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com" ] }
Para otorgar esa misma función a
raha@example.com
, agregaraha@example.com
a la vinculación de función existente:{ "role": "roles/iam.securityReviewer", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
Para otorgar un rol que aún no está incluido en la política de permisos, agrega una nueva vinculación de rol:
gcloud
Edita la política de permisos y agrega una nueva vinculación de rol que otorgue el rol a la principal. Este cambio no se hará efectivo hasta que establezcas la política de permisos actualizada.
Por ejemplo, para otorgar el rol Compute Storage Admin (
roles/compute.storageAdmin
) araha@example.com
, agrega la siguiente vinculación de rol al arraybindings
de la política de permisos:{ "role": "roles/compute.storageAdmin", "members": [ "user:raha@example.com" ] }
C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
REST
Edita la política de permisos y agrega una nueva vinculación de rol que otorgue el rol a la principal. Este cambio no se hará efectivo hasta que establezcas la política de permisos actualizada.
Por ejemplo, para otorgar el rol Compute Storage Admin (
roles/compute.storageAdmin
) araha@example.com
, agrega la siguiente vinculación de rol al arraybindings
de la política de permisos:{ "role": "roles/compute.storageAdmin", "members": [ "user:raha@example.com" ] }
Solo puedes otorgar funciones relacionadas con los servicios de API activados. Si un servicio, como Compute Engine, no está activo, no puedes otorgar funciones relacionadas exclusivamente con Compute Engine. Para obtener más información, consulta Habilitar e inhabilitar las API.
Hay algunas restricciones únicas cuando se otorgan permisos en proyectos, en particular, cuando se otorga la función de propietario (
roles/owner
). Consulta la documentación de referencia deprojects.setIamPolicy()
para obtener más información.Revoca una función
Para revocar una función, quita la principal de la vinculación de función. Si no hay otras principales en la vinculación de función, quita toda la vinculación de la función.
gcloud
Para revocar un rol, edita la política de permisos JSON o YAML que muestra el comando
get-iam-policy
. Este cambio no se hará efectivo hasta que establezcas la política de permisos actualizada.Para revocar un rol de una principal, borra las principales o vinculaciones deseadas del array
bindings
de la política de permisos.C#
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM C#.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Go
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Go.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Java
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Java.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
Python
Para obtener más obtener información sobre cómo instalar y usar la biblioteca cliente de IAM, consulta Bibliotecas cliente de IAM. Para obtener más información, consulta la documentación de referencia de la API de IAM Python.
Para autenticarte en IAM, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
REST
Para revocar un rol, edita la política de permisos JSON o YAML que muestra el comando
get-iam-policy
. Este cambio no se hará efectivo hasta que establezcas la política de permisos actualizada.Para revocar un rol de una principal, borra las principales o vinculaciones deseadas del array
bindings
de la política de permisos.Establece la política de permisos
Después de modificar la política de permisos para otorgar y revocar los roles deseados, llama a
setIamPolicy()
con el fin de realizar las actualizaciones.gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
A fin de configurar la política de permisos del recurso, ejecuta el comando
set-iam-policy
para el recurso:gcloud RESOURCE_TYPE set-iam-policy RESOURCE_ID PATH
Ingresa los siguientes valores:
-
RESOURCE_TYPE
: Es el tipo de recurso en el que quieres establecer la política de permisos. Usa uno de los siguientes valores:projects
,resource-manager folders
oorganizations
. -
RESOURCE_ID
: Tu ID de la organización, carpeta y proyecto de Google Cloud. Los ID de proyecto son alfanuméricos, comomy-project
. Los ID de carpeta y organización son numéricos, como123456789012
. -
PATH
: Es la ruta a un archivo que contiene la política de permisos nueva.
La respuesta contiene la política de permisos actualizada:
Por ejemplo, con el siguiente comando, se establece la política de permisos almacenada en
policy.json
como la política de permisos para el proyectomy-project
:gcloud projects set-iam-policy my-project ~/policy.json
-
C#
Java
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
En el siguiente ejemplo, se muestra cómo configurar la política de permisos de un proyecto. Si deseas obtener información para configurar la política de permisos de una carpeta o una organización, consulta la documentación de la biblioteca cliente de Resource Manager para tu lenguaje de programación.
Python
Para autenticarte en Resource Manager, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Antes de comenzar.
Si deseas obtener información para instalar y usar la biblioteca cliente de Resource Manager, consulta las bibliotecas cliente de Resource Manager.
En el siguiente ejemplo, se muestra cómo configurar la política de permisos de un proyecto. Si deseas obtener información para configurar la política de permisos de una carpeta o una organización, consulta la documentación de la biblioteca cliente de Resource Manager para tu lenguaje de programación.
REST
El método
setIamPolicy
de la API de Resource Manager establece la política en la solicitud como la política de permisos nueva para el proyecto, la carpeta o la organización.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
API_VERSION
: La versión de la API que se usará. Para los proyectos y las organizaciones, usav1
. Para las carpetas, usav2
.RESOURCE_TYPE
: El tipo de recurso cuya política deseas administrar. Usa el valorprojects
,folders
oorganizations
.RESOURCE_ID
: El proyecto ID de la carpeta, la organización o el proyecto de Google Cloud. Los ID de proyecto son strings alfanuméricas, comomy-project
. Los IDs de carpeta y organización son numéricos, como123456789012
.-
POLICY
: Una representación JSON de la política que deseas establecer. Para obtener más información sobre el formato de una política, consulta la Referencia de políticas.
Método HTTP y URL:
POST https://cloudresourcemanager.googleapis.com/API_VERSION/RESOURCE_TYPE/RESOURCE_ID:setIamPolicy
Cuerpo JSON de la solicitud:
{ "policy": POLICY }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la política de permisos actualizada:
¿Qué sigue?
- Obtén más información para administrar el acceso a las cuentas de servicio.
- Conoce los pasos generales para administrar el acceso a otros recursos.
- Descubre cómo elegir las funciones predefinidas más adecuadas.
- Usa el solucionador de problemas de políticas a fin de comprender por qué un usuario tiene o no tiene acceso a un recurso o por qué tiene permiso para llamar a una API.
- Descubre cómo ver las funciones que puedes otorgar en un recurso en particular.
- Obtén más información sobre cómo hacer que el acceso de una principal sea condicional con vinculaciones de funciones condicionales.
- Explora formas de proteger las aplicaciones con Identity-Aware Proxy.
Pruébalo tú mismo
Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Empezar gratisSalvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-08-16 (UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema de traducción" },{ "type": "thumb-down", "id": "otherDown", "label":"Otro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de comprender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Resolvió mi problema" },{ "type": "thumb-up", "id": "otherUp", "label":"Otro" }]