

Esta es la nueva *Guía de referencia de plantillas de CloudFormation*. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la [Guía del usuario de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# `AWS::SecretsManager`Transformación de
<a name="transform-aws-secretsmanager"></a>

En este tema se describe cómo utilizar la transformación `AWS::SecretsManager` y el tipo de recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html) para especificar una función de Lambda para realizar la rotación de secretos.

La transformación `AWS::SecretsManager` es una macro de CloudFormation que, cuando se hace referencia a ella en la plantilla de la pila, genera automáticamente una función de Lambda para la rotación de secretos al crear o actualizar una pila mediante un conjunto de cambios. La función de Lambda se coloca en una pila anidada en la plantilla procesada. Utiliza una plantilla de funciones del repositorio [AWS Secrets Manager Rotation Lambda Functions](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas), basada en el valor de la propiedad [RotationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-rotationtype) del recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html).

## Uso
<a name="aws-secretsmanager-usage"></a>

Para usar la transformación `AWS::SecretsManager`, debe declararla en el nivel superior de la plantilla de CloudFormation. No se puede utilizar `AWS::SecretsManager` como transformación integrada en ninguna otra sección de la plantilla.

La declaración debe usar la cadena literal `AWS::SecretsManager-2020-07-23` o `AWS::SecretsManager-2024-09-16` como valor. No puede utilizar un parámetro o función para especificar un valor de transformación.

### Sintaxis
<a name="aws-secretsmanager-syntax"></a>

Para declarar esta transformación en su plantilla de CloudFormation, use la siguiente sintaxis:

#### JSON
<a name="aws-secretsmanager-syntax.json"></a>

```
{
  "Transform":"AWS::SecretsManager-{{2020-07-23}}",
  "Resources":{
    {{...}}
  }
}
```

#### YAML
<a name="aws-secretsmanager-syntax.yaml"></a>

```
Transform: AWS::SecretsManager-{{2020-07-23}}
Resources:
  {{...}}
```

La transformación `AWS::SecretsManager` es una declaración independiente sin parámetros adicionales. En su lugar, debe configurar la propiedad [HostedRotationLambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html) del recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html) en la plantilla de la pila. La propiedad [HostedRotationLambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html) especifica la función de Lambda para realizar la rotación de secretos.

## Nuevas características de `AWS::SecretsManager-2024-09-16`
<a name="aws-secretsmanager-new-version"></a>

La última versión de la transformación `AWS::SecretsManager` (`AWS::SecretsManager-2024-09-16`) presenta las siguientes mejoras:
+ **Actualizaciones de Lambda automáticas**: al actualizar las pilas de CloudFormation, las funciones de Lambda ahora actualizan automáticamente su configuración de tiempo de ejecución y sus dependencias internas. Esto garantiza que utilice las versiones más seguras y fiables del código que administra la rotación de secretos en Secrets Manager.
+ **Compatibilidad con atributos adicionales**: la nueva transformación admite atributos de recurso adicionales para el tipo de recurso `AWS::SecretsManager::RotationSchedule` cuando se usa con la propiedad `HostedRotationLambda`, incluido el atributo `DependsOn`.
**nota**  
Ambas versiones admiten los atributos `DeletionPolicy` y `UpdateReplacePolicy`.

Para obtener más información sobre esta nueva versión de la transformación `AWS::SecretsManager`, consulte [Introducing an enhanced version of theAWS Secrets Manager transform: AWS::SecretsManager-2024-09-16](https://aws.amazon.com/blogs/security/introducing-an-enhanced-version-of-the-aws-secrets-manager-transform-awssecretsmanager-2024-09-16/) en AWS Security Blog.

## Ejemplos
<a name="aws-secretsmanager-examples"></a>

En el siguiente ejemplo se muestra cómo usar la transformación `AWS::SecretsManager` (`AWS::SecretsManager-2024-09-16`) y el recurso [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html) en la plantilla. En este ejemplo, CloudFormation generará automáticamente una función de Lambda para la rotación de secretos de un solo usuario de MySQL.

El secreto está configurado para rotar automáticamente todos los días a medianoche (UTC). El proceso de rotación puede tardar hasta dos horas en completarse. La actualización del programa de rotación no iniciará una rotación inmediata.

### JSON
<a name="aws-secretsmanager-example.json"></a>

```
{
  "AWSTemplateFormatVersion":"2010-09-09",
  "Transform":"AWS::SecretsManager-2024-09-16",
  "Resources":{

  {{...}}

    "{{MySecretRotationSchedule}}":{
      "Type":"AWS::SecretsManager::RotationSchedule",
      "DependsOn":"{{logical name of AWS::SecretsManager::SecretTargetAttachment resource}}",
      "Properties":{
        "SecretId":{
          "Ref":"{{logical name of AWS::SecretsManager::Secret resource}}"
        },
        "HostedRotationLambda":{
          "RotationType":"MySQLSingleUser",
          "RotationLambdaName":"{{name of Lambda function to be created}}",
          "VpcSecurityGroupIds":{
            "Fn::GetAtt":[
              "{{logical name of AWS::EC2::SecurityGroup resource}}",
              "GroupId"
            ]
          },
          "VpcSubnetIds":{
            "Fn::Join":[
              ",",
              [
                {
                  "Ref":"{{logical name of primary subnet}}"
                },
                {
                  "Ref":"{{logical name of secondary subnet}}"
                }
              ]
            ]
          }
        },
        "RotationRules":{
          "ScheduleExpression":"cron(0 0 * * ? *)",
          "Duration":"2h"
        },
        "RotateImmediatelyOnUpdate":false
      }
    }
  }
}
```

### YAML
<a name="aws-secretsmanager-example.yaml"></a>

```
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::SecretsManager-2024-09-16
Resources:

  {{...}}

  {{MySecretRotationSchedule}}:
    Type: AWS::SecretsManager::RotationSchedule
    DependsOn: {{logical name of AWS::SecretsManager::SecretTargetAttachment resource}}
    Properties:
      SecretId: !Ref {{logical name of AWS::SecretsManager::Secret resource}}
      HostedRotationLambda:
        RotationType: MySQLSingleUser
        RotationLambdaName: {{name of Lambda function to be created}}
        VpcSecurityGroupIds: !GetAtt {{logical name of AWS::EC2::SecurityGroup resource}}.GroupId
        VpcSubnetIds:
          Fn::Join:
          - ","
          - - Ref: {{logical name of primary subnet}}
            - Ref: {{logical name of secondary subnet}}
      RotationRules:
        ScheduleExpression: cron(0 0 * * ? *)
        Duration: 2h
      RotateImmediatelyOnUpdate: false
```

## Recursos relacionados
<a name="aws-secretsmanager-related-resources"></a>

Para ver ejemplos completos de plantillas de CloudFormation que puede usar para configurar rotaciones secretas, consulte la sección [Ejemplos](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html#aws-resource-secretsmanager-rotationschedule--examples) del recurso `AWS::SecretsManager::RotationSchedule`.

Para obtener información general sobre el uso de las macros, consulte [Procesamientos personalizados en plantillas de CloudFormation con macros de plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) en la *Guía del usuario de AWS CloudFormation*.