

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.

# Configurar la rotación de un solo usuario para AWS Secrets Manager
<a name="tutorials_rotation-single"></a>

En este tutorial, aprenderá a configurar la rotación de un solo usuario para un secreto que contiene credenciales de bases de datos. La *rotación de un solo usuario* es una estrategia de rotación en la que Secrets Manager actualiza las credenciales de un usuario tanto en el secreto como en la base de datos. Para obtener más información, consulte [Estrategia de rotación: un solo usuario](rotation-strategy.md#rotating-secrets-one-user-one-password). 

Una vez terminado el tutorial, le recomendamos que limpie los recursos del tutorial. No los utilice en un entorno de producción.

La rotación de Secrets Manager utiliza una AWS Lambda función para actualizar el secreto y la base de datos. Para obtener información sobre los costos por usar una función de Lambda, consulte [Precios](intro.md#asm_pricing).

**Contents**
+ [Permisos](#tutorials_rotation-single_permissions)
+ [Requisitos previos](#tutorials_rotation-single_step-setup)
+ [Paso 1: cree un usuario de base de datos de Amazon RDS](#tutorials_rotation-single_step-dbuser)
+ [Paso 2: cree un secreto para las credenciales del usuario de base de datos](#tutorials_rotation-single_step-rotate)
+ [Paso 3: pruebe la contraseña rotada](#tutorials_rotation-single_step-connect-again)
+ [Paso 4: limpie los recursos](#tutorials_rotation-single_step-cleanup)
+ [Siguientes pasos](#tutorials_rotation-single_step-next)

## Permisos
<a name="tutorials_rotation-single_permissions"></a>

Para los requisitos previos del tutorial, necesita permisos administrativos para su Cuenta de AWS. En una configuración de producción, una práctica recomendada es utilizar diferentes roles para cada uno de los pasos. Por ejemplo, un rol con permisos de administrador de bases de datos creará la base de datos de Amazon RDS, y un rol con permisos de administrador de red configurará la VPC y los grupos de seguridad. Para los pasos del tutorial, le recomendamos que siga utilizando la misma identidad.

Para obtener más información sobre cómo configurar permisos en un entorno de producción, consulte [Autenticación y control de acceso para AWS Secrets Manager](auth-and-access.md).

## Requisitos previos
<a name="tutorials_rotation-single_step-setup"></a>

El requisito previo para este tutorial es [Configure la rotación alterna de usuarios para AWS Secrets Manager](tutorials_rotation-alternating.md). No limpie los recursos al final del primer tutorial. Después de ese tutorial, tendrá un entorno realista con una base de datos de Amazon RDS y un secreto en Secrets Manager que contiene las credenciales de administrador para la base de datos. También tiene un segundo secreto que contiene las credenciales de un usuario de base de datos, pero no utilizará ese secreto en este tutorial.

También cuenta con una conexión configurada en MySQL Workbench para conectarse a la base de datos con las credenciales de administrador.

## Paso 1: cree un usuario de base de datos de Amazon RDS
<a name="tutorials_rotation-single_step-dbuser"></a>

Primero, necesita un usuario cuyas credenciales se almacenarán en el secreto. Para crear el usuario, inicie sesión en la base de datos de Amazon RDS con las credenciales de administrador almacenadas en un secreto. Para simplificar, en el tutorial se crea un usuario con todos los permisos para acceder a una base de datos. En un entorno de producción, esto no es habitual y le recomendamos que siga el principio de privilegio mínimo.

**Para recuperar la contraseña de administrador**

1. En la consola de Amazon RDS, acceda a su base de datos.

1. En la pestaña **Configuration** (Configuración), en **Master Credentials ARN** (ARN de credenciales maestras), seleccione **Manage in Secrets Manager** (Administrar en Secrets Manager).

   Se abrirá la consola de Secrets Manager.

1. En la página de detalles del secreto, elija **Retrieve secret value** (Recuperar valor del secreto).

1. La contraseña aparece en la sección **Secret value** (Valor secreto).

**Para crear un usuario de base de datos**

1. En MySQL Workbench, haga clic con el botón derecho en la conexión **SecretsManagerTutorial**y, a continuación, seleccione **Editar conexión**.

1. En el cuadro de diálogo **Manage Server Connections** (Administrar conexiones de servidores), en **Username** (Nombre de usuario), ingrese **admin** y, luego, elija **Close** (Cerrar).

1. De vuelta en MySQL Workbench, elija la conexión **SecretsManagerTutorial**.

1. Ingrese la contraseña de administrador que recuperó del secreto. 

1.  En MySQL Workbench, en la ventana **Query** (Consulta), ingrese los siguientes comandos (incluida una contraseña segura) y, luego, elija **Execute** (Ejecutar). La función de rotación prueba el secreto actualizado mediante SELECT, por lo que **dbuser** debe tener ese privilegio como mínimo.

   ```
   CREATE USER 'dbuser'@'%' IDENTIFIED BY 'EXAMPLE-PASSWORD';
   GRANT SELECT ON myDB . * TO 'dbuser'@'%';
   ```

   En la ventana **Output** (Salida), observará que los comandos se ejecutaron correctamente.

## Paso 2: cree un secreto para las credenciales del usuario de base de datos
<a name="tutorials_rotation-single_step-rotate"></a>

A continuación, cree un secreto para almacenar las credenciales del usuario que acaba de crear y active la rotación automática, incluida la rotación inmediata. Secrets Manager rotará el secreto, lo que significa que la contraseña se genera mediante programación (ninguna persona ha visto esta nueva contraseña). Hacer que la rotación comience inmediatamente también puede ayudarlo a determinar si la rotación está configurada de manera correcta.

1. Abra la consola de Secrets Manager en [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Elija **Almacenar un secreto nuevo**.

1. En la página **Choose secret type (Elegir tipo de secreto)**, haga lo siguiente:

   1. En **Secret type** (Tipo de secreto), elija **Credentials for Amazon RDS database** (Credenciales para base de datos de Amazon RDS).

   1. En **Credentials** (Credenciales), ingrese el nombre de usuario **dbuser** y la contraseña que ingresó para el usuario de base de datos que creó mediante MySQL Workbench.

   1. En **Database** (Base de datos), elija **secretsmanagertutorialdb**.

   1. Elija **Siguiente**.

1. En la página **Configure secrect** (Configurar el secreto), en **Secret name** (Nombre del secreto), ingrese **SecretsManagerTutorialDbuser** y, luego, elija **Next** (Siguiente).

1. En la página **Configure rotation** (Configurar la rotación), haga lo siguiente:

   1. Active **Automatic rotation** (Rotación automática).

   1. En **Rotation schedule** (Programación de rotación), configure una programación de **Days** (Días): **2** días con **Duration** (Duración): **2h**. Mantenga seleccionada la opción **Rotate immediately** (Rotar inmediatamente). 

   1. En **Rotation function** (Función de rotación), elija **Create a rotation function** (Crear una función de rotación) y, luego, para el nombre de la función, ingrese **tutorial-single-user-rotation**.

   1. Para la **estrategia de rotación**, elija **un solo usuario**.

   1. Elija **Siguiente**.

1. En la página **Review** (Revisar), elija **Store** (Almacenar).

   Secrets Manager vuelve a la página de detalles del secreto. En la parte superior de la página, puede observar el estado de la configuración de la rotación. Secrets Manager se utiliza CloudFormation para crear recursos como la función de rotación de Lambda y un rol de ejecución que ejecuta la función Lambda. Cuando CloudFormation termine, el cartel pasará a ser **Secreto y su rotación está programada**. Se completó la primera rotación.

## Paso 3: pruebe la contraseña rotada
<a name="tutorials_rotation-single_step-connect-again"></a>

Después de la primera rotación del secreto, que puede tardar unos segundos, puede comprobar que el secreto siga conteniendo credenciales válidas. La contraseña del secreto cambió con respecto a las credenciales originales.

**Para recuperar la contraseña nueva del secreto**

1. Abra la consola de Secrets Manager en [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Elija **Secrets** (Secretos) y, luego, elija el secreto **SecretsManagerTutorialDbuser**.

1. En la página **Secret details** (Detalles del secreto), deslícese hacia abajo y elija **Retrieve secret value** (Recuperar valor del secreto).

1. En la tabla **Key/value** (Clave/valor), copie el **Secret value** (Valor del secreto) en **password**.

**Para probar las credenciales**

1. En MySQL Workbench, haga clic con el botón derecho en la conexión **SecretsManagerTutorial**y, a continuación, seleccione **Editar conexión**.

1. En el cuadro de diálogo **Manage Server Connections** (Administrar conexiones de servidores), en **Username** (Nombre de usuario), ingrese **dbuser** y, luego, elija **Close** (Cerrar).

1. De vuelta en MySQL Workbench, elija la conexión **SecretsManagerTutorial**.

1. En el cuadro de diálogo **Open SSH Connection** (Conexión SSH abierta), en **Password** (Contraseña), pegue la contraseña que recuperó del secreto y, luego, elija **OK** (Aceptar).

   Si las credenciales son válidas, MySQL Workbench abrirá la página de diseño de la base de datos.

## Paso 4: limpie los recursos
<a name="tutorials_rotation-single_step-cleanup"></a>

Para evitar posibles cargos, elimine el secreto que creó en este tutorial. Para obtener instrucciones, consulte [Eliminar un AWS Secrets Manager secreto](manage_delete-secret.md).

Para limpiar los recursos creados en el tutorial anterior, consulte [Paso 4: limpie los recursos](tutorials_rotation-alternating.md#tutorials_rotation-alternating_step-cleanup).

## Siguientes pasos
<a name="tutorials_rotation-single_step-next"></a>
+ Obtenga información sobre cómo recuperar secretos en sus aplicaciones. Consulte [Obtenga secretos de AWS Secrets Manager](retrieving-secrets.md).
+ Obtenga más información sobre otras programaciones de rotación. Consulte [Programación de rotación](rotate-secrets_schedule.md).