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.
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.
AWS::SecretsManagerTransformation
Cette rubrique décrit comment utiliser la transformation AWS::SecretsManager et le type de ressource AWS::SecretsManager::RotationSchedule pour spécifier une fonction Lambda chargée d’assurer la rotation des secrets.
La transformation AWS::SecretsManager est une macro CloudFormation qui, lorsqu’elle est référencée dans votre modèle de pile, génère automatiquement une fonction Lambda chargée d’assurer la rotation des secrets lors de la création ou de la mise à jour d’une pile via un jeu de modifications. La fonction Lambda générée est placée dans une pile imbriquée du modèle transformé. Elle utilise un modèle de fonction provenant du référentiel Rotation des fonctions Lambda AWS Secrets Manager
Utilisation
Pour utiliser la transformation AWS::SecretsManager, vous devez la déclarer au niveau supérieur de votre modèle CloudFormation. 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
Pour déclarer cette transformation dans votre modèle CloudFormation, utilisez la syntaxe suivante :
JSON
{ "Transform":"AWS::SecretsManager-2020-07-23", "Resources":{...} }
YAML
Transform: AWS::SecretsManager-2020-07-23Resources:...
La transformation AWS::SecretsManager est une déclaration autonome sans paramètres supplémentaires. À la place, vous configurez la propriété HostedRotationLambda de la ressource AWS::SecretsManager::RotationSchedule dans votre modèle de pile. La propriété HostedRotationLambda spécifie la fonction Lambda qui exécutera la rotation des secrets.
Nouvelles caractéristiques de AWS::SecretsManager-2024-09-16
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 piles CloudFormation, 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::RotationSchedulelorsqu’il est utilisé avec la propriétéHostedRotationLambda, incluant l’attributDependsOn.Note
Les deux versions prennent en charge les attributs
DeletionPolicyetUpdateReplacePolicy.
Pour en savoir plus sur cette nouvelle version de la transformation AWS::SecretsManager, consultez Présentation d’une version améliorée de la transformation AWS Secrets Manager : AWS::SecretsManager-2024-09-16
Exemples
Les exemples suivants illustrent l’utilisation de la transformation AWS::SecretsManager (AWS::SecretsManager-2024-09-16) avec la ressource AWS::SecretsManager::RotationSchedule dans un modèle CloudFormation. 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
{ "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
AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::SecretsManager-2024-09-16 Resources:...MySecretRotationSchedule: Type: AWS::SecretsManager::RotationSchedule DependsOn:logical name of AWS::SecretsManager::SecretTargetAttachment resourceProperties: SecretId: !Reflogical name of AWS::SecretsManager::Secret resourceHostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName:name of Lambda function to be createdVpcSecurityGroupIds: !GetAttlogical name of AWS::EC2::SecurityGroup resource.GroupId VpcSubnetIds: Fn::Join: - "," - - Ref:logical name of primary subnet- Ref:logical name of secondary subnetRotationRules: ScheduleExpression: cron(0 0 * * ? *) Duration: 2h RotateImmediatelyOnUpdate: false
Ressources connexes
Pour des exemples complets de modèles CloudFormation permettant de configurer la rotation de secrets, consultez la section Examples de la ressource AWS::SecretsManager::RotationSchedule.
Pour plus d’informations, consultez Traitement personnalisé des modèles CloudFormation à l’aide de macros de modèle dans le Guide de l’utilisateur AWS CloudFormation.