Trasformazione AWS::SecretsManager - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Trasformazione AWS::SecretsManager

Questo argomento descrive come utilizzare la AWS::SecretsManager trasformazione e il tipo di AWS::SecretsManager::RotationSchedulerisorsa per specificare una funzione Lambda per eseguire la rotazione dei segreti.

La AWS::SecretsManager trasformazione è una CloudFormation macro che, se referenziata nel modello di stack, genera automaticamente una funzione Lambda per la rotazione dei segreti quando si crea o si aggiorna uno stack utilizzando un set di modifiche. La funzione Lambda viene inserita in uno stack annidato nel modello elaborato. Utilizza un modello di funzione dal repository AWS Secrets Manager Rotation Lambda Functions, basato sul valore della RotationTypeproprietà della risorsa. AWS::SecretsManager::RotationSchedule

Utilizzo

Per utilizzare la AWS::SecretsManager trasformazione, è necessario dichiararla al livello più alto del modello. CloudFormation Non è possibile utilizzare AWS::SecretsManager come trasformazione incorporata in qualsiasi altra sezione del modello.

La dichiarazione deve utilizzare la stringa letterale AWS::SecretsManager-2020-07-23 o AWS::SecretsManager-2024-09-16 come valore. Non è possibile utilizzare un parametro o una funzione per specificare un valore di trasformazione.

Sintassi

Per dichiarare questa trasformazione nel CloudFormation modello, utilizzate la seguente sintassi:

JSON

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

YAML

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

La AWS::SecretsManager trasformazione è una dichiarazione autonoma senza parametri aggiuntivi. Invece, configuri la HostedRotationLambdaproprietà della AWS::SecretsManager::RotationSchedulerisorsa nel tuo modello di stack. La HostedRotationLambdaproprietà specifica la funzione Lambda per eseguire la rotazione dei segreti.

Nuove funzionalità in AWS::SecretsManager-2024-09-16

L'ultima versione di AWS::SecretsManager transform (AWS::SecretsManager-2024-09-16) introduce i seguenti miglioramenti:

  • Aggiornamenti Lambda automatici: quando aggiorni gli CloudFormation stack, le funzioni Lambda ora aggiornano automaticamente la configurazione di runtime e le dipendenze interne. Ciò garantisce l'utilizzo delle versioni più sicure e affidabili del codice che gestisce la rotazione segreta in Secrets Manager.

  • Supporto per attributi aggiuntivi: la nuova trasformazione supporta attributi di risorsa aggiuntivi per il tipo di AWS::SecretsManager::RotationSchedule risorsa quando viene utilizzata con la HostedRotationLambda proprietà, incluso l'DependsOnattributo.

    Nota

    Entrambe le versioni supportano gli UpdateReplacePolicy attributi DeletionPolicy and.

Per ulteriori informazioni su questa nuova versione della AWS::SecretsManager trasformazione, consulta Introduzione a una versione migliorata della AWS Secrets Manager trasformazione: AWS::SecretsManager-2024-09-16sul AWS Security Blog.

Esempi

Il seguente esempio di modello parziale mostra come utilizzare AWS::SecretsManager transform (AWS::SecretsManager-2024-09-16) e la AWS::SecretsManager::RotationSchedulerisorsa nel modello. In questo esempio, CloudFormation genererà automaticamente una funzione Lambda per la rotazione segreta di un singolo utente MySQL.

Il segreto è impostato per ruotare automaticamente ogni giorno a mezzanotte (UTC). Il completamento del processo di rotazione può richiedere fino a 2 ore. L'aggiornamento del programma di rotazione non avvierà una rotazione immediata.

JSON

{ "AWSTemplateFormatVersion":"2010-09-09", "Transform":"AWS::SecretsManager-2024-09-16", "Resources":{ ... "MySecretRotationSchedule":{ "Type":"AWS::SecretsManager::RotationSchedule", "DependsOn":"logical name of AWS::SecretsManager::SecretTargetAttachment resource", "Properties":{ "SecretId":{ "Ref":"logical name of AWS::SecretsManager::Secret resource" }, "HostedRotationLambda":{ "RotationType":"MySQLSingleUser", "RotationLambdaName":"name of Lambda function to be created", "VpcSecurityGroupIds":{ "Fn::GetAtt":[ "logical name of AWS::EC2::SecurityGroup resource", "GroupId" ] }, "VpcSubnetIds":{ "Fn::Join":[ ",", [ { "Ref":"logical name of primary subnet" }, { "Ref":"logical name of secondary subnet" } ] ] } }, "RotationRules":{ "ScheduleExpression":"cron(0 0 * * ? *)", "Duration":"2h" }, "RotateImmediatelyOnUpdate":false } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Transform: AWS::SecretsManager-2024-09-16 Resources: ... MySecretRotationSchedule: Type: AWS::SecretsManager::RotationSchedule DependsOn: logical name of AWS::SecretsManager::SecretTargetAttachment resource Properties: SecretId: !Ref logical name of AWS::SecretsManager::Secret resource HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName: name of Lambda function to be created VpcSecurityGroupIds: !GetAtt logical name of AWS::EC2::SecurityGroup resource.GroupId VpcSubnetIds: Fn::Join: - "," - - Ref: logical name of primary subnet - Ref: logical name of secondary subnet RotationRules: ScheduleExpression: cron(0 0 * * ? *) Duration: 2h RotateImmediatelyOnUpdate: false

Per esempi completi di CloudFormation modelli che puoi usare per impostare rotazioni segrete, consulta la sezione Esempi della AWS::SecretsManager::RotationSchedule risorsa.

Per considerazioni generali sull'uso delle macro, consulta. Considerazioni