Encontrar los roles predefinidos adecuados

Gestión de Identidades y Accesos (IAM) proporciona varios roles predefinidos para la mayoría de los Trusted Cloud by S3NS servicios. Cada rol predefinido contiene los permisos necesarios para realizar una tarea o un grupo de tareas relacionadas.

En algunas tareas, encontrar un rol predefinido adecuado suele ser sencillo. Por ejemplo, si una entidad necesita ver objetos en un segmento de Cloud Storage, es probable que el rol Visor de objetos de Storage (roles/storage.objectViewer) sea el adecuado.

Sin embargo, hay cientos de roles predefinidos, lo que puede dificultar la identificación de los roles más adecuados para conceder a tus principales. También puede ser difícil encontrar roles que sigan el principio de mínimos accesos, que establece que las entidades no deben tener más permisos de los que realmente necesitan.

En esta página se explica el proceso para elegir los roles predefinidos más adecuados:

  1. Identifica los permisos necesarios.
  2. Busca los roles que contengan los permisos.
  3. Elige los roles más adecuados.
  4. Decide dónde quieres conceder los roles.
  5. Asigna los roles a una cuenta principal.

Identificar los permisos necesarios

Para identificar los permisos que necesita una entidad, empieza por enumerar las tareas que debe realizar y los servicios de Trusted Cloud que usará para esas tareas. Por ejemplo, un principal puede necesitar usar Compute Engine para crear instancias de máquinas virtuales.

Una vez que hayas identificado las tareas y los servicios, puedes usar algunas estrategias para identificar los permisos necesarios para cada tarea:

  • Consulta la documentación de los Trusted Cloud servicios.

    En el caso de algunos servicios, en las guías prácticas orientadas a tareas se indican los roles o permisos que necesitas para cada tarea, ya sea en la sección "Antes de empezar" o en las instrucciones de cada tarea. Por ejemplo, consulta los requisitos para importar y exportar imágenes de máquina virtual de Compute Engine.

    Otros servicios identifican los roles y permisos necesarios en una página sobre el control de acceso. Por ejemplo, consulta los permisos necesarios para llamar a los métodos de Pub/Sub.

  • Identifica los métodos de las APIs REST o RPC que usarías para completar las tareas y consulta la documentación de referencia de las APIs para ver los permisos de gestión de identidades y accesos necesarios.

    En algunos servicios, la documentación de las APIs REST y RPC indica los permisos que requiere cada método. Por ejemplo, consulta la documentación de Compute Engine sobre el método instances.get.

  • Consulta la lista de permisos de cada servicio y decide cuáles son los pertinentes.

    En la mayoría de los casos, el nombre de cada permiso también describe lo que te permite hacer. Por ejemplo, el permiso para crear una instancia de VM de Compute Engine se llama compute.instances.create.

    Para ayudarte a entender cada nombre de permiso, recuerda que los nombres de los permisos usan el formato SERVICE.RESOURCE_TYPE.ACTION.

Por lo general, no es necesario que identifiques todos los permisos que se requieren para cada tarea. En su lugar, céntrate en identificar el permiso más relevante para cada tarea. Si un rol predefinido contiene ese permiso, es probable que también contenga permisos relacionados.

Como parte de este proceso, también debes intentar identificar cuáles de los permisos obligatorios son los más potentes. Por lo general, los permisos más potentes se incluyen en un número menor de roles predefinidos. Por lo tanto, si te centras en estos permisos, tendrás una lista más corta de posibles roles entre los que elegir.

Por ejemplo, los siguientes tipos de permisos son especialmente potentes:

  • Permisos para crear y eliminar recursos
  • Permisos para acceder a datos sensibles, como claves de cifrado o información personal identificable (IPI)
  • Permisos para definir la política de permitir o la política de denegar de un recurso
  • Permisos para actualizar organizaciones, carpetas y proyectos, lo que puede provocar que otros recursos hereden las actualizaciones

Por el contrario, los siguientes tipos de permisos tienen menos poder:

  • Permisos para enumerar recursos
  • Permisos para acceder a datos que no son sensibles
  • Permisos para actualizar ajustes que tienen un riesgo limitado, como la plataforma de CPU mínima para instancias de máquina virtual de Compute Engine

Buscar roles que contengan los permisos

Una vez que hayas identificado los permisos necesarios, puedes buscar roles predefinidos que los incluyan y hacer una lista de los roles que mejor se adapten a tus necesidades. La forma más sencilla de encontrar estos roles es buscar en la referencia de permisos, que incluye todos los permisos de gestión de identidades y accesos, así como los roles que contienen cada permiso.

Para seguir el principio de privilegio mínimo, es posible que tengas que identificar más de un rol predefinido que conceder, sobre todo si los permisos necesarios pertenecen a varios servicios de Trusted Cloud . Por ejemplo, si una entidad necesita ver objetos de Cloud Storage y administrar bases de datos de Cloud SQL, es poco probable que un solo rol predefinido contenga los permisos adecuados para ambos servicios. Si existe un rol de este tipo, también puede incluir un gran número de permisos no relacionados que la cuenta principal no necesita. Para reducir el riesgo, busca un rol que contenga los permisos necesarios para Cloud Storage y otro que contenga los permisos necesarios para Cloud SQL.

Elegir los roles más adecuados

Ahora que tienes una lista de roles predefinidos que pueden ser adecuados, puedes elegir los roles más apropiados de la lista.

Empieza por eliminar los siguientes tipos de roles:

  • En entornos de producción: roles básicos, como Propietario (roles/owner), Editor (roles/editor) y Lector (roles/viewer).

    Los roles básicos incluyen miles de permisos en todos los Trusted Cloud servicios. En entornos de producción, no concedas roles básicos a menos que no haya ninguna alternativa. Concede los roles predefinidos o personalizados más limitados que se ajusten a tus necesidades.

  • Roles de agente de servicio, que suelen tener títulos que terminan en "Agente de servicio" y nombres que terminan en serviceAgent.

    Estos roles están pensados para los agentes de servicio, que son un tipo especial de cuenta de servicio que un servicio de Trusted Cloud usa para acceder a tus recursos. Los roles de agente de servicio suelen contener permisos para varios servicios, que pueden incluir servicios a los que tu principal no necesita acceder.

A continuación, consulta la referencia de roles predefinidos o la página Roles de la Trusted Cloud consola para ver los permisos que incluye cada rol. Comprueba los permisos de cada rol que no quieras que tenga la cuenta principal y elimina los roles que contengan permisos no deseados.

Si este proceso elimina todas las funciones predefinidas, puedes crear una función personalizada que se ajuste a tu caso práctico. De lo contrario, elige el rol o los roles que contengan el menor número de permisos y que sigan satisfaciendo tus necesidades.

Decide dónde conceder los roles

Cuando asignas un rol, siempre lo haces en un Trusted Cloud recurso específico, que pertenece a una jerarquía de recursos. Los recursos de nivel inferior, como las instancias de VM de Compute Engine, heredan los roles concedidos en los recursos de nivel superior, como proyectos, carpetas y organizaciones.

Elige dónde quieres conceder los roles predefinidos que has identificado:

  • Si la entidad necesita acceder a recursos específicos de nivel inferior, asigna los roles a esos recursos.
  • Si la principal necesita acceder a muchos recursos de un proyecto, una carpeta o una organización, concédele los roles en el proyecto, la carpeta o la organización. Elige el recurso de nivel más bajo que satisfaga las necesidades de la entidad de seguridad.

    También puedes usar las condiciones de IAM para asignar los roles solo a recursos específicos del proyecto, la carpeta o la organización.

Si ha identificado varios roles predefinidos, plantéese si debe conceder los roles en diferentes niveles de la jerarquía de recursos. Por ejemplo, si un principal necesita acceder a una sola base de datos de Cloud SQL, pero a muchas instancias de máquina virtual de Compute Engine diferentes, puedes conceder el rol de Cloud SQL en la base de datos y el rol de Compute Engine en el proyecto.

Asignar los roles a una cuenta principal

Ahora puedes asignar los roles a tu principal. Para saber cómo asignar roles, consulta lo siguiente:

Si la entidad tiene los permisos previstos en los recursos correctos, pero no puede completar sus tareas, es posible que hayas pasado por alto un permiso que necesita. Repite el proceso anterior añadiendo los permisos necesarios a la lista, buscando los roles que contengan esos permisos y eligiendo los roles más adecuados.

Siguientes pasos