Configure la rotación automática mediante el AWS CLI - AWS Secrets Manager

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 por función 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 configurar la rotación mediante la consola. 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 los secretos que no son de bases de datos (consola).

Para configurar la rotación utilizando el AWS CLI secreto de una base de datos, primero tiene que 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 es asegurarse de que la función Lambda pueda acceder tanto a Secrets Manager como a su base de datos o servicio a través de la red. Por último, configure el secreto para la rotación.

Requisito previo para los secretos de la base de datos: elija una estrategia de rotación

Para obtener información sobre las estrategias que ofrece Secrets Manager, consulteEstrategias de rotación de la función Lambda.

Opción 1: estrategia para un solo usuario

Si eliges la estrategia de usuario único, puedes continuar con el paso 1.

Opción 2: estrategia de usuarios alternos

Si eliges la estrategia de usuarios alternos, debes:

  • Cree un secreto de base de datos y almacene en él las credenciales de superusuario de la base de datos. Necesita un secreto con credenciales de superusuario, ya que alternando la rotación de usuarios, clona al primer usuario y la mayoría de los usuarios no tienen ese permiso.

  • Añade el ARN del secreto de superusuario al secreto original. Para obtener más información, consulte Estructura JSON de AWS Secrets Manager secretos .

Tenga en cuenta que Amazon RDS Proxy no admite la estrategia de usuarios alternos.

Paso 1: escriba 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 por función Lambda. En este paso, escribes el código que actualiza el secreto y el servicio o base de datos para el que está destinado el secreto.

Secrets Manager proporciona plantillas para los secretos de las bases de datos de Amazon RDS, Amazon Aurora, Amazon Redshift y Amazon DocumentDB en. Plantillas de función de rotación

Para escribir el código de la función de rotación
  1. Realice una de las siguientes acciones siguientes:

  2. Guarde el archivo en el archivo ZIP my-function.zip junto con las dependencias necesarias.

Paso 2: Crear la función de Lambda

En este paso, creará la función Lambda utilizando el archivo ZIP que creó en el paso 1. También establece la función de ejecución de Lambda, que es la función que Lambda asume cuando se invoca la función.

Crear un rol de ejecución y una función de rotación de Lambda
  1. Cree una política de confianza para el rol de ejecución de Lambda y guárdela como un archivo JSON. Para ver ejemplos y más información, consulte. Permisos del rol de ejecución de la función de rotación Lambda para AWS Secrets Manager La política debe:

    • Permitir que el rol llame a las operaciones de Secrets Manager relacionadas con el secreto.

    • Permita que el rol llame al servicio para el que se encuentra el secreto, por ejemplo, para crear una nueva contraseña.

  2. Cree el rol de ejecución de Lambda y aplique la política de confianza que creó en el paso anterior mediante una llamada. iam create-role

    aws iam create-role \ --role-name rotation-lambda-role \ --assume-role-policy-document file://trust-policy.json
  3. Cree la función de Lambda a partir del archivo ZIP mediante una llamada a 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
  4. 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-account 123456789012

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 Lambda.

Paso 4: Configura el secreto de 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 Horarios 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\"}"

Siguientes pasos

Consulte Solucionar problemas de rotación AWS Secrets Manager.