Transformação AWS::SecretsManager - AWS CloudFormation

Transformação AWS::SecretsManager

Use a transformação AWS::SecretsManager, que é uma macro hospedada pelo AWS CloudFormation, para especificar uma função do AWS Lambda para fazer o rodízio de segredos. Quando Criar um conjunto de alterações ou Atualizar pilhas usando conjuntos de alterações e as referências de modelos AWS::SecretsManager, o AWS CloudFormation gera uma função do AWS Lambda para executar o rodízio de segredos. Use o tipo de propriedade HostedRotationLambda do recurso AWS::SecretsManager::RotationSchedule para especificar os atributos da função do AWS Lambda desejada.

A função do AWS Lambda fica em uma pilha aninhada (um recurso AWS::CloudFormation::Stack) no modelo processado. Esse recurso então se vincula ao modelo de função apropriado no repositório de funções do Lambda do AWS Secrets Magnager com base no RotationType especificado no recurso AWS::SecretsManager::RotationSchedule.

Uso

Use a transformação AWS::SecretsManager no nível superior do modelo. Não é possível usar AWS::SecretsManager como uma transformação incorporada em nenhuma outra seção de modelo.

O valor da declaração de transformação deve ser uma sequência literal. Você não pode usar um parâmetro ou uma função para especificar um valor de transformação.

Sintaxe no nível superior de um modelo

Para incluir AWS::SecretsManager no nível superior de um modelo, na seção Transform, use a sintaxe a seguir.

JSON

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

YAML

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

Parâmetros

A transformação AWS::SecretsManager não aceita nenhum parâmetro. Em vez disso, especifique as propriedades da função do AWS Lambda de rodízio de segredos que você deseja criar usando o tipo de propriedade HostedRotationLambda dos recursos AWS::SecretsManager::RotationSchedule no modelo de pilha.

Observações

Para considerações gerais sobre o uso de macros, consulte Considerações ao criar definições de macro do CloudFormation

Exemplo

O exemplo de modelo parcial a seguir mostra como usar a transformação AWS::SecretsManager para especificar uma função do AWS Lambda para rodízio de segredos em um banco de dados MySQL para um único usuário, com base no tipo de propriedade HostedRotationLambda do recurso AWS::SecretsManager::RotationSchedule.

Para exemplos completos de modelos que ilustram alternâncias de segredos para bancos de dados do RDS, clusters do Amazon Redshift e clusters do Document DB, consulte a seção Exemplos do 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