New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Perché l'aggiornamento di un segreto in Secrets Manager non aggiorna automaticamente il segreto in AWS CloudFormation?
Ho aggiornato il segreto in AWS Secrets Manager, ma il riferimento dinamico non è stato aggiornato durante l'aggiornamento della pila di AWS CloudFormation.
Breve descrizione
Quando aggiorni un segreto in Secrets Manager, CloudFormation non rileva automaticamente che il valore del segreto è cambiato. Durante gli aggiornamenti della pila, CloudFormation non recupera il valore del riferimento dinamico a meno che non venga apportata una modifica al riferimento dinamico stesso.
Dopo aver aggiornato il segreto in Secrets Manager, è necessario aggiornare la pila di CloudFormation e specificare anche il VersionId nella stringa di riferimento dinamico. Specificare il VersionId è una best practice per assicurarsi che CloudFormation recuperi la versione aggiornata del segreto.
Risoluzione
Nota: se ricevi un messaggio di errore durante l'esecuzione dei comandi di AWS CLI, assicurati di utilizzarne la versione più recente.
Il seguente scenario di esempio mostra come aggiornare il riferimento dinamico di Secrets Manager in CloudFormation.
1. Fai riferimento in modo dinamico al segreto di Secrets Manager nel tuo modello CloudFormation.
Ad esempio, il seguente modello CloudFormation fa riferimento in modo dinamico a un segreto di Secrets Manager con l'ID del segreto mysecret e la stringa del segreto {"MyKey":"MyValue"}:
Resources: SG: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: '{{resolve:secretsmanager:mysecret:SecretString:MyKey}}' SecurityGroupIngress: - IpProtocol: tcp FromPort: 8080 ToPort: 8080 CidrIp: 0.0.0.0/0
Nota: il riferimento dinamico precedente si risolve in MyValue per la proprietà GroupDescription.
2. Aggiorna il segreto in Secrets Manager eseguendo il comando update-secret tramite AWS Command Line Interface (AWS CLI) e specifica la stringa del segreto. Per lo scenario di esempio, la stringa del segreto è {"MyKey":"NewValue"}.
Nota: il VersionId non viene visualizzato nella Console di gestione AWS. Se hai aggiornato il segreto tramite la Console di gestione AWS, esegui il comando get-secret-value tramite AWS CLI per recuperare il VersionId.
3. Annota il VersionId indicato nell'output.
Output di esempio:
$ aws secretsmanager update-secret --secret-id mysecret --secret-string {\"MyKey\":\"NewValue\"} { "ARN": "arn:aws:secretsmanager:us-east-1:xxxxxxxxxxxx:secret:mysecret-ABCDeF", "Name": "mysecret", "VersionId": "ab01234c-5d67-89ef-01gh-2ijk345l6m78" }
Nota: il VersionId "ab01234c-5d67-89ef-01gh-2ijk345l6m78" dell'output precedente non viene applicato automaticamente al riferimento dinamico nella pila di CloudFormation.
4. Aggiorna la pila e specifica il VersionId nella stringa di riferimento dinamico. Ad esempio:
Resources: SG: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: '{{resolve:secretsmanager:mysecret:SecretString:MyKey::ab01234c-5d67-89ef-01gh-2ijk345l6m78}}' SecurityGroupIngress: - IpProtocol: tcp FromPort: 8080 ToPort: 8080 CidrIp: 0.0.0.0/0
Nota: nel modello di esempio precedente, la sintassi corretta è :: prima del VersionId "ab01234c-5d67-89ef-01gh-2ijk345l6m78". Questa sezione della stringa di riferimento dinamico viene lasciata vuota perché non è necessario specificare il version-stage.

Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 4 mesi fa
- AWS UFFICIALEAggiornata un anno fa