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 Redis AUTH, lo que te permite rotar sin problemas las credenciales (tokens de IAM) sin depender de contraseñas estáticas.
Para obtener instrucciones sobre cómo 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 estos se otorgan a las principales. 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: 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. Para obtener más información, consulta Conceptos relacionados con la identidad.
Funciones. Para la autenticación de IAM de Memorystore, un usuario necesita el permiso redis.clusters.connect para autenticarse con un clúster. Para obtener este permiso, puedes vincular el usuario o la cuenta de servicio al rol predefinido Redis Cluster DB Connection User (roles/redis.dbConnectionUser). Para obtener más información sobre los roles de IAM, consulta Roles.
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 los 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 que los clientes proporcionen 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 esté habilitada la encriptación en tránsito.
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 que se recupera. Como alternativa, cuando generes el token de acceso, puedes definir su hora de vencimiento.
Cuando establezcas 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 vence el token.
Finaliza una conexión autenticada
Si deseas finalizar la conexión, usa el comando CLIENT KILL
de Redis. Para encontrar la conexión que deseas finalizar, primero ejecuta CLIENT LIST
, que devuelve las conexiones del 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 en estado estable. Sin embargo, sí afecta la velocidad con la que puedes establecer una conexión.
Habilitar la autenticación de IAM limita la cantidad de conexiones de clientes que se establecen por 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 grupos de conexiones, por lo que este impacto es insignificante. Sin embargo, cuando las aplicaciones cliente se actualizan a través de implementaciones o del procesamiento de rebotes, es posible que se restablezca una gran cantidad de conexiones. Si actualizas tus clientes de forma gradual y aplicas retiradas exponenciales, podrás 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. La encriptación TLS no se proporciona a menos que se habilite la Encriptación en tránsito. 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:
Alcance de la API de Cloud Platform. Para obtener instrucciones sobre cómo habilitar este permiso, consulta Conecta 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 que te permita habilitar la API, haz clic en el siguiente botón:
Memorystore for Redis Cluster