Una forma de proteger los recursos sensibles es limitar el acceso a ellos. Sin embargo, limitar el acceso a recursos sensibles también genera fricción para cualquier persona que necesite acceder a esos recursos de vez en cuando. Por ejemplo, un usuario puede necesitar acceso de emergencia a recursos sensibles para resolver un incidente.
En estas situaciones, te recomendamos que concedas al usuario permiso para acceder al recurso de forma temporal. También te recomendamos que, para mejorar la auditoría, registres la justificación del usuario para acceder al recurso.
En Google Cloud, hay varias formas de gestionar este tipo de acceso elevado temporal.
Privileged Access Manager
Puedes usar Gestor de acceso privilegiado (PAM) para gestionar la elevación de privilegios temporal puntual de determinados principales y ver los registros de auditoría posteriormente para saber quién ha tenido acceso a qué y cuándo.
Puede que quieras proporcionar una elevación de privilegios temporal a través de Privileged Access Manager en las siguientes situaciones:
Conceder acceso de emergencia: permite que determinados servicios de emergencias realicen tareas críticas sin tener que esperar la aprobación. Puedes exigir que se proporcionen justificaciones para añadir contexto sobre por qué se necesita el acceso de emergencia.
Controlar el acceso a recursos sensibles: controla estrictamente el acceso a recursos sensibles, lo que requiere aprobaciones y justificaciones empresariales. Privileged Access Manager también se puede usar para auditar cómo se usó este acceso. Por ejemplo, cuándo estuvieron activos los roles concedidos a un usuario, a qué recursos se podía acceder durante ese tiempo, la justificación del acceso y quién lo aprobó.
Por ejemplo, puedes usar Gestor de acceso privilegiado para hacer lo siguiente:
Ofrece a los desarrolladores acceso temporal a entornos de producción para solucionar problemas o realizar implementaciones.
Concede a los ingenieros de asistencia acceso a datos sensibles de clientes para tareas específicas.
Concede privilegios elevados a los administradores de bases de datos para que puedan realizar tareas de mantenimiento o cambios en la configuración.
Protege las cuentas de servicio: en lugar de conceder roles a las cuentas de servicio de forma permanente, permite que las cuentas de servicio se eleven y asuman roles solo cuando sea necesario para las tareas automatizadas.
Gestionar el acceso de los contratistas y del personal externo: concede a los contratistas o a los miembros del personal externo acceso temporal y limitado a los recursos, con aprobaciones y justificaciones obligatorias.
Para obtener más información sobre cómo configurar Privileged Access Manager, consulta el artículo sobre Privileged Access Manager.
Para obtener más información sobre cómo solicitar una elevación temporal, consulta Solicitar acceso elevado temporal.
Grupos de Google
Una forma de gestionar el acceso elevado temporal es conceder acceso a un grupo de Google a recursos sensibles y, a continuación, añadir y quitar usuarios de ese grupo para controlar su acceso.
Para configurar un grupo de Google con acceso elevado temporal, primero crea un grupo y, después, concédele los roles que quieras asignar temporalmente a los usuarios. Si usas políticas de denegación, también puedes eximir al grupo de las reglas de denegación pertinentes para evitar denegaciones inesperadas.
Una vez que hayas configurado el grupo, podrás añadir y quitar usuarios para modificar su acceso. Si usas la API Google Groups, puedes añadir usuarios a un grupo temporalmente mediante la caducidad de la pertenencia.
Si quieres registrar las justificaciones de los usuarios para acceder a recursos sensibles, debes definir tus propios procesos operativos y herramientas.
Por ejemplo, para gestionar el acceso de emergencia a los recursos de Compute Engine, puedes crear un grupo, emergency-compute-access@example.com
, y concederle el rol Administrador de Compute (roles/compute.admin
). Si un usuario necesita acceso administrativo de emergencia a los recursos de computación, puedes añadirlo al grupo emergency-compute-access@example.com
. Cuando se haya resuelto la emergencia, puedes quitar a esa persona del grupo.
Condiciones de gestión de identidades y accesos
Puedes usar las condiciones de IAM para conceder a los usuarios acceso temporal a losGoogle Cloud recursos. Para obtener más información, consulta Configurar acceso temporal.
Si quieres registrar las justificaciones de los usuarios para acceder a recursos sensibles, debes definir tus propios procesos operativos y herramientas.
Los enlaces de roles caducados no se eliminan automáticamente de tus políticas de permiso. Para asegurarte de que tus políticas de permiso no superen el tamaño máximo, te recomendamos que elimines periódicamente las vinculaciones de roles caducadas.
Las políticas de denegación no admiten condiciones basadas en el tiempo. Por lo tanto, no puedes usar condiciones en las políticas de denegación para eximir temporalmente a un usuario de una regla de denegación.
Acceso privilegiado Just-in-Time
El acceso Just-in-Time es una aplicación de código abierto que usa condiciones de gestión de identidades y accesos para conceder a los usuarios acceso privilegiado a los recursos en el momento oportuno. Google CloudEsta aplicación está diseñada para ejecutarse en App Engine o Cloud Run.
Esta aplicación ofrece las siguientes ventajas con respecto a la adición manual de enlaces de roles condicionales:
- Los usuarios pueden buscar los roles que pueden activar con el acceso Just-in-Time.
- Los usuarios deben proporcionar justificaciones antes de obtener acceso.
- La aplicación sustituye la vinculación condicional que ya existe en lugar de crear vinculaciones nuevas, lo que ayuda a mantener el tamaño de tu política de permisos de gestión de identidades y accesos.
Para obtener más información sobre el acceso justo a tiempo, consulta Gestionar el acceso privilegiado justo a tiempo a proyectos.
Suplantación de identidad de cuentas de servicio
Cuando un principal autenticado, como un usuario u otra cuenta de servicio, se autentica como una cuenta de servicio para obtener sus permisos, se denomina suplantación de identidad de la cuenta de servicio. Al usar la identidad de una cuenta de servicio, un principal autenticado puede acceder a todo lo que pueda acceder la cuenta de servicio. Solo las entidades autenticadas con los permisos adecuados pueden suplantar cuentas de servicio.
Para configurar una cuenta de servicio con acceso elevado temporal, crea la cuenta de servicio y, a continuación, concédele los roles que quieras asignar temporalmente a un usuario. Si usas políticas de denegación, también te recomendamos que añadas la cuenta de servicio exenta de las reglas de denegación pertinentes para evitar denegaciones inesperadas.
Una vez que hayas configurado la cuenta de servicio, puedes conceder a los usuarios acceso elevado temporal permitiéndoles suplantar la identidad de la cuenta de servicio. Hay varias formas de permitir que los usuarios suplanten la identidad de cuentas de servicio:
Asigna a los usuarios un rol que les permita crear credenciales de duración reducida para la cuenta de servicio. Los usuarios pueden usar las credenciales de corta duración para suplantar la identidad de la cuenta de servicio.
Asigna el rol Creador de tokens de identidad OpenID Connect de cuenta de servicio (
roles/iam.serviceAccountOpenIdTokenCreator
) para permitir que el usuario cree tokens de identidad OpenID Connect (OIDC) de corta duración para la cuenta de servicio.Asigna el rol Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) para permitir que el usuario cree los siguientes tipos de credenciales de cuenta de servicio:- Tokens de acceso OAuth 2.0, que puedes usar para autenticarte en las APIs de Google
- Tokens de ID de OIDC
- JSON Web Tokens (JWTs) y blobs binarios firmados
Si asignas a un usuario uno de estos roles, podrá suplantar la identidad de la cuenta de servicio en cualquier momento para aumentar su propio acceso. Sin embargo, es menos probable que accedan o modifiquen recursos sensibles por error.
Para saber cómo suplantar la identidad de cuentas de servicio, consulta Usar la suplantación de identidad de cuentas de servicio.
Crea un servicio de intermediación de tokens que proporcione a los usuarios credenciales de duración reducida para la cuenta de servicio después de que se autentiquen y proporcionen una justificación. Los usuarios pueden usar las credenciales de corta duración para suplantar la identidad de la cuenta de servicio.
Con este método, puedes decidir cuándo permitir que los usuarios suplanten la identidad de la cuenta de servicio.
Para saber cómo generar credenciales de corta duración, consulta Crear credenciales de corta duración para una cuenta de servicio.
Para obtener más información sobre la suplantación de identidad de cuentas de servicio, consulta el artículo Suplantación de identidad de cuentas de servicio.
Siguientes pasos
- Configura Privileged Access Manager para acceso elevado temporal.
- Usa las condiciones de gestión de identidades y accesos para conceder acceso temporal a una principal.
- Implementa la aplicación de acceso Just-In-Time.
- Crea credenciales de corta duración manualmente para suplantar una cuenta de servicio.