Trasformazione AWS::SecretsManager - AWS CloudFormation

Questa è la nuova Guida di riferimento ai modelli CloudFormation . Aggiorna i segnalibri e i link. Per informazioni su come iniziare CloudFormation, consulta la Guida AWS CloudFormation per l'utente.

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 trasformazione AWS::SecretsManager è 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 trasformazione AWS::SecretsManager (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 risorsa AWS::SecretsManager::RotationSchedule quando viene utilizzata con la proprietà HostedRotationLambda, incluso l’attributo DependsOn.

    Nota

    Entrambe le versioni supportano gli attributi DeletionPolicy e UpdateReplacePolicy.

Per saperne di più su questa nuova versione della AWS::SecretsManager trasformazione, consulta Introducing a Enhanced Version of the AWS Secrets Manager Transform: AWS::SecretsManager-2024-09-16 sul Security Blog. AWS

Esempi

Gli esempi seguenti mostrano 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 processo di rotazione può richiedere fino a 2 ore. L’aggiornamento del programma di rotazione non avvia 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 utilizzare per impostare rotazioni segrete, consulta la sezione Esempi della risorsa. AWS::SecretsManager::RotationSchedule

Per informazioni generali sull'uso delle macro, consulta Eseguire l'elaborazione personalizzata sui CloudFormation modelli con le macro dei modelli nella Guida per l'AWS CloudFormation utente.