Memorystore proporciona la función de autenticación de Identity and Access Management (IAM) que aprovecha IAM para ayudarte a administrar mejor el acceso de los usuarios y las cuentas de servicio. La autenticación basada en IAM se integra con AUTH de Redis, lo que te permite rotar las credenciales (tokens de IAM) sin problemas sin depender de contraseñas estáticas.
Para obtener instrucciones para configurar la autenticación de IAM para tu clúster de Memorystore, consulta Administra la autenticación de IAM.
Autenticación de IAM para Redis
Cuando se usa la autenticación de IAM, el permiso para acceder a un clúster de Memorystore no se otorga directamente al usuario final. En su lugar, los permisos se agrupan en roles, y los roles se otorgan a las principales autenticadas. Para obtener más información, consulta la descripción general de IAM.
Los administradores que se autentican con IAM pueden usar la autenticación de IAM de Memorystore para administrar de forma centralizada el control de acceso a sus instancias con políticas de IAM. Las políticas de IAM involucran las siguientes entidades:
Principales. En Memorystore, puedes usar dos tipos de principales de IAM: una cuenta de usuario y una cuenta de servicio (para aplicaciones). Otros tipos de principales, como los grupos de Google, los dominios de Google Workspace o los dominios de Cloud Identity, aún no son compatibles con la autenticación de IAM. Si quieres obtener más información, consulta Conceptos relacionados con la identidad.
Funciones. Para la autenticación de IAM de Memorystore, un usuario necesita el redis.clusters.connect permiso para autenticarse con un clúster. Para obtener este permiso, puedes vincular la cuenta de servicio o usuario a la función predefinida Usuario de conexión de base de datos de clúster de Redis (roles/redis.dbConnectionUser). Para obtener más información sobre las funciones de IAM, consulta Funciones.
Recursos. Los recursos a los que acceden los principales son clústeres de Memorystore. De forma predeterminada, las vinculaciones de políticas de IAM se aplican a nivel de proyecto, de modo que los principales reciban permisos de función para todas las instancias de Memorystore en el proyecto. Sin embargo, las vinculaciones de políticas de IAM se pueden restringir a un clúster en particular. Para obtener instrucciones, consulta Administra permisos para la autenticación de IAM.
Comando AUTH de Redis
La función de autenticación de IAM usa el comando AUTH de Redis para integrarse con IAM, lo que permite a los clientes proporcionar un token de acceso de IAM que el clúster de Memorystore verificará antes de permitir el acceso a los datos.
Al igual que todos los comandos, el comando AUTH se envía sin encriptar, a menos que la encriptación en tránsito esté habilitada.
Para ver un ejemplo de cómo puede verse el comando AUTH, consulta Conéctate a un clúster de Redis que usa la autenticación de IAM.
Período del token de acceso de IAM
De forma predeterminada, el token de acceso de IAM que recuperas como parte de la autenticación vence una hora después de recuperarlo. Como alternativa, cuando generas el token de acceso, puedes extender el tiempo de vencimiento del token hasta por 12 horas.
Cuando estableces una nueva conexión de Redis, debes presentar un token de acceso válido
con el comando AUTH. Si el token vence, debes obtener uno nuevo
para establecer conexiones nuevas. Sin embargo, si ya autenticaste una conexión existente, esta seguirá funcionando, incluso si el token vence.
Finaliza una conexión autenticada
Si deseas finalizar la conexión, usa el CLIENT KILL
comando de Redis. Para encontrar la conexión que deseas finalizar, primero ejecuta CLIENT LIST,
que muestra las conexiones de cliente en orden de antigüedad. Luego, puedes ejecutar CLIENT KILL
para finalizar la conexión.
Habilita la autenticación de IAM
Habilitar la autenticación de IAM no degrada el rendimiento del estado estable. Sin embargo, afecta la velocidad con la que puedes establecer una conexión.
Habilitar la autenticación de IAM limita la velocidad de las conexiones de cliente que se establecen cada segundo. Esto se debe a que la autenticación de IAM de Google Cloud debe autenticar cada conexión nueva. En estado estable, una aplicación habilita los grupos de conexiones, por lo que este impacto es insignificante. Sin embargo, cuando las aplicaciones cliente se actualizan a través de implementaciones o procesamiento de rebote, es posible que se vuelva a establecer una gran cantidad de conexiones. Si actualizas tus clientes de forma gradual y aplicas retrocesos exponenciales, puedes absorber esta tasa reducida.
Para ver un muestra de código sobre cómo usar la autenticación de IAM, consulta Ejemplo de código de autenticación de IAM y encriptación en tránsito.
Seguridad y privacidad
La autenticación de IAM te ayuda a garantizar que solo los principales de IAM autorizados puedan acceder a tu clúster de Redis. No se proporciona encriptación TLS, a menos que la encriptación en tránsito esté habilitada. Por este motivo, se recomienda activar la encriptación en tránsito cuando se usa la autenticación de IAM.
Conéctate con una VM de Compute Engine
Si usas una VM de Compute Engine para conectarte a una instancia que usa la autenticación de IAM, debes habilitar los siguientes permisos de acceso y APIs para tu proyecto:
Permiso de la API de Cloud Platform. Para obtener instrucciones sobre cómo habilitar este permiso, consulta Adjunta la cuenta de servicio y actualiza el permiso de acceso. Para obtener una descripción de las prácticas recomendadas para este permiso de acceso, consulta Prácticas recomendadas para los permisos.
API de Memorystore for Redis Cluster. Para obtener un vínculo para habilitar la API, haz clic en el siguiente botón:
Memorystore for Redis Cluster