Administra el acceso a otros recursos

En esta página, se describe el proceso general para otorgar, cambiar y revocar el acceso a los recursos que aceptan políticas de permisos.

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.

En esta página, se describe cómo administrar el acceso a los recursos mediante la consola de Google Cloud, Google Cloud CLI y la API de REST. También puedes administrar el acceso mediante las bibliotecas cliente de Google Cloud.

Antes de comenzar

Revisa la lista de tipos de recursos que aceptan políticas de permisos.

Permisos necesarios

Si deseas administrar el acceso a un recurso, necesitas permisos para obtener el recurso y para obtener y establecer la política de permisos del recurso. Estos permisos tienen el siguiente formato, en el que SERVICE es el nombre del servicio que posee el recurso y RESOURCE_TYPE es el nombre del tipo de recurso al que deseas administrar el acceso:

  • SERVICE.RESOURCE_TYPE.get
  • SERVICE.RESOURCE_TYPE.getIamPolicy
  • SERVICE.RESOURCE_TYPE.setIamPolicy

Por ejemplo, para administrar el acceso a una instancia de Compute Engine, necesitas los siguientes permisos:

  • compute.instances.get
  • compute.instances.getIamPolicy
  • compute.instances.setIamPolicy

Para obtener los permisos necesarios, pídele a tu administrador que te otorgue una función predefinida o personalizada que incluya los permisos. Por ejemplo, el administrador podría otorgarte la función de administrador de seguridad (roles/iam.securityAdmin), que incluye permisos para administrar el acceso a casi todos los recursos de Google Cloud.

Visualiza el acceso actual

En la siguiente sección, se muestra cómo usar la consola de Google Cloud, la CLI de gcloud y la API de REST para ver quién tiene acceso a un recurso. También puedes ver el acceso mediante las bibliotecas cliente de Google Cloud para obtener la política de permisos del recurso.

Console

  1. En la consola de Google Cloud, ve a la página en la que se enumera el recurso al que deseas ver el acceso.

    Por ejemplo, para administrar el acceso a una instancia de Compute Engine, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona la casilla de verificación junto al recurso al que deseas ver el acceso.

  3. Asegúrate de que el panel de información sea visible. Si no está visible, haz clic en Mostrar panel de información. En la pestaña Permisos del panel de información, se enumeran todas las principales que tienen acceso al recurso.

    Si el interruptor Mostrar permisos heredados está activado, en la lista se incluyen las principales con funciones heredadas, es decir, principales cuyos accesos provienen de funciones en recursos superiores en lugar de funciones en el recurso en sí. Para obtener más información sobre la herencia de políticas, consulta La herencia de políticas y la jerarquía de recursos.

gcloud

Para ver quién tiene acceso a tu recurso, obtén la política de permisos del 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.

El formato para este comando varía según el tipo de recurso al que administras el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando get-iam-policy del recurso en la referencia de Google Cloud CLI. Esta referencia se organiza por servicio y, luego, por recurso. Por ejemplo, para obtener la política de permisos de una instancia de VM de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances get-iam-policy.

De forma opcional, agrega los siguientes argumentos al comando para especificar el formato y exportar los resultados:

--format=FORMAT > PATH

Ingresa los siguientes valores:

  • FORMAT: El formato deseado para la política. Usa json o yaml.
  • PATH: Es la ruta a un nuevo archivo de salida de la política.

Cuando ejecutas el comando, la política de permisos del recurso se imprime en la consola o se exporta al archivo especificado.

REST

Para ver quién tiene acceso a tu recurso, obtén la política de permisos del recurso. Para obtener información sobre cómo interpretar las políticas de permisos, consulta Comprende las políticas de permisos.

Para obtener la política de permisos del recurso, usa el método getIamPolicy del recurso.

El método HTTP, la URL y el cuerpo de la solicitud dependen del recurso al que deseas ver el acceso. Para encontrar estos detalles, busca la referencia de la API del servicio que posee el recurso y, luego, busca la referencia del método getIamPolicy del recurso. Por ejemplo, el método HTTP, la URL y el cuerpo de la solicitud para una instancia de Compute Engine se especifican en la referencia de getIamPolicy de las instancias.

La respuesta al método getIamPolicy de cualquier recurso contiene la política de permisos del recurso.

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.

En general, los cambios en las políticas entran en vigor en un plazo de 2 minutos. Sin embargo, en algunos casos, pueden tardar 7 minutos o más en propagarse por todo el sistema.

Si necesitas ayuda para identificar los roles predefinidos más adecuados, consulta Elige roles predefinidos.

Otorga una sola función

Para otorgar una sola función a una principal, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página en la que se enumera el recurso al que deseas ver el acceso.

    Por ejemplo, para administrar el acceso a una instancia de Compute Engine, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona la casilla de verificación junto al recurso al que deseas administrar el acceso.

  3. Asegúrate de que el panel de información sea visible. Si no está visible, haz clic en Mostrar panel de información.

  4. 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.

    • Para otorgar un rol a una principal que aún no tenga otros roles en el recurso, haz clic en Agregar principal y, luego, ingresa la dirección de correo electrónico de la principal.

  5. 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.

  6. Opcional: Agrega una condición a la función.

  7. Haz clic en Guardar. A la principal se le otorga la función en el recurso.

gcloud

Para otorgarle una función a una principal con rapidez, ejecuta el comando add-iam-policy-binding:

El formato para este comando varía según el tipo de recurso al que administras el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando add-iam-policy-binding del recurso en la referencia de Google Cloud CLI. Esta referencia se organiza por servicio y, luego, por recurso. Por ejemplo, para otorgar a una principal una función en una instancia de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances add-iam-policy- binding.

Revoca una sola función

Para revocar una sola función de una principal, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página en la que se enumera el recurso del que deseas revocar el acceso.

    Por ejemplo, para administrar el acceso a una instancia de Compute Engine, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona la casilla de verificación junto al recurso al que deseas administrar el acceso.

  3. Asegúrate de que el panel de información sea visible. Si no está visible, haz clic en Mostrar panel de información.

  4. Busca la fila que contiene el principal y, luego, haz clic en Editar principal en esa fila.

  5. Haz clic en el botón Borrar para el rol que deseas revocar y, luego, haz clic en Guardar.

gcloud

Para revocar una función de una principal usuario, ejecuta el comando remove-iam-policy-binding:

El formato para este comando varía según el tipo de recurso al que administras el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando remove-iam-policy-binding del recurso en la referencia de Google Cloud CLI. Esta referencia se organiza por servicio y, luego, por recurso. Por ejemplo, para otorgar a una principal una función en una instancia de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances remove-iam-policy-binding.

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:

  1. En la consola de Google Cloud, ve a la página en la que se enumera el recurso al que deseas ver el acceso.

    Por ejemplo, para administrar el acceso a una instancia de Compute Engine, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Selecciona la casilla de verificación junto al recurso al que deseas administrar el acceso.

  3. Si el panel de información no está visible, haz clic en Mostrar panel de información.

  4. 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 otorgar roles a una principal que no tenga roles en el recurso, haz clic en Agregar principal y, luego, ingresa la dirección de correo electrónico de la principal o algún otro identificador.

  5. 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.

  6. 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:

  1. Para leer la política de permisos actual, llama a getIamPolicy().
  2. 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.
  3. Para escribir la política de permisos actualizada, llama a setIamPolicy().

En esta sección, se muestra cómo usar la CLI de gcloud y la API de REST para actualizar la política de permisos. También puedes actualizar la política de permisos mediante las bibliotecas cliente de Google Cloud.

En general, los cambios en las políticas entran en vigor en un plazo de 2 minutos. Sin embargo, en algunos casos, pueden tardar 7 minutos o más en propagarse por todo el sistema.

Obtén la política de permisos actual

gcloud

A fin de obtener la política de permisos del recurso, ejecuta el comando get-iam-policy para el recurso.

El formato para este comando varía según el tipo de recurso al que administras el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando get-iam-policy del recurso en la referencia de Google Cloud CLI. Esta referencia se organiza por servicio y, luego, por recurso. Por ejemplo, para obtener la política de permisos de una instancia de VM de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances get-iam-policy.

De forma opcional, agrega los siguientes argumentos al comando para especificar el formato y exportar los resultados:

--format=FORMAT > PATH

Ingresa los siguientes valores:

  • FORMAT: El formato deseado para la política permisos. Usa json o yaml.
  • PATH: Es la ruta a un nuevo archivo de salida de la política de permisos.

Cuando ejecutas el comando, la política de permisos del recurso se imprime en la consola o se exporta al archivo especificado.

REST

Para obtener la política de permisos del recurso, usa el método getIamPolicy del recurso.

El método HTTP, la URL y el cuerpo de la solicitud dependen del recurso al que deseas ver el acceso. Para encontrar estos detalles, busca la referencia de la API del servicio que posee el recurso y, luego, busca la referencia del método getIamPolicy del recurso. Por ejemplo, el método HTTP, la URL y el cuerpo de la solicitud para una instancia de VM de Compute Engine se especifican en la referencia de getIamPolicy de las instancias.

La respuesta al método getIamPolicy de cualquier recurso contiene la política de permisos del recurso. Guarda la respuesta en un archivo del tipo adecuado (json o yaml).

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 campo etag identifica el estado actual de la política de permisos. Cuando configuras la política de permisos actualizada, IAM compara el valor de etag en la solicitud con el etag 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.

  • 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 que PRINCIPAL 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 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 Compute Instance Admin (roles/compute.instanceAdmin) a kai@example.com:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "user:kai@example.com"
  ]
}

Para otorgar esa misma función a raha@example.com, agrega raha@example.com a la vinculación de función existente:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "user:kai@example.com",
    "user:raha@example.com"
  ]
}

REST

Edita la política de permisos 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 Compute Instance Admin (roles/compute.instanceAdmin) a kai@example.com:

{
  "role": "roles/compute.instanceAdmin",
  "members": [
    "user:kai@example.com"
  ]
}

Para otorgar esa misma función a raha@example.com, agrega raha@example.com a la vinculación de función existente:

{
  "role": "roles/compute.instanceAdmin",
  "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 Load Balancer Admin (roles/compute.loadBalancerAdmin) a raha@example.com, agrega la siguiente vinculación de rol al array bindings de la política de permisos:

{
  "role": "roles/compute.loadBalancerAdmin",
  "members": [
    "user:raha@example.com"
  ]
}

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 Load Balancer Admin (roles/compute.loadBalancerAdmin) a raha@example.com, agrega la siguiente vinculación de rol al array bindings de la política de permisos:

{
  "role": "roles/compute.loadBalancerAdmin",
  "members": [
    "user:raha@example.com"
  ]
}

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.

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

A fin de configurar la política de permisos del recurso, ejecuta el comando set-iam-policy para el recurso.

El formato para este comando varía según el tipo de recurso al que administras el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando set-iam-policy del recurso en la referencia de Google Cloud CLI. Esta referencia se organiza por servicio y, luego, por recurso. Por ejemplo, para obtener la política de permisos de una instancia de VM de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances set-iam-policy.

La respuesta para el comando set-iam-policy de cualquier recurso contiene la política de permisos actualizada del recurso.

REST

Para establecer la política de permisos del recurso, usa el método setIamPolicy del recurso.

El método HTTP, la URL y el cuerpo de la solicitud dependen del recurso al que deseas ver el acceso. Para encontrar estos detalles, busca la referencia de la API del servicio que posee el recurso y, luego, busca la referencia del método setIamPolicy del recurso. Por ejemplo, el método HTTP, la URL y el cuerpo de la solicitud para una instancia de VM de Compute Engine se especifican en la referencia de setIamPolicy de las instancias.

La respuesta al método setIamPolicy de cualquier recurso contiene la política de permisos actualizada del recurso.

¿Qué sigue?

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.

Comenzar gratis