Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Rotación automática de contraseñas para usuarios
Con AWS Secrets Manager, puedes reemplazar las credenciales codificadas en tu código (incluidas las contraseñas) por una API llamada a Secrets Manager para recuperar el secreto mediante programación. Esto ayuda a garantizar la integridad del secreto si alguien examina el código, dado que el secreto sencillamente no está allí. Asimismo, puede configurar Secrets Manager para rotar el secreto automáticamente de acuerdo con la programación que especifique. Esto le permite reemplazar secretos a largo plazo con secretos a corto plazo, lo que contribuye a reducir significativamente el riesgo de peligro.
Con Secrets Manager, puedes rotar automáticamente tus OSS contraseñas ElastiCache de Redis (es decir, secretas) mediante una AWS Lambda función que proporciona Secrets Manager.
Para obtener más información al respecto AWS Secrets Manager, consulte ¿Qué es? AWS Secrets Manager
¿Cómo ElastiCache usa los secretos
Valkey 7.2 y versiones posteriores tienen un conjunto de funciones equivalente al de Redis 7.0OSS. En Redis OSS 6, ElastiCache se introdujo Control de acceso basado en roles () RBAC para proteger el clúster de Valkey o Redis. OSS Esta característica permite limitar determinadas conexiones en términos de los comandos que se pueden ejecutar y las claves a las que se puede acceder. Mientras el cliente crea un usuario con contraseñas, los valores de la contraseña deben introducirse manualmente en texto simple y estar visibles para el operador. RBAC
Con Secrets Manager, las aplicaciones obtienen la contraseña de Secrets Manager en lugar de ingresarla manualmente y almacenarla en la configuración de la aplicación. Para obtener información sobre cómo hacerlo, consulte Cómo se asocian ElastiCache los usuarios al secreto.
El uso de secretos conlleva un coste. Para obtener información sobre precios, consulte Precios de AWS Secrets Manager
Cómo se asocian ElastiCache los usuarios al secreto
Secrets Manager guardará una referencia del usuario asociado en el campo SecretString
del secreto. No habrá ninguna referencia al secreto desde ElastiCache un lado.
{ "password": "strongpassword", "username": "user1", "user_arn": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" //this is the bond between the secret and the user }
Función de rotación de Lambda
Para activar la rotación automática de contraseñas de Secrets Manager, creará una función Lambda que interactuará con el usuario de modificación API para actualizar sus contraseñas.
Para obtener información sobre cómo funciona esto, consulte Cómo funciona la rotación.
nota
En el caso de algunos AWS servicios, para evitar el confuso escenario secundario, se AWS recomienda utilizar tanto la clave de condición como la clave de aws:SourceArn
condición aws:SourceAccount
global. Sin embargo, si incluye la aws:SourceArn
condición en su política de funciones de rotación, la función de rotación solo se podrá utilizar para rotar el secreto especificado en ellaARN. Se recomienda incluir solo la clave de contexto aws:SourceAccount
, para poder utilizar la función de rotación para varios secretos.
Para cualquier problema que puedas encontrar, consulta Solucionar problemas de rotación de AWS Secrets Manager.
Cómo crear un ElastiCache usuario y asociarlo a Secrets Manager
Los siguientes pasos muestran cómo crear un usuario y asociarlo con Secrets Manager:
Crear un usuario inactivo
Para Linux, macOS o Unix:
aws elasticache create-user \ --user-id user1 \ --user-name user1 \ --engine "REDIS" \ --no-password \ // no authentication is required --access-string "*off* +get ~keys*" // this disables the user
Para Windows:
aws elasticache create-user ^ --user-id user1 ^ --user-name user1 ^ --engine "REDIS" ^ --no-password ^ // no authentication is required --access-string "*off* +get ~keys*" // this disables the user
Verá una respuesta similar a la siguiente:
{ "UserId": "user1", "UserName": "user1", "Status": "active", "Engine": "redis", "AccessString": "off ~keys* -@all +get", "UserGroupIds": [], "Authentication": { "Type": "no_password" }, "ARN": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" }
Crear un secreto
Para Linux, macOS o Unix:
aws secretsmanager create-secret \ --name production/ec/user1 \ --secret-string \ '{ "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", "username":"user1" }'
Para Windows:
aws secretsmanager create-secret ^ --name production/ec/user1 ^ --secret-string ^ '{ "user_arn": "arn:aws:elasticache:us-east-1:123456xxxx:user:user1", "username":"user1" }'
Verá una respuesta similar a la siguiente:
{ "ARN": "arn:aws:secretsmanager:us-east-1:123456xxxx:secret:production/ec/user1-eaFois", "Name": "production/ec/user1", "VersionId": "aae5b963-1e6b-4250-91c6-ebd6c47d0d95" }
Configurar una función de Lambda para rotar la contraseña
Inicie sesión en la consola Lambda AWS Management Console y ábrala en https://console.aws.amazon.com/lambda/
Elija Functions (Funciones) en el panel de navegación y, a continuación, elija la función que ha creado. Elija el nombre de la función, no la casilla de verificación situada a la izquierda.
Elija la pestaña Configuración.
En General configuration (Configuración general), elija Edit (Editar) y, a continuación, establezca Timeout (Tiempo de espera) en al menos 12 minutos.
Seleccione Guardar.
Elija Environment variables (Variables de entorno) y, a continuación, establezca lo siguiente:
SECRETS_ MANAGER _ ENDPOINT — https://secretsmanager.
REGION
.amazonaws.com.rproxy.goskope.comSECRET_ ARN — El nombre del recurso de Amazon (ARN) del secreto que creaste en el paso 2.
USER_ NAME — Nombre de usuario del ElastiCache usuario,
Seleccione Guardar.
Elegir Permissions (Permisos)
En Función de ejecución, elija el nombre de la función de Lambda para verla en la IAM consola.
La función de Lambda necesitará el siguiente permiso para modificar los usuarios y establecer la contraseña:
ElastiCache
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticache:DescribeUsers", "elasticache:ModifyUser" ], "Resource": "arn:aws:elasticache:us-east-1:xxxxxxxxxx918:user:user1" } ] }
Secrets Manager
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "arn:aws:secretsmanager:us-east-1:xxxxxxxxxxx:secret:XXXX" }, { "Effect": "Allow", "Action": "secretsmanager:GetRandomPassword", "Resource": "*" } ] }
Configurar la rotación de secretos de Secrets Manager
Uso de AWS Management Console, consulte Configurar la rotación automática de los AWS secretos de Secrets Manager mediante la consola
Para obtener más información sobre la configuración de un programa de rotación, consulte Programación de expresiones en la rotación de Secrets Manager.
Con el AWS CLI, consulte Configurar la rotación automática para AWS Secrets Manager usar el AWS Command Line Interface