Gestionar acceso a otros recursos

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

En Gestión de Identidades y Accesos (IAM), el acceso se concede mediante políticas de permiso, también conocidas como políticas de IAM. Una política de permiso se adjunta a un recursoGoogle Cloud . Cada política de permiso contiene una colección de vinculaciones de roles que asocian una o varias entidades principales, como usuarios o cuentas de servicio, a un rol de gestión de identidades y accesos. Estas vinculaciones de roles conceden los roles especificados a las entidades principales, tanto en el recurso al que se adjunta la política de permiso como en todos los descendientes de ese recurso. Para obtener más información sobre las políticas de permiso, consulta Información sobre las políticas de permiso.

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

Antes de empezar

Consulta la lista de tipos de recursos que aceptan políticas de permiso.

Permisos obligatorios

Para gestionar el acceso a un recurso, necesitas permisos para obtener el recurso y para obtener y definir la política de permisos del recurso. Estos permisos tienen el siguiente formato, donde SERVICE es el nombre del servicio propietario del recurso y RESOURCE_TYPE es el nombre del tipo de recurso al que quieres gestionar el acceso:

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

Por ejemplo, para gestionar 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, pide a tu administrador que te asigne un rol predefinido o personalizado que incluya los permisos. Por ejemplo, tu administrador podría asignarte el rol de administrador de seguridad (roles/iam.securityAdmin), que incluye permisos para gestionar el acceso a Google Cloud casi todos los recursos.

Ver el acceso actual

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

Consola

  1. En la Google Cloud consola, ve a la página que contiene el recurso cuyo acceso quieres ver.

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

    Ir a instancias de VM

  2. Seleccione la casilla situada junto al recurso al que quiera ver el acceso.

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

    Si el interruptor Mostrar permisos heredados está activado, la lista incluye entidades principales con roles heredados, es decir, entidades principales cuyo acceso procede de roles en recursos superiores en lugar de roles en el propio recurso. Para obtener más información sobre la herencia de políticas, consulta Herencia de políticas y jerarquía de recursos.

gcloud

Para ver quién tiene acceso a tu recurso, obtén la política de permiso del recurso. Para saber cómo interpretar las políticas de permiso, consulta el artículo Descripción de las políticas de permiso.

Para obtener la política de permiso del recurso, ejecuta el comando get-iam-policy del recurso.

El formato de este comando varía en función del tipo de recurso al que quieras gestionar el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando get-iam-policy del recurso en la referencia de la CLI de Google Cloud. Esta referencia está organizada por servicio y, a continuación, por recurso. Por ejemplo, para obtener la política de permiso de una instancia de VM de Compute Engine, sigue el formato descrito en la gcloud compute instances get-iam-policyreferencia.

También puedes añadir los siguientes argumentos al comando para especificar el formato y exportar los resultados:

--format=FORMAT > PATH

Proporciona los siguientes valores:

  • FORMAT: el formato que quieres que tenga la política. Usa json o yaml.
  • PATH: 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 permiso del recurso. Para saber cómo interpretar las políticas de permiso, consulta el artículo Descripción de las políticas de permiso.

Para obtener la política de permiso de un 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 quieras ver el acceso. Para encontrar estos detalles, busca la referencia de la API del servicio que posee el recurso y, a continuación, busca la referencia del método getIamPolicy del recurso. Por ejemplo, el método HTTP, la URL y el cuerpo de la solicitud de una instancia de Compute Engine se especifican en la referencia de getIamPolicy instancias.

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

Conceder o revocar un solo rol de gestión de identidades y accesos

Puedes usar la Google Cloud consola y la CLI de gcloud para asignar o revocar rápidamente un único rol de una sola entidad principal sin tener que editar directamente la política de permisos del recurso. Entre los tipos de entidades principales más habituales se incluyen las cuentas de Google, las cuentas de servicio, los grupos de Google y los dominios. Para ver una lista de todos los tipos de principales, consulta Tipos de principales.

Por lo general, los cambios en las políticas se aplican en un plazo de 2 minutos. Sin embargo, en algunos casos, los cambios pueden tardar 7 minutos o más en propagarse por el sistema.

Si necesitas ayuda para identificar el rol predefinido más adecuado, consulta el artículo Buscar los roles predefinidos adecuados.

Conceder un solo rol de gestión de identidades y accesos

Para conceder un solo rol a una entidad, sigue estos pasos:

Consola

  1. En la Google Cloud consola, ve a la página que muestra el recurso al que quieres ver el acceso.

    Por ejemplo, para gestionar 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 situada junto al recurso al que quieras gestionar el acceso.

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

  4. Selecciona una cuenta principal a la que quieras asignar un rol:

    • Para conceder un rol a una entidad de seguridad que ya tenga otros roles en el recurso, busca la fila que contenga la entidad de seguridad, haz clic en Editar entidad de seguridad en esa fila y, a continuación, en Añadir otro rol.

    • Para asignar un rol a una principal que aún no tenga otros roles en el recurso, haz clic en Añadir principal y, a continuación, introduce un identificador de la principal (por ejemplo, my-user@example.com o //iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com).

  5. Selecciona un rol de la lista desplegable para concederlo. Para seguir las prácticas recomendadas de seguridad, elige un rol que incluya solo los permisos que necesite tu principal.

  6. Opcional: Añade una condición al rol.

  7. Haz clic en Guardar. Se concede el rol a la entidad principal en el recurso.

gcloud

Para asignar rápidamente un rol a una cuenta principal, ejecuta el comando add-iam-policy-binding.

El formato de este comando varía en función del tipo de recurso al que quieras gestionar el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando add-iam-policy-binding del recurso en la referencia de la CLI de Google Cloud. Esta referencia está organizada por servicio y, a continuación, por recurso. Por ejemplo, para conceder un rol a una entidad en una instancia de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances add-iam-policy- binding.

Revocar un solo rol de gestión de identidades y accesos

Para revocar un solo rol de un principal, haz lo siguiente:

Consola

  1. En la Google Cloud consola, vaya a la página que muestra el recurso al que quiere revocar el acceso.

    Por ejemplo, para gestionar 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 situada junto al recurso al que quieras gestionar el acceso.

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

  4. Busca la fila que contenga la cuenta principal cuyo acceso quieras revocar. A continuación, haz clic en Editar principal en esa fila.

  5. Haga clic en el botón Eliminar del rol que quiera revocar y, a continuación, haga clic en Guardar.

gcloud

Para revocar rápidamente un rol de un principal, ejecuta el comando remove-iam-policy-binding.

El formato de este comando varía en función del tipo de recurso al que quieras gestionar el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando remove-iam-policy-binding del recurso en la referencia de la CLI de Google Cloud. Esta referencia está organizada por servicio y, a continuación, por recurso. Por ejemplo, para conceder un rol a una entidad en una instancia de Compute Engine, sigue el formato descrito en la referencia de gcloud compute instances remove-iam-policy-binding.

Conceder o revocar varios roles de gestión de identidades y accesos mediante la Google Cloud consola

Puedes usar la consola para asignar y revocar varios roles a una sola entidad principal: Google Cloud

  1. En la Google Cloud consola, ve a la página que muestra el recurso al que quieres ver el acceso.

    Por ejemplo, para gestionar 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 situada junto al recurso al que quieras gestionar el acceso.

  3. Si no ves el panel de información, haz clic en Mostrar panel de información.

  4. Selecciona el principal cuyos roles quieras modificar:

    • Para modificar los roles de un principal que ya tiene roles en el recurso, busque la fila que contiene el principal, haga clic en Editar principal en esa fila y, a continuación, en Añadir otro rol.

    • Para asignar roles a un principal que no tenga ningún rol en el recurso, haz clic en Añadir principal y, a continuación, introduce un identificador del principal (por ejemplo, my-user@example.com o //iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com).

  5. Modifica los roles de la cuenta principal:

    • Para asignar un rol a un principal que no tenga ningún rol en el recurso, haz clic en Seleccionar un rol y, a continuación, selecciona el rol que quieras asignar en la lista desplegable.
    • Para asignar otro rol al principal, haz clic en Añadir otro rol y selecciona un rol de la lista desplegable.
    • Para sustituir uno de los roles del director por otro, haz clic en el rol actual y, a continuación, elige otro rol en la lista desplegable.
    • Para revocar uno de los roles del principal, haz clic en el botón Eliminar de cada rol que quieras revocar.

    También puedes añadir 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.

Conceder o revocar varios roles de gestión de identidades y accesos de forma programática

Para hacer cambios de acceso a gran escala que impliquen conceder y revocar varios roles a varias entidades, usa el patrón lectura-modificación-escritura para actualizar la política de permiso del recurso:

  1. Lee la política de permiso actual llamando a getIamPolicy().
  2. Edita la política de permiso, ya sea mediante un editor de texto o de forma programática, para añadir o eliminar principales o enlaces de roles.
  3. Escribe la política de permiso actualizada llamando a setIamPolicy().

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

Por lo general, los cambios en las políticas se aplican en un plazo de 2 minutos. Sin embargo, en algunos casos, los cambios pueden tardar 7 minutos o más en propagarse por el sistema.

Obtener la política de permisos actual

gcloud

Para obtener la política de permiso del recurso, ejecuta el comando get-iam-policy del recurso.

El formato de este comando varía en función del tipo de recurso al que quieras gestionar el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando get-iam-policy del recurso en la referencia de la CLI de Google Cloud. Esta referencia está organizada por servicio y, a continuación, por recurso. Por ejemplo, para obtener la política de permiso de una instancia de VM de Compute Engine, sigue el formato descrito en la gcloud compute instances get-iam-policyreferencia.

También puedes añadir los siguientes argumentos al comando para especificar el formato y exportar los resultados:

--format=FORMAT > PATH

Proporciona los siguientes valores:

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

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 permiso de un 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 quieras ver el acceso. Para encontrar estos detalles, busca la referencia de la API del servicio que posee el recurso y, a continuación, busca la referencia del método getIamPolicy del recurso. Por ejemplo, el método HTTP, la URL y el cuerpo de la solicitud de una instancia de máquina virtual de Compute Engine se especifican en la referencia de getIamPolicy instancias.

La respuesta del 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).

Modificar la política de permiso

Modifica la copia local de la política de permisos de tu recurso de forma programática o mediante un editor de texto para reflejar los roles que quieras otorgar o revocar.

Para asegurarte de que no se sobrescriban otros cambios, no edites ni elimines el campo etag de la política de permiso. El campo etag identifica el estado actual de la política de permiso. Cuando estableces la política de permiso actualizada, IAM compara el valor de etag de la solicitud con el valor de etag actual y solo escribe la política de permiso si los valores coinciden.

Para editar los roles que concede una política de permiso, debes editar las vinculaciones de roles en la política de permiso. Las asignaciones 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 quieres conceder. Se debe utilizar uno de los formatos indicados a continuación.

    • Roles predefinidos: roles/SERVICE.IDENTIFIER
    • Roles personalizados a nivel de proyecto: projects/PROJECT_ID/roles/IDENTIFIER
    • Roles personalizados a nivel de organización: organizations/ORG_ID/roles/IDENTIFIER

    Si quieres ver una lista de los roles predefinidos, consulta el artículo Descripción de los roles.

  • PRINCIPAL_1, PRINCIPAL_2, ...PRINCIPAL_N: identificadores de las entidades a las que quieres asignar el rol.

    Los identificadores principales suelen tener el siguiente formato: PRINCIPAL-TYPE:ID. Por ejemplo, user:my-user@example.com o principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com. Para ver una lista completa de los valores que puede tener PRINCIPAL, consulta Identificadores principales.

    En el caso del tipo de principal user, el nombre de dominio del identificador debe ser un dominio de Google Workspace o de Cloud Identity. Para saber cómo configurar un dominio de Cloud Identity, consulta la descripción general de Cloud Identity.

  • CONDITIONS: opcional. Las condiciones que especifican cuándo se concederá el acceso.

Conceder un rol

Para asignar roles a tus entidades principales, modifica las vinculaciones de roles en la política de permisos. Para saber qué roles puedes conceder, consulta Descripción de los roles o Ver roles que se pueden conceder del recurso. Si necesitas ayuda para identificar los roles predefinidos más adecuados, consulta el artículo Buscar los roles predefinidos adecuados.

También puedes usar condiciones para conceder roles solo cuando se cumplan determinados requisitos.

Para conceder un rol que ya esté incluido en la política de permitidos, añade la cuenta principal a una vinculación de roles:

gcloud

Edita la política de permiso añadiendo la cuenta principal a una vinculación de roles. Ten en cuenta que este cambio no se aplicará hasta que definas la política de permiso actualizada.

Por ejemplo, supongamos que la política de permiso contiene el siguiente enlace de rol, que asigna el rol Administrador de instancias de Compute (roles/compute.instanceAdmin) a Kai:

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

Para asignar ese mismo rol a Raha, añade el identificador de la cuenta principal de Raha a la vinculación de roles que ya existe:

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

REST

Edita la política de permiso añadiendo la cuenta principal a una vinculación de roles. Ten en cuenta que este cambio no se aplicará hasta que definas la política de permiso actualizada.

Por ejemplo, supongamos que la política de permiso contiene el siguiente enlace de rol, que asigna el rol Administrador de instancias de Compute (roles/compute.instanceAdmin) a Kai:

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

Para asignar ese mismo rol a Raha, añade el identificador de la cuenta principal de Raha a la vinculación de roles que ya existe:

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

Para conceder un rol que aún no se haya incluido en la política de permisos, añade una nueva vinculación de roles:

gcloud

Edita la política de permiso añadiendo una nueva vinculación de roles que conceda el rol al principal. Este cambio no se aplicará hasta que definas la política de permiso actualizada.

Por ejemplo, para asignar el rol Administrador de balanceador de carga de Compute (roles/compute.loadBalancerAdmin) a Raha, añade el siguiente enlace de rol a la matriz bindings de la política de permiso:

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

REST

Edita la política de permiso añadiendo una nueva vinculación de roles que conceda el rol al principal. Este cambio no se aplicará hasta que definas la política de permiso actualizada.

Por ejemplo, para asignar el rol Administrador de balanceador de carga de Compute (roles/compute.loadBalancerAdmin) a Raha, añade el siguiente enlace de rol a la matriz bindings de la política de permiso:

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

Revocar un rol

Para revocar un rol, quita la cuenta principal de la vinculación de roles. Si no hay otras cuentas principales en la vinculación de roles, elimina toda la vinculación de roles.

gcloud

Para revocar un rol, edita la política de permisos JSON o YAML devuelta por el comando get-iam-policy. Este cambio no se aplicará hasta que definas la política de permiso actualizada.

Para revocar un rol de una entidad principal, elimina las entidades principales o las vinculaciones que quieras de la matriz bindings de la política de permiso.

REST

Para revocar un rol, edita la política de permisos JSON o YAML devuelta por el comando get-iam-policy. Este cambio no se aplicará hasta que definas la política de permiso actualizada.

Para revocar un rol de una entidad principal, elimina las entidades principales o las vinculaciones que quieras de la matriz bindings de la política de permiso.

Definir la política de permitir

Cuando hayas modificado la política de permiso para otorgar y revocar los roles deseados, llama a setIamPolicy() para hacer las actualizaciones pertinentes.

gcloud

Para definir la política de permiso del recurso, ejecuta el comando set-iam-policy del recurso.

El formato de este comando varía en función del tipo de recurso al que quieras gestionar el acceso. Para encontrar el formato de tu recurso, busca la referencia del comando set-iam-policy del recurso en la referencia de la CLI de Google Cloud. Esta referencia está organizada por servicio y, a continuación, por recurso. Por ejemplo, para obtener la política de permiso de una instancia de VM de Compute Engine, sigue el formato descrito en la gcloud compute instances set-iam-policyreferencia.

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

REST

Para definir la política de permiso 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 quieras ver el acceso. Para encontrar estos detalles, busca la referencia de la API del servicio que posee el recurso y, a continuación, busca la referencia del método setIamPolicy del recurso. Por ejemplo, el método HTTP, la URL y el cuerpo de la solicitud de una instancia de máquina virtual de Compute Engine se especifican en la referencia de setIamPolicy instancias.

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

Siguientes pasos

Pruébalo

Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.

Empezar gratis