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à.
Ottieni un valore segreto o segreto da Secrets Manager
Secrets Manager è un servizio che consente di archiviare e gestire in modo sicuro segreti come credenziali di database, password e chiavi di terze parti. API Utilizzando Secrets Manager, è possibile archiviare e controllare l'accesso a questi segreti centralmente, in modo da poter sostituire le credenziali codificate nel codice (comprese le password) con una chiamata a API Secrets Manager per recuperare il segreto a livello di codice. Per ulteriori informazioni, consulta Cos'è? AWS Secrets Manager nella Guida AWS Secrets Manager per l'utente.
Per utilizzare interi segreti o valori segreti archiviati in Secrets Manager all'interno dei CloudFormation modelli, si utilizzano riferimenti secretsmanager
dinamici.
Considerazioni
Quando si utilizzano riferimenti secretsmanager
dinamici, è necessario tenere a mente alcune importanti considerazioni sulla sicurezza:
-
Il riferimento dinamico
secretsmanager
può essere utilizzato in tutte le proprietà di risorsa. L'utilizzo del riferimentosecretsmanager
dinamico indica che né Secrets Manager né CloudFormation i log devono rendere persistente alcun valore segreto risolto. Tuttavia, il valore di segreto può essere visualizzato nel servizio proprietario della risorsa in cui è utilizzato. Rivedi l'utilizzo per evitare perdite di dati segreti. -
L'aggiornamento di un segreto in Secrets Manager non aggiorna automaticamente il segreto in CloudFormation. CloudFormation Per aggiornare un riferimento
secretsmanager
dinamico, è necessario eseguire un aggiornamento dello stack che aggiorni la risorsa contenente il riferimento dinamico, aggiornando la proprietà della risorsa che contiene il riferimentosecretsmanager
dinamico o aggiornando un'altra proprietà della risorsa.Ad esempio, supponiamo che nel modello si specifichi la
MasterPassword
proprietà di un AWS::RDS::DBInstancerisorsa come riferimentosecretsmanager
dinamico, quindi crea uno stack dal modello. Successivamente puoi aggiornare il valore del segreto in Secrets Manager, ma non la risorsaAWS::RDS::DBInstance
nel modello. In questo caso, anche se si esegue un aggiornamento dello stack, il valore segreto nella proprietàMasterPassword
non viene aggiornato e rimane il valore segreto precedente.Inoltre, ti consigliamo di utilizzare Secrets Manager per ruotare automaticamente il segreto per un servizio o un database protetto. Per ulteriori informazioni, consulta Rotazione dei segreti AWS Secrets Manager.
-
I riferimenti dinamici per valori sicuri, ad esempio
secretsmanager
, non sono attualmente supportati nelle risorse personalizzate.
Autorizzazioni
Per specificare un segreto archiviato in Secrets Manager, è necessario disporre del permesso di chiamare GetSecretValueper il segreto.
Schema di riferimento
Per fare riferimento ai segreti di Secrets Manager nel tuo CloudFormation modello, usa il seguente schema secretsmanager
di riferimento.
{{resolve:secretsmanager:
secret-id
:secret-string
:json-key
:version-stage
:version-id
}}
secret-id
-
Il nome o ARN del segreto.
Per accedere a un segreto nel tuo Account AWS, devi solo specificare il nome segreto. Per accedere a un segreto in un altro indirizzo Account AWS, specificate la completezza ARN del segreto.
Obbligatorio.
secret-string
-
L'unico valore supportato è
SecretString
. Il valore predefinito èSecretString
. json-key
-
Il nome della chiave della coppia chiave-valore di cui intendi recuperare il valore. Se non specifichi a
json-key
, CloudFormation recupera l'intero testo segreto.Questo segmento può non includere il carattere di due punti (
:
). version-stage
-
L'etichetta temporanea della versione del segreto da utilizzare. Secrets Manager utilizza le etichette temporanee per tenere traccia delle differenti versioni durante il processo di rotazione. Se utilizzi
version-stage
, non specificareversion-id
. Se non specifichi néversion-stage
néversion-id
, la versione di default sarà laAWSCURRENT
.Questo segmento può non includere il carattere di due punti (
:
). version-id
-
L'identificatore univoco della versione del segreto da utilizzare. Se specifichi
version-id
, non è necessario specificare ancheversion-stage
. Se non specifichi néversion-stage
néversion-id
, la versione di default sarà laAWSCURRENT
.Questo segmento può non includere il carattere di due punti (
:
).
Esempi
Argomenti
Recupero dei valori del nome utente e della password da un segreto
Quanto segue AWS::RDS::DBInstanceesempio recupera i valori del nome utente e della password memorizzati nel
segreto. La versione segreta recuperata è la versione con il valore della fase della versione di. MySecret
AWSCURRENT
JSON
{ "MyRDSInstance": { "Type": "AWS::RDS::DBInstance", "Properties": { "DBName": "MyRDSInstance", "AllocatedStorage": "20", "DBInstanceClass": "db.t2.micro", "Engine": "mysql", "MasterUsername": "{{resolve:secretsmanager:
MySecret
:SecretString:username
}}", "MasterUserPassword": "{{resolve:secretsmanager:MySecret
:SecretString:password
}}" } } }
YAML
MyRDSInstance: Type: 'AWS::RDS::DBInstance' Properties: DBName: MyRDSInstance AllocatedStorage: '20' DBInstanceClass: db.t2.micro Engine: mysql MasterUsername: '{{resolve:secretsmanager:
MySecret
:SecretString:username
}}' MasterUserPassword: '{{resolve:secretsmanager:MySecret
:SecretString:password
}}'
Recupero dell'intero SecretString
Il riferimento dinamico seguente recupera il modulo. SecretString
MySecret
{{resolve:secretsmanager:
MySecret
}}
In alternativa:
{{resolve:secretsmanager:
MySecret
::::}}
Recupero di un valore da una versione specifica di un segreto
Il riferimento dinamico seguente recupera il
valore per la password
versione di. AWSPREVIOUS
MySecret
{{resolve:secretsmanager:
MySecret
:SecretString:password
:AWSPREVIOUS
}}
Recupero di segreti da un altro Account AWS
Il riferimento dinamico seguente recupera il modulo contenuto SecretString
in un
altro. Account AWSÈ necessario specificare il segreto completo ARN per accedere ai segreti di un altro Account AWS.MySecret
{{resolve:secretsmanager:
arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret
}}
Il riferimento dinamico seguente recupera il
valore di password
quello contenuto in un altro Account AWS. È necessario specificare il segreto completo ARN per accedere ai segreti di un altro Account AWS.MySecret
{{resolve:secretsmanager:
arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret
:SecretString:password
}}