Dies ist das neue CloudFormation Template Reference Guide. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im AWS CloudFormationBenutzerhandbuch.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS::SecretsManager-Transformation
In diesem Thema wird beschrieben, wie Sie den Ressourcentyp AWS::SecretsManager transform und AWS::SecretsManager::RotationSchedule verwenden, um eine Lambda-Funktion für die Rotation von Geheimnissen anzugeben.
Die AWS::SecretsManager-Transformation ist ein CloudFormation-Makro, das, wenn es in Ihrer Stack-Vorlage referenziert wird, automatisch eine Lambda-Funktion für die Rotation von Geheimnissen generiert, wenn Sie einen Stack mit einem Änderungssatz erstellen oder aktualisieren. Die Lambda-Funktion wird in einem verschachtelten Stapel in der verarbeiteten Vorlage platziert. Sie verwendet eine Funktionsvorlage aus dem AWS Secrets Manager Rotation Lambda Functions
Verwendung
Um die Transformation AWS::SecretsManager zu verwenden, müssen Sie sie auf der obersten Ebene Ihrer CloudFormation-Vorlage deklarieren. Sie können AWS::SecretsManager nicht als Transformation verwenden, die in einem anderen Vorlagenabschnitt eingebettet ist.
Die Deklaration muss die Zeichenkette AWS::SecretsManager-2020-07-23 oder AWS::SecretsManager-2024-09-16 als Wert verwenden. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden.
Syntax
Um diese Transformation in Ihrer CloudFormation-Vorlage zu deklarieren, verwenden Sie die folgende Syntax:
JSON
{ "Transform":"AWS::SecretsManager-2020-07-23", "Resources":{...} }
YAML
Transform: AWS::SecretsManager-2020-07-23Resources:...
Die Transformation AWS::SecretsManager ist eine eigenständige Deklaration ohne zusätzliche Parameter. Stattdessen konfigurieren Sie die Eigenschaft HostedRotationLambda der Ressource AWS::SecretsManager::RotationSchedule in Ihrer Stack-Vorlage. Die Eigenschaft HostedRotationLambda gibt die Lambda-Funktion an, die die Rotation der Geheimnisse durchführt.
Neue Features in AWS::SecretsManager-2024-09-16
Die neueste Version der AWS::SecretsManager-Transformation (AWS::SecretsManager-2024-09-16) enthält die folgenden Verbesserungen:
-
Automatische Lambda-Upgrades- Wenn Sie Ihre CloudFormation Stacks aktualisieren, aktualisieren Ihre Lambda-Funktionen jetzt automatisch ihre Laufzeitkonfiguration und internen Abhängigkeiten. Dadurch wird sichergestellt, dass Sie die sichersten und zuverlässigsten Versionen des Codes verwenden, der die Rotation der Geheimnisse in Secrets Manager verwaltet.
-
Unterstützung für zusätzliche Attribute- Die neue Transformation unterstützt zusätzliche Ressourcenattribute für den Ressourcentyp
AWS::SecretsManager::RotationSchedulebei Verwendung mit der EigenschaftHostedRotationLambdaeinschließlich des AttributsDependsOn.Anmerkung
Beide Versionen unterstützen die Attribute
DeletionPolicyundUpdateReplacePolicy.
Mehr über diese neue Version der AWS::SecretsManager Transformation erfahren Sie unter Einführung einer verbesserten Version der AWS Secrets Manager Transformation: AWS::SecretsManager-2024-09-16
Beispiele
Die folgenden Beispiele zeigen, wie Sie die AWS::SecretsManager Transformation (AWS::SecretsManager-2024-09-16) und die AWS::SecretsManager::RotationSchedule Ressource in Ihrer Vorlage verwenden. In diesem Beispiel generiert CloudFormation automatisch eine Lambda-Funktion für die MySQL Single User Secret Rotation.
Das Geheimnis ist so eingestellt, dass es sich jeden Tag um Mitternacht (UTC) automatisch dreht. Der Rotationsprozess kann bis zu 2 Stunden dauern. Durch die Aktualisierung des Rotationsplans wird keine sofortige Rotation gestartet.
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
Zugehörige Ressourcen
Vollständige Beispiele für CloudFormation-Vorlagen, mit denen Sie geheime Rotationen einrichten können, finden Sie im Abschnitt Beispiele der AWS::SecretsManager::RotationSchedule Ressource.
Allgemeine Informationen zur Verwendung von Makros finden Sie unter Benutzerdefinierte Verarbeitung von CloudFormation-Vorlagen mit Vorlagenmakros im AWS CloudFormation Benutzerhandbuch.