

Il s’agit du nouveau *Guide de référence des modèles CloudFormation *. Veuillez mettre à jour vos favoris et vos liens. Pour obtenir de l'aide pour démarrer CloudFormation, consultez le [guide de AWS CloudFormation l'utilisateur](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transformation `AWS::SecretsManager`
<a name="transform-aws-secretsmanager"></a>

Cette rubrique décrit comment utiliser la `AWS::SecretsManager` transformation et le type de [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html)ressource pour spécifier une fonction Lambda afin d'effectuer une rotation des secrets.

La `AWS::SecretsManager` transformation est une CloudFormation macro qui, lorsqu'elle est référencée dans votre modèle de pile, génère automatiquement une fonction Lambda pour la rotation des secrets lorsque vous créez ou mettez à jour une pile à l'aide d'un ensemble de modifications. La fonction Lambda générée est placée dans une pile imbriquée du modèle transformé. Il utilise un modèle de fonction issu du référentiel [AWS Secrets Manager Rotation Lambda Functions](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas), basé sur la valeur de la [RotationType](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html#cfn-secretsmanager-rotationschedule-hostedrotationlambda-rotationtype)propriété de la [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html)ressource.

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

Pour utiliser la `AWS::SecretsManager` transformation, vous devez la déclarer au niveau supérieur de votre CloudFormation modèle. Vous ne pouvez pas utiliser `AWS::SecretsManager` comme transformation incorporée dans une autre section de modèle.

La déclaration doit utiliser la chaîne littérale `AWS::SecretsManager-2020-07-23` ou `AWS::SecretsManager-2024-09-16` comme valeur. Vous ne pouvez pas utiliser de paramètre ou de fonction pour spécifier la valeur de transformation.

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

Pour déclarer cette transformation dans votre CloudFormation modèle, utilisez la syntaxe suivante :

#### 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 transformation `AWS::SecretsManager` est une déclaration autonome sans paramètres supplémentaires. Vous configurez plutôt la [HostedRotationLambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html)propriété de la [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html)ressource dans votre modèle de pile. La [HostedRotationLambda](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-secretsmanager-rotationschedule-hostedrotationlambda.html)propriété spécifie la fonction Lambda pour effectuer la rotation des secrets.

## Nouvelles caractéristiques de `AWS::SecretsManager-2024-09-16`
<a name="aws-secretsmanager-new-version"></a>

La dernière version de la transformation `AWS::SecretsManager` (`AWS::SecretsManager-2024-09-16`) introduit les améliorations suivantes :
+ **Mises à niveau Lambda automatiques** : lorsque vous mettez à jour vos CloudFormation piles, vos fonctions Lambda mettent désormais automatiquement à jour leur configuration d'exécution et leurs dépendances internes. Cela garantit l’utilisation des versions les plus fiables et sécurisées du code assurant la rotation des secrets dans Secrets Manager.
+ **Prise en charge d’attributs supplémentaires** : la nouvelle transformation prend en charge des attributs supplémentaires pour le type de ressource `AWS::SecretsManager::RotationSchedule` lorsqu’il est utilisé avec la propriété `HostedRotationLambda`, incluant l’attribut `DependsOn`.
**Note**  
Les deux versions prennent en charge les attributs `DeletionPolicy` et `UpdateReplacePolicy`.

Pour en savoir plus sur cette nouvelle version de la `AWS::SecretsManager` transformation, voir [Présentation d'une version améliorée de la AWS Secrets Manager transformation : 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/) sur le blog AWS de sécurité.

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

Les exemples suivants montrent comment utiliser la `AWS::SecretsManager` transformation (`AWS::SecretsManager-2024-09-16`) et la [AWS::SecretsManager::RotationSchedule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html)ressource dans votre modèle. Dans cet exemple, CloudFormation générera automatiquement une fonction Lambda pour la rotation du secret utilisateur unique de MySQL.

Le secret est configuré pour être automatiquement renouvelé chaque jour à minuit (UTC). Le processus de rotation peut prendre jusqu’à 2 heures. La mise à jour du calendrier de rotation ne déclenchera pas une rotation immédiate.

### 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
```

## Ressources connexes
<a name="aws-secretsmanager-related-resources"></a>

Pour des exemples de CloudFormation modèles complets que vous pouvez utiliser pour configurer des rotations secrètes, consultez la section [Exemples](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-secretsmanager-rotationschedule.html#aws-resource-secretsmanager-rotationschedule--examples) de la `AWS::SecretsManager::RotationSchedule` ressource.

Pour obtenir des informations générales sur l'utilisation des macros, voir [Effectuer un traitement personnalisé sur des CloudFormation modèles à l'aide de modèles de macros](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) dans le *Guide de AWS CloudFormation l'utilisateur*.