Transformación AWS::SecretsManager - AWS CloudFormation

Transformación AWS::SecretsManager

Use la transformación AWS::SecretsManager, que es una macro alojada por AWS CloudFormation, para especificar una función AWS Lambda para rotar secretos. Al Creación de un conjunto de cambios o Actualización de pilas de CloudFormation con conjuntos de cambios y las referencias de plantillas AWS::SecretsManager, AWS CloudFormation genera una función AWS Lambda para rotar secretos. Utilice el tipo de propiedad HostedRotationLambda del recurso AWS::SecretsManager::RotationSchedule para especificar los atributos de la función AWS Lambda que quiera.

La función AWS Lambda se incluye como una pila anidada (es decir, un recurso AWS::CloudFormation::Stack) en la plantilla procesada. Este recurso, a su vez, enlaza con la plantilla de función adecuada en el repositorio de funciones de Lambda de rotación de AWS Secrets Manager, en función del valor de RotationType especificado en el recurso AWS::SecretsManager::RotationSchedule.

Uso

Utilice la transformación de AWS::SecretsManager en el nivel superior de la plantilla. No se puede utilizar AWS::SecretsManager como transformación integrada en ninguna otra sección de la plantilla.

El valor para la declaración de transformación debe ser una cadena literal. No puede utilizar un parámetro o función para especificar un valor de transformación.

Sintaxis de nivel superior de una plantilla

Para incluir AWS::SecretsManager en la parte superior de una plantilla, en la sección Transform, utilice la siguiente sintaxis.

JSON

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

YAML

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

Parámetros

La transformación de AWS::SecretsManager no acepta ningún parámetro. En su lugar, especifique las propiedades de la función AWS Lambda de rotación de secretos que quiera crear mediante el tipo de propiedad HostedRotationLambda de los recursos AWS::SecretsManager::RotationSchedule en la plantilla de la pila.

Observaciones

Para consideraciones generales acerca de cómo usar macros, consulte Consideraciones sobre la creación de definiciones de macros de CloudFormation.

Ejemplo

En el siguiente ejemplo de plantilla parcial, se muestra cómo utilizar la transformación AWS::SecretsManager para especificar una función AWS Lambda para la rotación de secretos en una base de datos MySQL para un solo usuario, en función de las propiedades especificadas en el tipo de propiedad HostedRotationLambda del recurso AWS::SecretsManager::RotationSchedule.

Para obtener ejemplos completos de plantillas que ilustren rotaciones secretas para bases de datos RDS, clústeres de Amazon Redshift y clústeres de Document DB, consulte la sección Ejemplos de 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