Preguntas frecuentes

Aprende sobre problemas comunes que puedes enfrentar cuando se usa Cloud Identity and Access Management.

Acerca de Google Cloud Identity and Access Management

¿Qué es Google Cloud Identity and Access Management (Cloud IAM)?

Cloud IAM te permite crear y administrar permisos para los recursos de Google Cloud Platform. Permite unificar el control de acceso a los servicios de GCP en un solo sistema y cuenta con un conjunto coherente de operaciones. Para obtener una descripción general de los conceptos, lee Descripción general de IAM.

¿Por qué necesito Cloud IAM?

Cloud IAM te permite adoptar el principio de seguridad de menor privilegio, de manera que solo otorgas el acceso necesario a tus recursos y evitas el acceso no deseado a otros recursos. Cloud IAM te permite cumplir con las cláusulas de cumplimiento en torno a la separación del deber.

¿Cuál de los servicios de Google Cloud Platform es compatible con Cloud IAM?

Todos los servicios de GCP utilizan Cloud IAM para asegurarse de que solo las identidades autorizadas puedan acceder a ellos. Además, algunos servicios proporcionan funciones de IAM específicas para sus servicios o admiten la concesión del acceso a nivel de recursos. Para obtener más información sobre la compatibilidad de IAM, consulta Descripción general de IAM.

¿Cómo empiezo a usar Cloud IAM?

Para comenzar con Cloud IAM, lee la Guía de inicio rápido de IAM.

¿Puedo usar las políticas de Cloud IAM para administrar tanto la autenticación como la autorización de mis aplicaciones?

Usa IAM para administrar la autorización a los recursos de GCP. Para administrar la autenticación de usuarios, usa los métodos que utilizas para administrarlos hoy, por ejemplo, LDAP, Grupos de Google, etc. Con la IAM, puedes otorgar acceso a una Cuenta de Google, una cuenta de servicio, un grupo de Google, Cloud Identity o un dominio de G Suite.

Funciones y políticas

¿Cuál es la relación entre una función y una política?

Los permisos determinan qué operaciones están permitidas en un recurso. En el mundo IAM, los permisos se representan en forma de <service>. <resource>. <verb>, por ejemplo, compute.instances.get. Una función es un grupo de permisos. No puedes asignar un permiso al usuario directamente; en cambio, les concedes una función. Cuando se asigna una función a un usuario, se le otorgan todos los permisos que contiene esa función.

IAM te permite controlar quién (usuarios) tiene qué permisos (funciones) para qué recursos con la configuración de las políticas de IAM. Una política de IAM en un recurso es la lista completa de funciones otorgadas a los miembros en el recurso.

Para obtener más información sobre permisos, funciones y políticas, lee Descripción general de IAM.

¿Cuál es la diferencia entre las funciones básicas y las funciones predefinidas?

Las funciones básicas son las funciones heredadas de Propietario, Editor y Lector. IAM proporciona funciones predefinidas, que permiten un acceso más detallado que las funciones básicas. Otorga funciones predefinidas a las identidades cuando sea posible, de modo que solo concedas la menor cantidad de acceso necesario para acceder a tus recursos.

¿Cuándo usaría las funciones básicas?

Usa las funciones básicas en las siguientes situaciones:

  • Cuando el servicio de GCP no proporcione una función predefinida. Consulta la tabla de funciones predefinidas para obtener una lista de todas las funciones predefinidas disponibles.

  • Cuando quieras otorgar permisos más amplios para un proyecto. Esto sucede a menudo cuando se otorgan permisos en entornos de desarrollo o prueba.

  • Cuando necesites permitir que un miembro modifique los permisos para un proyecto, querrás otorgarle la función de propietario porque solo los propietarios tienen permiso para otorgar acceso a otros usuarios para proyectos.

  • Cuando trabajes en un equipo pequeño donde los miembros del equipo no necesitan permisos detallados.

¿Puedo definir mis propias funciones (personalizadas)?

Sí, consulta el artículo sobre funciones personalizadas.

¿Cómo puedo saber qué funciones se otorgan en un recurso?

Puedes averiguar qué funciones se otorgan en un recurso con GCP Console, el método getIamPolicy() o la herramienta de línea de comandos de gcloud. Para obtener instrucciones, consulta Cómo otorgar, cambiar y revocar el acceso a los miembros del proyecto.

¿Cómo se ve una política de Cloud IAM?

Una política de IAM está representada por un objeto de política que consta de una lista de vinculaciones. Una vinculación une una lista de miembros a una función. Esto se puede representar en el código como se muestra en este fragmento de código de ejemplo:

{
  "bindings": [
   {
     "role": "roles/owner",
     "members": [
       "user:alice@example.com",
       "group:admins@example.com",
       "domain:google.com",
       "serviceAccount:my-other-app@appspot.gserviceaccount.com"]
      },
      {
        "role": "roles/compute.networkViewer",
        "members": ["user:bob@example.com"]
      }
    ]
}

La política de ejemplo anterior asigna la función de propietario a alice@example.com, admins@example.com, google.com y my-other-app@appspot.gserviceaccount.com, y la función de lector de red a bob@example.com.

¿Cómo puedo crear y administrar mis políticas de Cloud IAM?

Puedes crear y administrar las políticas de IAM con Google Cloud Platform Console, la herramienta gcloud y los métodos IAM. Para obtener instrucciones sobre cómo hacer esto, consulta Cómo otorgar, cambiar y revocar el acceso a los miembros del proyecto.

¿Cómo puedo descubrir la política de Cloud IAM de mi proyecto?

Puedes descubrir la política de IAM de un proyecto con GCP Console, el método project.getIamPolicy() o la herramienta gcloud. Para obtener instrucciones, consulta Cómo otorgar, cambiar y revocar el acceso a los miembros del proyecto.

¿Cómo puedo descubrir mi política a nivel de la organización?

Puedes descubrir la política a nivel de la organización con GCP Console, el método organization.getIamPolicy() o la herramienta gcloud. Para obtener instrucciones sobre cómo descubrir políticas a nivel de la organización, consulta Control de acceso para organizaciones.

¿Cómo actualizo una política?

Puedes actualizar una política con Developer Console, la API y la herramienta gcloud. Para obtener instrucciones, consulta Cómo otorgar, cambiar y revocar el acceso a los miembros del proyecto.

¿Cuál es el límite de tamaño de una política?

Cada política puede contener hasta un total de 1,500 members en todas sus vinculaciones, excepto el tipo de miembro del grupo de Google, que está limitado a 250.

¿Cuántas políticas de Cloud IAM puedo tener?

Cada recurso que admite una política de IAM en su nivel (p. ej., nivel de organización, nivel de proyecto o nivel de recurso) puede tener una única política. Una única política puede contener un máximo de 1,500 miembros y 250 Grupos de Google en todas sus vinculaciones.

¿Cómo soluciono los problemas de mis políticas?

Puedes usar el método testIamPermissions() para verificar cuál de los permisos dados tiene el emisor para el recurso dado. Este método toma un nombre del recurso y un conjunto de permisos como parámetros y muestra el subconjunto de permisos que tiene el emisor.

Puedes validar cuál es el efecto de una función de IAM. Por ejemplo, un usuario no puede acceder a la página de GCP Console a la que no se le ha otorgado acceso. Por ejemplo, si le otorgaste a un usuario solo la función de lector de registros, verá el siguiente mensaje de error si intenta acceder a la página de App Engine:

No tienes permisos para realizar la acción en el recurso seleccionado.

Identidades

¿A qué identidades puedo otorgar funciones de Cloud IAM?

Cloud IAM te permite otorgar acceso a los siguientes tipos de identidades:

  • Cuenta de Google
  • Cuenta de servicio
  • Grupo de Google
  • G Suite o dominio de Cloud Identity

¿Puedo usar los grupos de Google con Cloud IAM?

Generalmente. Una excepción es la función de propietario. A un grupo solo se le puede asignar la función de propietario para un proyecto si ambos forman parte de la misma organización. Los proyectos sin una organización no pueden tener grupos como propietarios, ni los grupos pueden asignarse como propietarios para proyectos en diferentes organizaciones.

De lo contrario, otorga funciones a los Grupos de Google en lugar de a usuarios individuales cuando sea posible. Es más fácil agregar miembros y quitarlos de un grupo de Google que actualizar varias políticas de Cloud IAM para agregar o quitar usuarios. Si necesitas otorgar varias funciones para permitir una tarea en particular, crea un grupo de Google, otorga las funciones a ese grupo y, luego, agrega usuarios o, también, otros grupos a ese grupo.

Ten en cuenta que una sola política de IAM puede contener un máximo de 250 Grupos de Google.

¿Puedo usar Cloud IAM para crear y administrar mis usuarios?

No. Puedes usar Cloud Identity o G Suite para crear y administrar usuarios. También puedes administrar a tus usuarios por sus métodos actuales, como LDAP o Grupos de Google. Si usas LDAP para administrar a tus usuarios, deberás usar Google Cloud Directory Sync para sincronizar los datos en tu dominio de Google. Sin embargo, si administras tus usuarios, deberás vincularlos, preferiblemente con Grupos de Google, a una función en una política de IAM para permitirles acceder a los recursos.

¿Cómo puedo inhabilitar el acceso de un usuario a los recursos de Cloud IAM?

Si le otorgaste al usuario la función de IAM a través de un grupo de Google, puedes quitar al usuario del grupo y ya no tendrá el acceso que le otorgaste al grupo. Si no usaste un grupo, deberás revisar tus políticas para identificar dónde le has otorgado acceso al usuario individual, luego, quitarlo de la política y actualizarla. El uso de Grupos de Google para otorgar acceso es más fácil porque no tendrás que actualizar todas tus políticas para revocar los derechos de acceso de un usuario individual. Para conocer más, consulta Cómo otorgar, cambiar y revocar el acceso a los miembros de proyecto.

¿Por qué un usuario no puede acceder a los recursos poco después de que se otorga el permiso ni puede continuar accediendo a los recursos después de que se quite el permiso?

En general, se requieren menos de 60 segundos para que se otorgue o revoque el acceso de un miembro. Sin embargo, en ciertas circunstancias, puede tomar hasta 7 minutos para que estos cambios se propaguen completamente en todo el sistema.

¿Cómo concedo permisos a los recursos en mi proyecto a alguien que no es miembro de mi organización?

Con los Grupos de Google, puedes agregar un usuario fuera de tu organización a un grupo y vincular ese grupo a la función. Ten en cuenta que los Grupos de Google no tienen credenciales de acceso y que no puedes usar los Grupos de Google para establecer la identidad y hacer una solicitud para acceder a un recurso.

También puedes agregar directamente al usuario a la política de IAM, incluso si no forma parte de tu organización. Sin embargo, consulta con tu administrador si esto satisface la política de tu empresa.

¿Cómo puedo restringir quién puede acceder a mis instancias?

Para restringir quién tiene acceso a tus instancias, usa los Grupos de Google para vincular las identidades a las funciones. Esta vinculación surgirá como parte de una política que se aplica a nivel de proyecto donde se lanzarán las instancias. Si un usuario (identificado por su Cuenta de Google, por ejemplo, your-user@yourdomain.com) no es miembro del grupo que está vinculado en la política de IAM, no tendrá acceso al recurso donde se aplica la política.

¿Cómo puedo usar la autenticación de varios factores (MFA) con Cloud IAM?

Cuando los usuarios individuales utilizan la MFA, se respetarán los métodos con los que se autentiquen. Esto significa que tu propio sistema de identidad debe ser compatible con la MFA. Para las cuentas de G Suite, esto debe ser habilitado por el propio usuario. Para las credenciales administradas de G Suite, la MFA se puede habilitar con las herramientas de G Suite.

¿En qué se diferencia una cuenta de servicio de un usuario que usa Cloud IAM?

Una cuenta de servicio es una Cuenta especial de Google que las aplicaciones pueden utilizar para acceder a los servicios de Google de manera programática. Esta cuenta pertenece a tu aplicación o una máquina virtual (VM), en lugar de a un usuario final individual. Tu aplicación usa la cuenta de servicio para llamar a la API de Google de un servicio, de modo que los usuarios no estén directamente involucrados.

Cuentas de servicio

¿Cuál es la cantidad máxima de cuentas de servicio que puedo tener en un proyecto?

Puedes crear 100 cuentas de servicio en un proyecto. Comunícate con tu administrador de cuentas si necesitas crear más de 100 cuentas de servicio en un proyecto.

¿Cómo puedo rotar las claves de la cuenta de servicio cuando uso Cloud IAM?

Las claves administradas por GCP se rotan diariamente. Para rotar las claves administradas por el usuario, usa la API de la cuenta de servicio de IAM para rotar automáticamente las claves de tu cuenta de servicio. Puedes rotar una clave mediante la creación de una nueva clave, el cambio de las aplicaciones para usar la nueva clave y, luego, mediante el borrado de la clave antigua. Usa el método serviceAccount.keys().create() y el método serviceAccount.keys().delete() juntos para automatizar la rotación.

¿Cómo controlo quién puede crear una cuenta de servicio en mi proyecto?

Las funciones de propietario y editor tienen permisos para crear cuentas de servicio en un proyecto. Si deseas otorgar a un usuario el permiso para crear una cuenta de servicio, concédele la función de propietario o editor.

¿Puedo crear una cuenta de servicio en una organización?

Actualmente, puedes crear cuentas de servicio solo en un proyecto; no puedes crear una cuenta de servicio directamente en una organización. Pero si otorgas permisos de IAM a nivel de la organización, los permisos serán heredados por proyectos en esa organización y, a su vez, por cuentas de servicio en los proyectos.

Tengo un equipo dedicado que administra las reglas de red y firewall. ¿Cómo puedo mantener esta separación de tareas para que mis equipos de desarrollo puedan administrar instancias, pero no realizar cambios en la red o en el firewall?

Primero, otorga la función de administrador de la red de Compute a nivel de la organización o del proyecto a tus administradores de red. Luego, otorga la función de administrador de instancias de Compute a tus desarrolladores. Esta separación de tareas permite a los desarrolladores llevar a cabo acciones en instancias mientras se evita que los desarrolladores realicen cambios en los recursos de red asociados con el proyecto.

Necesito asegurarme de que los equipos de mi organización no puedan acceder a las instancias de los demás. ¿Cómo puedo hacer esto?

Crea dos proyectos, uno para cada equipo. Luego, crea políticas separadas para cada proyecto para controlar qué equipos pueden acceder a qué proyecto y las instancias contenidas dentro de este. Un enfoque alternativo es usar cuentas de servicio con diferentes funciones.

¿Puedo cambiar la cuenta de servicio que utilizo para iniciar mi instancia?

No, no puedes cambiar la cuenta de servicio para una instancia de Compute Engine en ejecución. Solo puedes asociar una cuenta de servicio con una instancia al momento de la creación. Sin embargo, puedes cambiar los permisos otorgados a una cuenta de servicio asociada con una instancia en ejecución y los cambios entrarán en vigor inmediatamente.

¿En qué situaciones usaría la función de actor de cuenta de servicio?

La función de actor de cuenta de servicio ha dejado de estar disponible. Si necesitas ejecutar operaciones como la cuenta de servicio, usa la función de usuario de cuenta de servicio.

¿En qué situaciones usaría la función de usuario de cuenta de servicio?

El usuario de cuenta de servicio otorga permisos para ejecutar operaciones como la cuenta de servicio. Cuando se otorga junto con la función compute.instanceAdmin, la función iam.serviceAccountUser brinda a los usuarios la capacidad de crear y administrar instancias de Compute Engine que usan una cuenta de servicio. Los usuarios que son serviceAccountUsers para una cuenta de servicio pueden acceder a todos los recursos a los que la cuenta de servicio tiene acceso.

En auditoría

¿Cómo puedo auditar mis políticas de Cloud IAM?

Puedes usar los registros de Cloud Audit para auditar regularmente los cambios en tu política de IAM. Los registros de auditoría solo se guardan durante 30 días, y los usuarios necesitan exportar registros de forma explícita para guardarlos más tiempo.

¿Qué se incluye en los registros de auditoría?

Los registros de auditoría de la actividad de administración contienen una entrada para cada llamada a la API o acción administrativa que modifica la configuración o los metadatos de un servicio o proyecto. Los registros de auditoría del acceso de datos contienen una entrada para los siguientes eventos:

  • Llamadas a la API o acciones administrativas que leen la configuración o los metadatos de un servicio o proyecto.

  • Llamadas a la API o acciones administrativas que crean, modifican o leen datos proporcionados por el usuario y administrados por un servicio, como los datos almacenados en un servicio de base de datos.

  • Se registra el método setIamPolicy() a nivel de proyecto.

  • Se registran las cuentas de servicio y las claves de cuenta de servicio.

¿Cómo puedo controlar quién tiene acceso a mis registros de auditoría?

Puedes restringir el acceso a los registros con las funciones de Stackdriver Logging.

¿Cómo puedo almacenar mis registros de auditoría?

Las entradas individuales del registro de auditoría se conservan durante un período específico y, luego, se borran. La política de cuotas de Stackdriver Logging explica por cuánto tiempo se almacenan las entradas de registro. Para conservar tus entradas de registro más allá de los límites de la política de cuotas, exporta tus registros desde Stackdriver Logging a un depósito de Cloud Storage o a BigQuery.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Identity and Access Management