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