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.
Configure la rotación automática mediante el AWS CLI
En este tutorial se describe cómo realizar la configuración Rotación con función de Lambda mediante el AWS CLI. Cuando se rota un secreto, se actualizan las credenciales tanto en el secreto como en la base de datos o el servicio para el que está destinado el secreto.
También puede usar la consola para configurar la rotación. En el caso de los secretos de bases de datos, consulte Rotación automática de secretos de bases de datos (consola). Para los demás tipos de secretos, consulte Rotación automática para secretos que no son de bases de datos (consola).
Para configurar la rotación mediante el AWS CLI, si va a rotar un secreto de base de datos, primero debe elegir una estrategia de rotación. Si elige la estrategia de usuarios alternativos, debe almacenar un secreto independiente con las credenciales de un superusuario de base de datos. A continuación, escriba el código de la función de rotación. Secrets Manager proporciona plantillas en las que puede basar su función. A continuación, cree una función de Lambda con el código y establezca los permisos tanto para la función de Lambda como para el rol de ejecución de Lambda. El siguiente paso consiste en asegurarse de que la función de Lambda pueda acceder a Secrets Manager y a la base de datos o al servicio a través de la red. Por último, configure el secreto para la rotación.
Pasos:
Requisito previo para los secretos de la base de datos: elegir una estrategia de rotación
Para obtener información sobre las estrategias que ofrece Secrets Manager, consulte Estrategias de rotación de la función de Lambda.
Opción 1: estrategia de usuario único
Si elige la estrategia de usuario único, puede continuar con el paso 1.
Opción 2: estrategia de usuarios alternos
Si elige la estrategia de usuarios alternos, debe:
-
Crear un secreto y almacenar en él las credenciales de superusuario de la base de datos. Necesita un secreto con credenciales de superusuario porque la rotación para usuarios alternos clona el primer usuario, y la mayoría de los usuarios no tienen ese permiso.
-
Añada el secreto ARN del superusuario al secreto original. Para obtener más información, consulte Estructura JSON de los secretos de AWS Secrets Manager.
Tenga en cuenta que Amazon RDS Proxy no admite la estrategia de usuarios alternos.
Paso 1: escribir el código de la función de rotación
Para rotar un secreto, se necesita una función de rotación. Una función de rotación es una función de Lambda a la que Secrets Manager llama para rotar un secreto. Para obtener más información, consulte Rotación con función de Lambda. En este paso, se escribe el código que actualiza el secreto y el servicio o la base de datos para el que está destinado el secreto.
Secrets Manager proporciona plantillas para los secretos de las bases de datos de Amazon, Amazon Aurora, Amazon Redshift y Amazon DocumentDB en. RDS Plantillas de función de rotación
Escribir el código de la función de rotación
-
Realice una de las siguientes acciones:
Consultar la lista de plantillas de funciones de rotación. Si hay alguna que coincida con su estrategia de servicio y rotación, copie el código.
Para otros tipos de secretos, escriba su propia función de rotación. Para obtener instrucciones, consulte Funciones de rotación de Lambda.
Guarde el archivo en un ZIP archivo
my-function.zip
junto con las dependencias necesarias.
Paso 2: Crear la función de Lambda
En este paso, se crea la función Lambda con el ZIP archivo que se creó en el paso 1. También configura el rol de ejecución de Lambda, que es un rol que Lambda asume cuando se invoca la función.
Crear un rol de ejecución y una función de rotación de Lambda
Cree una política de confianza para la función de ejecución de Lambda y guárdela como un JSON archivo. Para obtener más información y ejemplos, consulte Permisos del rol de ejecución de la función de rotación de Lambda para AWS Secrets Manager. La política debe:
Permitir que el rol llame a las operaciones de Secrets Manager relacionadas con el secreto.
Permitir que el rol llame al servicio para el que está destinado el secreto, por ejemplo, para crear una contraseña nueva.
-
Crear el rol de ejecución de Lambda y aplicar la política de confianza que creó en el paso anterior mediante una llamada a
iam create-role
.aws iam create-role \ --role-name
rotation-lambda-role
\ --assume-role-policy-document file://trust-policy.json
-
Cree la función Lambda a partir del ZIP archivo mediante una llamada.
lambda create-function
aws lambda create-function \ --function-name my-rotation-function \ --runtime python3.7 \ --zip-file fileb://
my-function.zip
\ --handler .handler \ --role arn:aws:iam::123456789012
:role/service-role/rotation-lambda-role
-
Establezca una política de recursos en la función de Lambda para permitir que Secrets Manager la invoque mediante una llamada a
lambda add-permission
.aws lambda add-permission \ --function-name
my-rotation-function
\ --action lambda:InvokeFunction \ --statement-id SecretsManager \ --principal secretsmanager.amazonaws.com \ --source-account123456789012
Paso 3: configurar el acceso a la red
Para obtener más información, consulte Acceso a la red para la función de rotación de Lambda.
Paso 4: configurar el secreto para la rotación
Para activar la rotación automática de su secreto, llame a rotate-secret
. Puede establecer una programación de rotación con una expresión de programación cron()
o rate()
y definir una duración del periodo de rotación. Para obtener más información, consulte Programación de rotación.
aws secretsmanager rotate-secret \ --secret-id MySecret \ --rotation-lambda-arn arn:aws:lambda:
Region
:123456789012
:function:my-rotation-function
\ --rotation-rules "{\"ScheduleExpression\": \"cron(0 16 1,15 * ? *)
\", \"Duration\": \"2h
\"}"
Pasos a seguir a continuación
Consulte Solucionar problemas de rotación AWS Secrets Manager.