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

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
  1. Realice una de las siguientes acciones:

  2. 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
  1. 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.

  2. 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
  3. 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
  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 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.