AWS::SecretsManager-Transformation - AWS CloudFormation

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 Repository, basierend auf dem Wert der RotationType Eigenschaft der AWS::SecretsManager::RotationSchedule Ressource.

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-23 Resources: ...

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::RotationSchedule bei Verwendung mit der Eigenschaft HostedRotationLambda einschließlich des Attributs DependsOn .

    Anmerkung

    Beide Versionen unterstützen die Attribute DeletionPolicy und UpdateReplacePolicy .

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 im AWS Security Blog.

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

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.