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
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 laHostedRotationLambda
proprietà, incluso l'DependsOn
attributo.Nota
Entrambe le versioni supportano gli
UpdateReplacePolicy
attributiDeletionPolicy
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-16
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: !Reflogical name of AWS::SecretsManager::Secret resource
HostedRotationLambda: RotationType: MySQLSingleUser RotationLambdaName:name of Lambda function to be created
VpcSecurityGroupIds: !GetAttlogical 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
Risorse correlate
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