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