AWS::SecretsManagerTrasformazione - 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à.

AWS::SecretsManagerTrasformazione

Questo argomento descrive come utilizzare la trasformazione AWS::SecretsManager e il tipo di risorsa AWS::SecretsManager::RotationSchedule per specificare una funzione Lambda per l’esecuzione della rotazione dei segreti.

La trasformazione AWS::SecretsManager è una macro di CloudFormation che, se vi si fa riferimento nel modello di stack, genera automaticamente una funzione Lambda per la rotazione dei segreti quando crei o aggiorni 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 Gestione dei segreti AWS Rotation Lambda Functions, basato sul valore della proprietà RotationType della risorsa AWS::SecretsManager::RotationSchedule.

Utilizzo

Per utilizzare la trasformazione AWS::SecretsManager, devi dichiararla al livello più alto del tuo 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 modello CloudFormation, utilizza la sintassi seguente:

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, configura la proprietà HostedRotationLambda della risorsa AWS::SecretsManager::RotationSchedule nel tuo modello di stack. La proprietà HostedRotationLambda specifica la funzione Lambda per l’esecuzione della 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 stack CloudFormation, 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 ulteriori informazioni su questa nuova versione della trasformazione AWS::SecretsManager, consulta Introducing an enhanced version of the Gestione dei segreti AWS transform: AWS::SecretsManager-2024-09-16 su AWS Security Blog.

Esempi

Gli esempi seguenti mostrano come utilizzare la trasformazione AWS::SecretsManager (AWS::SecretsManager-2024-09-16) e la risorsa AWS::SecretsManager::RotationSchedule nel modello. In questo esempio, CloudFormation genera automaticamente una funzione Lambda per la rotazione segreta di un singolo utente in 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 modelli di esempio completi di CloudFormation, che puoi usare per impostare rotazioni del segreto, consulta la sezione Esempi della risorsa AWS::SecretsManager::RotationSchedule.

Per informazioni generali sull’utilizzo delle macro, consulta Perform custom processing on CloudFormation templates with template macros nella Guida per l’utente di AWS CloudFormation.