AWS::SecretsManager-Transformation - AWS CloudFormation

AWS::SecretsManager-Transformation

Verwenden Sie die AWS::SecretsManager-Transformation, die ein von AWS CloudFormation gehostetes Makro ist, um eine Lambda-Funktion anzugeben, mit der eine Rotation von Secrets ausgeführt werden kann. Bei Einen Änderungssatz erstellen oder Aktualisieren von Stacks mithilfe von Änderungssätzen, und wenn die Vorlagen auf AWS::SecretsManager verweisen, generiert AWS CloudFormation eine Lambda-Funktion, um eine Rotation von Secrets durchzuführen. Verwenden Sie den HostedRotationLambda-Eigenschaftstyp der AWS::SecretsManager::RotationSchedule-Ressource, um die Attribute der gewünschten Lambda-Funktion anzugeben.

Die Lambda-Funktion ist als verschachtelter Stack (d. h. eine AWS።CloudFormation።Stack-Ressource) in der verarbeiteten Vorlage enthalten. Diese Ressource verknüpft auf Grundlage des in der AWS::SecretsManager::RotationSchedule-Ressource angegebenen RotationType abwechselnd mit der entsprechenden Funktionsvorlage im Repository AWS Secrets Manager Rotation Lambda Functions.

Verwendung

Verwenden Sie die AWS::SecretsManager-Transformation auf der obersten Ebene der Vorlage. Sie können AWS::SecretsManager nicht als Transformation verwenden, die in einem anderen Vorlagenabschnitt eingebettet ist.

Der Wert der Transformationsdeklaration muss eine Literalzeichenfolge sein. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden.

Syntax der obersten Ebene einer Vorlage

Wenn Sie AWS::SecretsManager auf der obersten Ebene einer Vorlage im Abschnitt „Transform“ einschließen möchten, verwenden Sie die folgende Syntax.

JSON

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

YAML

Transform: AWS::SecretsManager-2020-07-23

Parameter

Die AWS::SecretsManager-Transformation akzeptiert keine Parameter. Geben Sie stattdessen die Eigenschaften der Lambda-Funktion, die Sie erstellen möchten, mithilfe des HostedRotationLambda-Eigenschaftstyps der AWS::SecretsManager::RotationSchedule-Ressourcen in der Stack-Vorlage an.

Anmerkungen

Allgemeine Hinweise zur Verwendung von Makros finden Sie unter Überlegungen zur Erstellung von AWS CloudFormation-Makrodefinitionen.

Beispiel

Im folgenden Beispiel für eine partielle Vorlage wird die AWS::SecretsManager-Transformation verwendet, um eine Lambda-Funktion für die Rotation von Secrets in einer MySQL-Datenbank auf Grundlage der Eigenschaften, die im HostedRotationLambda-Eigenschaftstyp der AWS::SecretsManager::RotationSchedule-Ressource angegeben sind, für einen einzelnen Benutzer anzugeben.

Vollständige Vorlagenbeispiele, die Rotationen von Secrets für RDS-Datenbanken, Amazon Redshift-Cluster und Document DB-Cluster veranschaulichen, finden Sie im Abschnitt Beispiele von AWS።SecretsManager።RotationSchedule.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::SecretsManager-2020-07-23", "Resources": { . . . "MySecretRotationSchedule": { "Type": "AWS::SecretsManager::RotationSchedule", "DependsOn": "SecretRDSInstanceAttachment", "Properties": { "SecretId": { "Ref": "MyRDSInstanceRotationSecret" }, "HostedRotationLambda": { "RotationType": "MySQLSingleUser", "RotationLambdaName": "SecretsManagerRotation", "VpcSecurityGroupIds": { "Fn::GetAtt": [ "TestVPC", "DefaultSecurityGroup" ] }, "VpcSubnetIds": { "Fn::Join": [ ",", [ { "Ref": "TestSubnet01" }, { "Ref": "TestSubnet02" } ] ] } }, "RotationRules": { "AutomaticallyAfterDays": 30 } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::SecretsManager-2020-07-23 Resources: . . . MySecretRotationSchedule: Type: AWS::SecretsManager::RotationSchedule DependsOn: SecretRDSInstanceAttachment Properties: SecretId: !Ref MyRDSInstanceRotationSecret HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName: SecretsManagerRotation VpcSecurityGroupIds: !GetAtt TestVPC.DefaultSecurityGroup VpcSubnetIds: Fn::Join: - "," - - Ref: TestSubnet01 - Ref: TestSubnet02 RotationRules: AutomaticallyAfterDays: 30