

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.

# AWS Secrets Manager tutoriales
<a name="tutorials"></a>

**Topics**
+ [

# Encuentre secretos desprotegidos en su código con Amazon Reviewer CodeGuru
](integrating-codeguru.md)
+ [

# Mueva los secretos codificados a AWS Secrets Manager
](hardcoded.md)
+ [

# Mover las credenciales de base de datos codificadas a AWS Secrets Manager
](hardcoded-db-creds.md)
+ [

# Configure la rotación alterna de usuarios para AWS Secrets Manager
](tutorials_rotation-alternating.md)
+ [

# Configurar la rotación de un solo usuario para AWS Secrets Manager
](tutorials_rotation-single.md)

# Encuentre secretos desprotegidos en su código con Amazon Reviewer CodeGuru
<a name="integrating-codeguru"></a>

Amazon CodeGuru Reviewer es un servicio que utiliza el análisis de programas y el aprendizaje automático para detectar posibles defectos difíciles de encontrar para los desarrolladores y ofrece sugerencias para mejorar el código de Java y Python. CodeGuru Reviewer se integra con Secrets Manager para encontrar secretos desprotegidos en tu código. Para conocer los tipos de secretos que puede encontrar, consulte [Tipos de secretos detectados por CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/recommendations.html#secrets-found-types) en la *Guía del usuario de Amazon CodeGuru Reviewer*.

Una vez haya encontrado secretos codificados, tome medidas para reemplazarlos:
+ [Mover las credenciales de base de datos codificadas a AWS Secrets Manager](hardcoded-db-creds.md)
+ [Mueva los secretos codificados a AWS Secrets Manager](hardcoded.md)

# Mueva los secretos codificados a AWS Secrets Manager
<a name="hardcoded"></a>

Si tiene secretos de texto sin formato en su código, le recomendamos que los rote y los almacene en Secrets Manager. Al mover el secreto a Secrets Manager se soluciona el problema de que sea visible para cualquiera que vea el código porque, en el futuro, el código recupera el secreto directamente de Secrets Manager. Al rotar el secreto se anula el secreto codificado actual para que ya no sea válido. 

Para ver los secretos de credenciales de base de datos, consulte [Mover las credenciales de base de datos codificadas a AWS Secrets Manager](hardcoded-db-creds.md).

Antes de comenzar, debe determinar quién necesita acceso al secreto. Recomendamos utilizar dos roles de IAM para administrar el permiso a su secreto:
+ Un rol que administra los secretos de su organización. Para obtener más información, consulte [Permisos de Secrets Manager](auth-and-access.md#auth-and-access_admin). Creará y rotará el secreto utilizando este rol.
+ Un rol que puede usar el secreto en tiempo de ejecución, por ejemplo, en este tutorial que usas*RoleToRetrieveSecretAtRuntime*. El código asume esta función para recuperar el secreto. En este tutorial, otorga al rol solamente el permiso para recuperar un valor secreto y concede el permiso mediante la política de recursos del secreto. Si desea conocer otras alternativas, consulte [Siguientes pasos](#hardcoded_step-next).

**Topics**
+ [

## Paso 1: Crear el secreto
](#hardcoded_step-1)
+ [

## Paso 2: Actualización del código
](#hardcoded_step-2)
+ [

## Paso 3: Actualizar el secreto
](#hardcoded_step-3)
+ [

## Siguientes pasos
](#hardcoded_step-next)

## Paso 1: Crear el secreto
<a name="hardcoded_step-1"></a>

El primer paso es copiar el secreto codificado existente en Secrets Manager. Si el secreto está relacionado con un AWS recurso, guárdelo en la misma región que el recurso. De lo contrario, guárdelo en la región que tenga la menor latencia para su caso de uso.

**Para crear un secreto (consola)**

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 **Other type of secret** (Otro tipo de secreto).

   1. Ingrese su secreto como **Key/value pairs** (pares clave/valor) o en **Plaintext** (texto sin formato). Presentamos algunos ejemplos:

------
#### [ API key ]

      Entrad por key/value parejas:

      **ClientID** : *my\$1client\$1id*

      **ClientSecret** : *wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY*

------
#### [ OAuth token ]

      Introducirlo como texto no cifrado:

      *AKIAI44QH8DHBEXAMPLE*

------
#### [ Digital certificate ]

      Introducirlo como texto no cifrado:

      ```
      -----BEGIN CERTIFICATE-----
      EXAMPLE
      -----END CERTIFICATE-----
      ```

------
#### [ Private key ]

      Introducirlo como texto no cifrado:

      ```
      –--- BEGIN PRIVATE KEY ----
      EXAMPLE
      ––-- END PRIVATE KEY –---
      ```

------

   1. Para **Clave encriptada**, seleccione **aws/secretsmanager** para utilizar Clave administrada de AWS para Secrets Manager. No se aplica ningún cargo por el uso de esta clave. También puede utilizar su propia clave administrada por el cliente, por ejemplo, para [acceder al secreto desde otro Cuenta de AWS](auth-and-access_examples_cross.md). Para obtener información sobre los costos por usar una clave administrada por el cliente, consulte [Precios](intro.md#asm_pricing).

   1. Elija **Siguiente**.

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

   1. Ingrese un **Nombre de secreto** descriptivo y una **Descripción**. 

   1. En **Permisos de recursos**, seleccione **Edit permissions** (Editar permisos). Pegue la siguiente política, que *RoleToRetrieveSecretAtRuntime* permite recuperar el secreto, y luego elija **Guardar**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. En la parte inferior de la página, elija **Siguiente**.

1. En la página **Configure rotation** (Configurar rotación), mantenga la rotación desactivada. Elija **Siguiente**.

1. En la página **Review (Revisar)**, revise los detalles del secreto y, a continuación, elija **Store (Almacenar)**.

## Paso 2: Actualización del código
<a name="hardcoded_step-2"></a>

El código debe asumir la función de IAM *RoleToRetrieveSecretAtRuntime* para poder recuperar el secreto. Para obtener más información, consulte [Cambiar a un rol de IAM (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html).

A continuación, actualice el código para recuperar el secreto de Secrets Manager utilizando el código de ejemplo proporcionado por Secrets Manager. 

**Para encontrar el código de muestra**

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

1. En la página **Secrets** (Secretos), elija el secreto.

1. Baje hasta **Código de muestra**. Elija su lenguaje de programación y, a continuación, copie el fragmento de código.

En su aplicación, elimine el secreto codificado y pegue el fragmento de código. Según el idioma del código, es posible que tenga que añadir una llamada a la función o método del fragmento.

Compruebe que su aplicación funciona según lo esperado con el secreto en lugar del secreto codificado.

## Paso 3: Actualizar el secreto
<a name="hardcoded_step-3"></a>

El último paso consiste en revocar y actualizar el secreto codificado. Consulte la fuente del secreto para encontrar instrucciones para revocar y actualizar el secreto. Por ejemplo, es posible que tenga que desactivar el secreto actual y generar un nuevo secreto.

**Para actualizar el secreto con el nuevo valor**

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

1. Seleccione **Secrets** (Secretos) y luego elija el secreto.

1. En la página **Detalles del secreto**, baje hasta **Recuperar valor del secreto** y seleccione **Edit** (Editar).

1. Actualice el secreto y, a continuación, seleccione **Save** (Guardar). 

A continuación, compruebe que su aplicación funciona según lo esperado con el nuevo secreto.

## Siguientes pasos
<a name="hardcoded_step-next"></a>

A continuación, algunas ideas a tener en cuenta después de eliminar un secreto codificado de su código:
+ Para encontrar secretos codificados en sus aplicaciones de Java y Python, le recomendamos [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).
+ Puede mejorar el rendimiento y reducir los costos almacenando secretos en caché. Para obtener más información, consulte [Obtenga secretos de AWS Secrets Manager](retrieving-secrets.md).
+ Para los secretos a los que accede desde varias regiones, considere la posibilidad de replicar su secreto para mejorar la latencia. Para obtener más información, consulte [Replica AWS Secrets Manager secretos en todas las regiones](replicate-secrets.md).
+ En este tutorial, *RoleToRetrieveSecretAtRuntime* solo concedió el permiso para recuperar el valor secreto. Para otorgar más permisos al rol, por ejemplo, para obtener metadatos sobre el secreto o para ver una lista de secretos, consulte [Políticas basadas en recursos](auth-and-access_resource-policies.md). 
+ En este tutorial, otorgaste el permiso *RoleToRetrieveSecretAtRuntime* mediante la política de recursos del secreto. Para ver otras formas de conceder permiso, consulte [Políticas basadas en identidades](auth-and-access_iam-policies.md).

# Mover las credenciales de base de datos codificadas a AWS Secrets Manager
<a name="hardcoded-db-creds"></a>

Si tienes credenciales de base de datos de texto sin formato en el código, te recomendamos que muevas las credenciales a Secrets Manager y luego las rotes inmediatamente. Al mover las credenciales a Secrets Manager se soluciona el problema de que sean visibles para cualquiera que vea el código porque, en el futuro, el código recupera las credenciales directamente de Secrets Manager. Al rotar el secreto se actualiza la contraseña y, a continuación, se anula la contraseña codificada actual para que ya no sea válida. 

Para Amazon RDS, Amazon Redshift y Amazon DocumentDB, siga los pasos de esta página para mover credenciales codificadas a Secrets Manager. Para otro tipo de credenciales y otros secretos, consulte [Mueva los secretos codificados a AWS Secrets Manager](hardcoded.md).

Antes de comenzar, debe determinar quién necesita acceso al secreto. Recomendamos utilizar dos roles de IAM para administrar el permiso a su secreto:
+ Un rol que administra los secretos de su organización. Para obtener más información, consulte [Permisos de Secrets Manager](auth-and-access.md#auth-and-access_admin). Creará y rotará el secreto utilizando este rol.
+ Un rol que puede usar las credenciales en tiempo de ejecución, *RoleToRetrieveSecretAtRuntime* en este tutorial. El código asume esta función para recuperar el secreto.

**Topics**
+ [

## Paso 1: Crear el secreto
](#hardcoded-db-creds_step2)
+ [

## Paso 2: Actualización del código
](#hardcoded-db-creds_step3)
+ [

## Paso 3: rote el secreto
](#hardcoded-db-creds_step5)
+ [

## Siguientes pasos
](#hardcoded-db-creds_nextsteps)

## Paso 1: Crear el secreto
<a name="hardcoded-db-creds_step2"></a>

El primer paso consiste en copiar las credenciales codificadas existentes en un secreto en Secrets Manager. Para obtener la menor latencia, guarde el secreto en la misma región que la base de datos. 

**Creación de un secreto**

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 secreto), elija el tipo de credenciales de base de datos que desea almacenar:
      + **Bases de datos de Amazon RDS**
      + **Base de datos de Amazon DocumentDB**
      + **Almacenamiento de datos de Amazon Redshift**.
      + Para otro tipo de secretos, consulte [Reemplazar secretos codificados ](https://docs.aws.amazon.com/secretsmanager/latest/userguide/hardcoded.html).

   1. En **Credenciales**, ingrese las credenciales existentes para la base de datos.

   1. Para **Clave encriptada**, seleccione **aws/secretsmanager** para utilizar Clave administrada de AWS para Secrets Manager. No se aplica ningún cargo por el uso de esta clave. También puede utilizar su propia clave administrada por el cliente, por ejemplo, para [acceder al secreto desde otro Cuenta de AWS](auth-and-access_examples_cross.md). Para obtener información sobre los costos por usar una clave administrada por el cliente, consulte [Precios](intro.md#asm_pricing).

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

   1. Elija **Siguiente**.

1. En la página **Configure secret** (Configurar el secreto), haga lo siguiente:

   1. Ingrese un **Nombre de secreto** descriptivo y una **Descripción**. 

   1. En **Permisos de recursos**, seleccione **Edit permissions** (Editar permisos). Pegue la siguiente política, que *RoleToRetrieveSecretAtRuntime* permite recuperar el secreto, y luego elija **Guardar**.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/RoleToRetrieveSecretAtRuntime"
                  },
                  "Action": "secretsmanager:GetSecretValue",
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. En la parte inferior de la página, elija **Siguiente**.

1. En la página **Configure rotation** (Configurar rotación), mantenga la rotación desactivada por ahora. La activará más tarde. Elija **Siguiente**.

1. En la página **Review (Revisar)**, revise los detalles del secreto y, a continuación, elija **Store (Almacenar)**.

## Paso 2: Actualización del código
<a name="hardcoded-db-creds_step3"></a>

El código debe asumir la función de IAM *RoleToRetrieveSecretAtRuntime* para poder recuperar el secreto. Para obtener más información, consulte [Cambiar a un rol de IAM (AWS API)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html).

A continuación, actualice el código para recuperar el secreto de Secrets Manager utilizando el código de ejemplo proporcionado por Secrets Manager. 

**Para encontrar el código de muestra**

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

1. En la página **Secrets** (Secretos), elija el secreto.

1. Baje hasta **Código de muestra**. Elija su idioma y, a continuación, copie el fragmento de código. 

En la aplicación, elimine las credenciales codificadas y pegue el fragmento de código. Según el idioma del código, es posible que tenga que añadir una llamada a la función o método del fragmento.

Compruebe que su aplicación funciona según lo esperado con el secreto en lugar de las credenciales codificadas.

## Paso 3: rote el secreto
<a name="hardcoded-db-creds_step5"></a>

El último paso es anular las credenciales codificadas rotando el secreto. La *rotación* es el proceso de actualización periódica de un secreto. Cuando se rota un secreto, se actualizan las credenciales tanto en el secreto como en la base de datos. Secrets Manager puede configurar la rotación de un secreto automáticamente en el horario que usted establezca.

Parte de la configuración de la rotación consiste en garantizar que la función de rotación de Lambda pueda acceder tanto a Secrets Manager como a su base de datos. Cuando activa la rotación automática, Secrets Manager crea la función de rotación Lambda en la misma VPC que la base de datos para que tenga acceso en red a la base de datos. La función de rotación de Lambda también debe poder realizar llamadas a Secrets Manager para actualizar el secreto. Le recomendamos que cree un punto final de Secrets Manager en la VPC para que las llamadas de Lambda a Secrets Manager no salgan de la infraestructura. AWS Para obtener instrucciones, consulte [Uso de un punto final AWS Secrets Manager de VPC](vpc-endpoint-overview.md).

**Activar la rotación**

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

1. En la página **Secrets** (Secretos), elija el secreto.

1. En la página **Secret details** (Detalles del secreto), en la sección **Rotation configuration** (Configuración de la rotación), elija **Edit rotation** (Editar rotación).

1. En el cuadro de diálogo **Edit rotation configuration** (Configuración para editar la rotación), haga lo siguiente:

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

   1. En la sección **Programación de rotación**, ingrese su horario en la zona horaria UTC. 

   1. Elija **Rotate immediately when the secret is stored** (Rotar inmediatamente cuando se almacene el secreto) a fin de rotar su secreto en cuanto guarde los cambios.

   1. En la sección **Función de rotación**, seleccione **Create a new Lambda function** (Crear una nueva función de Lambda) e ingrese un nombre para la nueva función. Secrets Manager agrega “SecretsManager” al principio del nombre de la función.

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

   1. Seleccione **Save**.

**Para comprobar que el secreto ha rotado**

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

1. Seleccione **Secrets** (Secretos) y luego elija el secreto.

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

   Si el valor secreto ha cambiado, la rotación se realizó correctamente. Si el valor secreto no ha cambiado, consulta [Solución de problemas de rotación](troubleshoot_rotation.md) los CloudWatch registros para ver la función de rotación.

Compruebe que su aplicación funciona según lo esperado con el secreto rotado.

## Siguientes pasos
<a name="hardcoded-db-creds_nextsteps"></a>

A continuación, algunas ideas a tener en cuenta después de eliminar un secreto codificado de su código:
+ Puede mejorar el rendimiento y reducir los costos almacenando secretos en caché. Para obtener más información, consulte [Obtenga secretos de AWS Secrets Manager](retrieving-secrets.md).
+ Puede elegir un programa de rotación diferente. Para obtener más información, consulte [Programación de rotación](rotate-secrets_schedule.md).
+ Para encontrar secretos codificados en sus aplicaciones de Java y Python, le recomendamos [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html).

# Configure la rotación alterna de usuarios para AWS Secrets Manager
<a name="tutorials_rotation-alternating"></a>

En este tutorial, aprenderá a configurar la rotación de usuarios alternativos para un secreto que contiene credenciales de bases de datos. La *rotación de usuarios alternativos* es una estrategia de rotación en la que Secrets Manager clona al usuario y, luego, alterna las credenciales del usuario que se actualizan. Esta estrategia es una buena opción si necesita disponibilidad alta para su secreto, ya que uno de los usuarios alternativos tiene credenciales actuales para la base de datos mientras que el otro se actualiza. Para obtener más información, consulte [Estrategia de rotación: usuarios alternativos](rotation-strategy.md#rotating-secrets-two-users). 

Para configurar la rotación de usuarios alternativos, necesita dos secretos:
+ Un secreto con las credenciales que desea rotar.
+ Un segundo secreto que tiene credenciales de administrador. 

  Este usuario tiene permisos para clonar al primer usuario y cambiar la contraseña del primer usuario. En este tutorial, debe hacer que Amazon RDS cree este secreto para un usuario administrador. Amazon RDS también administra la rotación de contraseñas de administrador. Para obtener más información, consulte [Rotación gestionada de AWS Secrets Manager secretos](rotate-secrets_managed.md).

La primera parte de este tutorial consiste en configurar un entorno realista. Para mostrar cómo funciona la rotación, este tutorial incluye un ejemplo de base de datos MySQL en Amazon RDS. Por seguridad, la base de datos se encuentra en una VPC que limita el acceso entrante desde Internet. Para conectarse a la base de datos desde su computadora local a través de Internet, utilice un *host bastión*, un servidor de la VPC que se puede conectar a la base de datos y que también permite conexiones SSH desde Internet. El host bastión de este tutorial es una instancia de Amazon EC2, y los grupos de seguridad de la instancia impiden otros tipos de conexiones. 

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

**Topics**
+ [

## Permisos
](#tutorials_rotation-alternating-permissions)
+ [

## Requisitos previos
](#tutorials_rotation-alternating-step-setup)
+ [

## Paso 1: cree un usuario de base de datos de Amazon RDS
](#tutorials_rotation-alternating-step-database)
+ [

## Paso 2: cree un secreto para las credenciales del usuario
](#tutorials_rotation-alternating_step-rotate)
+ [

## Paso 3: pruebe el secreto rotado
](#tutorials_rotation-alternating_step-test-secret)
+ [

## Paso 4: limpie los recursos
](#tutorials_rotation-alternating_step-cleanup)
+ [

## Siguientes pasos
](#tutorials_rotation-alternating_step-next)

## Permisos
<a name="tutorials_rotation-alternating-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-alternating-step-setup"></a>

**Topics**
+ [

### Requisito previo A: Amazon VPC
](#tutorials_rotation-alternating-step-vpc)
+ [

### Requisito previo B: instancia de Amazon EC2
](#tutorials_rotation-alternating-step-setup_ec2)
+ [

### Requisito previo C: base de datos de Amazon RDS y un secreto de Secrets Manager para las credenciales de administrador
](#tutorials_rotation-alternating-step-database)
+ [

### Requisito previo D: permita que su equipo local se conecte a la instancia de EC2
](#tutorials_rotation-alternating-step-ec2connect)

### Requisito previo A: Amazon VPC
<a name="tutorials_rotation-alternating-step-vpc"></a>

En este paso, cree una VPC en la que pueda lanzar una base de datos de Amazon RDS y una instancia de Amazon EC2. En un paso posterior, utilizará su computadora para conectarse a través de Internet al bastión y, después, a la base de datos, por lo que tendrá que permitir que el tráfico salga de la VPC. Para ello, Amazon VPC adjunta una puerta de enlace de Internet a la VPC y agrega una ruta en la tabla de enrutamiento de manera que el tráfico destinado fuera de la VPC se envíe a la puerta de enlace de Internet.

Dentro de la VPC, se crean un punto de conexión de Secrets Manager y otro de Amazon RDS. Cuando configure la rotación automática en un paso posterior, Secrets Manager creará la función de rotación de Lambda en la VPC para que tenga acceso a la base de datos. La función de rotación de Lambda también llama a Secrets Manager para actualizar el secreto y a Amazon RDS para obtener la información de conexión a la base de datos. Al crear puntos de enlace dentro de la VPC, se asegura de que las llamadas desde la función Lambda a Secrets Manager y Amazon RDS no abandonen la infraestructura. AWS En su lugar, se dirigen a puntos de conexión dentro de la VPC.

**Para crear una VPC**

1. Abra la consola de Amazon VPC en [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Seleccione **Creación de VPC**.

1. En la página **Create VPC** (Crear VPC), seleccione **VPC and more** (VPC y más).

1. En **Name tag auto-generation** (Generación automática de etiquetas de nombre), ingrese **SecretsManagerTutorial** en **Auto-generate** (Generar automáticamente).

1. En **DNS options** (Opciones de DNS), elija **Enable DNS hostnames** y **Enable DNS resolution**.

1. Seleccione **Creación de VPC**.

**Para crear un punto de conexión de Secrets Manager dentro de la VPC**

1. En la consola de Amazon VPC, en **Endpoints** (Puntos de conexión), elija **Create Endpoint** (Crear punto de conexión).

1. En **Endpoint settings** (Configuración de punto de conexión), ingrese **SecretsManagerTutorialEndpoint** en **Name** (Nombre).

1. En **Services** (Servicios), ingrese **secretsmanager** para filtrar la lista y, luego, seleccione el punto de conexión de Secrets Manager en su Región de AWS. Por ejemplo, en Este de EE. UU. (Norte de Virginia), elija `com.amazonaws.us-east-1.secretsmanager`. 

1. En **VPC**, elija **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)**.

1. En **Subnets** (Subredes), seleccione todas las **Availability Zones** (Zonas de disponibilidad) y, luego, para cada una, elija un **Subnet ID** (ID de subred) para incluir.

1. En **IP address type** ((Tipo de dirección IP), elija **IPv4**.

1. En **Security groups** (Grupos de seguridad), elija el grupo de seguridad predeterminado.

1. En **Policy** (Política), elija **Full access**. 

1. Seleccione **Crear punto de conexión**.

**Para crear un punto de conexión de Amazon RDS dentro de la VPC**

1. En la consola de Amazon VPC, en **Endpoints** (Puntos de conexión), elija **Create Endpoint** (Crear punto de conexión).

1. En **Endpoint settings** (Configuración de punto de conexión), ingrese **RDSTutorialEndpoint** en **Name** (Nombre).

1. En **Services** (Servicios), ingrese **rds** para filtrar la lista y, luego, seleccione el punto de conexión de Amazon RDS en su Región de AWS. Por ejemplo, en Este de EE. UU. (Norte de Virginia), elija `com.amazonaws.us-east-1.rds`. 

1. En **VPC**, elija **vpc\$1\$1\$1\$1 (SecretsManagerTutorial)**.

1. En **Subnets** (Subredes), seleccione todas las **Availability Zones** (Zonas de disponibilidad) y, luego, para cada una, elija un **Subnet ID** (ID de subred) para incluir.

1. En **IP address type** ((Tipo de dirección IP), elija **IPv4**.

1. En **Security groups** (Grupos de seguridad), elija el grupo de seguridad predeterminado.

1. En **Policy** (Política), elija **Full access**. 

1. Seleccione **Crear punto de conexión**.

### Requisito previo B: instancia de Amazon EC2
<a name="tutorials_rotation-alternating-step-setup_ec2"></a>

La base de datos de Amazon RDS que cree en un paso posterior estará en la VPC, por lo que para acceder a ella necesitará un host bastión. El host bastión también está en la VPC, pero en un paso posterior, configurará un grupo de seguridad para permitir que su equipo local se conecte al host bastión con SSH. 

**Para crear una instancia de EC2 para un host bastión**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Elija **Instances** (Instancias) y, luego, elija **Launch Instances** (Lanzar instancias).

1. En **Name and tags** (Nombre y etiquetas), en **Name** (Nombre), introduzca **SecretsManagerTutorialInstance**.

1. En **Application and OS Images** (Imágenes de aplicaciones y sistemas operativos), mantenga el valor predeterminado **Amazon Linux 2 AMI (HMV) Kernel 5.10**.

1. En **Instance type** (Tipo de instancia), mantenga el valor predeterminado **t2.micro**.

1. En **Key pair** (Par de claves), seleccione **Create key pair** (Crear par de claves).

   En el cuadro de diálogo **Create key pair** (Crear par de claves), en **Key pair name** (Nombre del par de claves), ingrese **SecretsManagerTutorialKeyPair** y haga clic en **Create** (Crear).

   La clave privada se descarga automáticamente.

1. En **Network settings** (Configuración de red), elija **Edit** (Editar) y realice lo siguiente:

   1. En **VPC**, elija **vpc-\$1\$1\$1\$1 SecretsManagerTutorial**.

   1. En **Auto-assign Public IP** (Asignar IP pública automáticamente), elija **Enable**.

   1. En **Firewall**, seleccione **Select existing security group** (Seleccionar grupo de seguridad existente).

   1. En **Common security groups** (Grupos de seguridad comunes), elija **default**. 

1. Seleccione **Iniciar instancia**.

### Requisito previo C: base de datos de Amazon RDS y un secreto de Secrets Manager para las credenciales de administrador
<a name="tutorials_rotation-alternating-step-database"></a>

En este paso, cree una base de datos MySQL de Amazon RDS y configúrela de manera que Amazon RDS cree un secreto que contenga las credenciales de administrador. A continuación, Amazon RDS gestionará automáticamente la rotación del secreto de administrador por usted. Para obtener más información, consulte [Rotación administrada](rotate-secrets_managed.md).

Como parte de la creación de la base de datos, debe especificar el host bastión que creó en el paso anterior. A continuación, Amazon RDS configura grupos de seguridad para que la base de datos y la instancia puedan acceder entre sí. Agregue una regla al grupo de seguridad adjunto a la instancia para permitir que su equipo local también se conecte a ella. 

**Para crear una base de datos de Amazon RDS con un secreto de Secrets Manager que contenga las credenciales de administrador**

1. En la consola de Amazon RDS, seleccione **Create database** (Crear base de datos).

1. En la sección **Engine options** (Opciones del motor), en **Engine type** (Tipo de motor) elija **MySQL**.

1. En la sección **Templates** (Plantillas), elija **Free tier**.

1. En la sección **Settings** (Configuración), realice lo siguiente:

   1. En **DB instance identifier** (Identificador de instancia de base de datos), ingrese **SecretsManagerTutorial**.

   1. **En **Configuración de credenciales**, selecciona Administrar credenciales maestras en. AWS Secrets Manager**

1. En la sección **Connectivity** (Conectividad), para **Computer resource** (Recurso de equipo), elija **Connect to an EC2 computer resource** (Conectarse a un recurso de equipo de EC2) y, a continuación, para **EC2 Instance** (Instancia de EC2), elija **SecretsManagerTutorialInstance**.

1. Elija **Creación de base de datos**.

### Requisito previo D: permita que su equipo local se conecte a la instancia de EC2
<a name="tutorials_rotation-alternating-step-ec2connect"></a>

En este paso, configurará la instancia de EC2 que creó en el requisito previo B para permitir que su equipo local se conecte a ella. Para ello, edite el grupo de seguridad que Amazon RDS agregó al requisito previo C para incluir una regla que permita que la dirección IP de su equipo se conecte con SSH. La regla permite que su equipo local (identificado por su dirección IP actual) se conecte al host bastión mediante SSH a través de Internet.

**Para permitir que su equipo local se conecte a la instancia de EC2**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la instancia EC2 **SecretsManagerTutorialInstance**, en la pestaña **Seguridad**, en **Grupos de seguridad, elija**. **sg-\$1\$1\$1 (ec2-rds-X)**

1. En la pestaña **Inbound rules** (Reglas de entrada), seleccione **Edit inbound rules** (Editar reglas de entrada).

1. Elija **Add Rule** (Agregar regla) y, a continuación para la regla, haga lo siguiente:

   1. En **Type (Tipo)**, elija **SSH**.

   1. En **Tipo de origen**, elija **My IP**.

## Paso 1: cree un usuario de base de datos de Amazon RDS
<a name="tutorials_rotation-alternating-step-database"></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. 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 conectarse a la base de datos, utilizará una herramienta de cliente de MySQL. En este tutorial, utilizará MySQL Workbench, una aplicación basada en la interfaz gráfica de usuario (GUI). Para instalar MySQL Workbench, consulte [Download MySQL Workbench](http://dev.mysql.com/downloads/workbench/) (Descargar MySQL Workbench).

Para conectarse a la base de datos, cree una configuración de conexión en MySQL Workbench. Para la configuración, necesita información de Amazon EC2 y Amazon RDS.

**Para crear una conexión de base de datos en MySQL Workbench**

1. En MySQL Workbench, junto a **MySQL Connections** (Conexiones de MySQL), elija el botón (\$1).

1. En el cuadro de diálogo **Setup New Connection** (Configurar una conexión), haga lo siguiente:

   1. En **Connection Name** (Nombre de conexión), ingrese **SecretsManagerTutorial**.

   1. En **Connection Method** (Método de conexión), elija **Standard TCP/IP over SSH**.

   1. En la pestaña **Parameters** (Parámetros), haga lo siguiente:

      1. En **SSH Hostname** (Nombre de host SSH), ingrese la dirección IP pública de la instancia de Amazon EC2.

         Para encontrar la dirección IP en la consola Amazon EC2, seleccione la instancia. **SecretsManagerTutorialInstance** Copie la dirección IP en **Public IPv4 DNS**.

      1. En **SSH Username** (Nombre de usuario SSH), ingrese **ec2-user**.

      1. Para **SSH Keyfile, elija el archivo** de pares de claves **SecretsManagerTutorialKeyPair.pem** que descargó en el requisito previo anterior. 

      1. En **MySQL Hostname** (Nombre de host de MySQL), ingrese la dirección del punto de conexión de Amazon RDS.

         Podrá encontrar la dirección del punto de conexión en la consola de Amazon RDS si elige la instancia de base de datos **secretsmanagertutorialdb**. Copie la dirección en **Endpoint** (Punto de conexión).

      1. En **Username** (Nombre de usuario), ingrese **admin**.

   1. Seleccione **Aceptar**.

**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, 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 **appuser** debe tener ese privilegio como mínimo.

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

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

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

A continuación, crea un secreto para almacenar las credenciales del usuario que acaba de crear. Este es el secreto que rotará. Activa la rotación automática y, para indicar la estrategia de usuarios alternativos, elige un secreto de superusuario independiente que tenga permiso para cambiar la contraseña del primer usuario.

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 **appuser** 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 **SecretsManagerTutorialAppuser** 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-alternating-users-rotation**.

   1. En **Utilizar credenciales individuales**, elija **Sí**, y luego en **Secretos**, elija el secreto llamado **rds\$1cluster…** que tiene una **Descripción** que incluye el nombre de la base de datos que creó en este tutorial **secretsmanagertutorial**, como `Secret associated with primary RDS DB instance: arn:aws:rds:Region:AccountId:db:secretsmanagertutorial`.

   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 el secreto rotado
<a name="tutorials_rotation-alternating_step-test-secret"></a>

Una vez que el secreto se ha rotado, puede comprobar que contenga nuevas 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 **SecretsManagerTutorialAppuser**.

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

Esto indica que la rotación del secreto se realizó correctamente. Las credenciales del secreto se actualizaron y es una contraseña válida para conectarse a la base de datos. 

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

Si desea probar otra estrategia de rotación, la *rotación de un solo usuario*, omita la eliminación de recursos y diríjase a [Configurar la rotación de un solo usuario para AWS Secrets Manager](tutorials_rotation-single.md). 

De lo contrario, para evitar posibles cargos y eliminar la instancia de EC2 que tiene acceso a Internet, elimine los siguientes recursos que creó en este tutorial y los requisitos previos:
+ Instancia de base de datos de Amazon RDS. Para obtener instrucciones, consulte [Deleting a DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html) (Eliminar una instancia de base de datos) en la *Guía del usuario de Amazon RDS*.
+ Instancia de Amazon EC2. Para obtener instrucciones, consulte [Terminar una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) en la *Guía del usuario de Amazon EC2*.
+ Secreto `SecretsManagerTutorialAppuser` de Secrets Manager. Para obtener instrucciones, consulte [Eliminar un AWS Secrets Manager secreto](manage_delete-secret.md).
+ Punto de conexión de Secrets Manager. Para obtener instrucciones, consulte [Delete a VPC endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/delete-vpc-endpoint.html) (Eliminar un punto de conexión de VPC) en la *Guía de AWS PrivateLink *.
+ Punto de conexión de VPC. Para obtener instrucciones, consulte [Delete your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#VPC_Deleting) (Eliminar su VPC) en la *Guía de AWS PrivateLink *.

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

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