Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Holen Sie sich einen geheimen oder geheimen Wert von Secrets Manager
Secrets Manager ist ein Dienst, mit dem Sie Geheimnisse wie Datenbankanmeldeinformationen, Passwörter und API Schlüssel von Drittanbietern sicher speichern und verwalten können. Mit Secrets Manager können Sie den Zugriff auf diese Geheimnisse zentral speichern und kontrollieren, sodass Sie hartcodierte Anmeldeinformationen in Ihrem Code (einschließlich Kennwörtern) durch einen API Aufruf von Secrets Manager ersetzen können, um das Geheimnis programmgesteuert abzurufen. Weitere Informationen finden Sie unter Was ist? AWS Secrets Manager im AWS Secrets Manager Benutzerhandbuch.
Um ganze Geheimnisse oder geheime Werte, die in Secrets Manager gespeichert sind, in Ihren CloudFormation Vorlagen zu verwenden, verwenden Sie secretsmanager
dynamische Verweise.
Überlegungen
Bei der Verwendung secretsmanager
dynamischer Verweise sind einige wichtige Sicherheitsaspekte zu beachten:
-
Die dynamische
secretsmanager
-Referenz kann in allen Ressourceneigenschaften verwendet werden. Die Verwendung dersecretsmanager
dynamischen Referenz bedeutet, dass weder Secrets Manager noch CloudFormation Protokolle einen aufgelösten geheimen Wert beibehalten sollten. Der Geheimnis-Wert kann jedoch in dem Service erscheinen, in dessen Ressource er verwendet wird. Überprüfen Sie Ihre Nutzung um zu vermeiden, dass Geheimnis-Daten preisgegeben werden. -
Durch das Aktualisieren eines Secrets in Secrets Manager wird das Secret in nicht automatisch aktualisiert CloudFormation. Um eine
secretsmanager
dynamische Referenz CloudFormation zu aktualisieren, müssen Sie ein Stack-Update durchführen, das die Ressource aktualisiert, die die dynamische Referenz enthält, indem Sie entweder die Ressourceneigenschaft aktualisieren, die diesecretsmanager
dynamische Referenz enthält, oder indem Sie eine andere Eigenschaft der Ressource aktualisieren.Nehmen wir zum Beispiel an, Sie geben in Ihrer Vorlage die
MasterPassword
Eigenschaft eines AWS::RDS::DBInstanceRessource soll einesecretsmanager
dynamische Referenz sein, und dann erstellen Sie einen Stapel aus der Vorlage. Später aktualisieren Sie den Wert dieses Geheimnisses im Secret Manager, aktualisieren jedoch nicht die RessourceAWS::RDS::DBInstance
in Ihrer Vorlage. In diesem Fall wird, selbst wenn Sie eine Stack-Aktualisierung durchführen, der Secret-Wert in der EigenschaftMasterPassword
nicht aktualisiert und bleibt der vorherige Secret-Wert.Darüber hinaus sollten Sie den Secrets Manager verwenden, um das Secret für einen gesicherten Dienst oder eine gesicherte Datenbank automatisch zu rotieren. Weitere Informationen finden Sie unter Drehen von AWS Secrets Manager Geheimnissen.
-
Dynamische Verweise für sichere Werte, wie z. B.
secretsmanager
, werden derzeit in benutzerdefinierten Ressourcen nicht unterstützt.
Berechtigungen
Um ein in Secrets Manager gespeichertes Geheimnis anzugeben, müssen Sie über die Berechtigung zum Aufrufen verfügen GetSecretValuefür das Geheimnis.
Referenzmuster
Verwenden Sie das folgende Referenzmuster, um Secrets Manager-Geheimnisse in Ihrer CloudFormation Vorlage zu secretsmanager
referenzieren.
{{resolve:secretsmanager:
secret-id
:secret-string
:json-key
:version-stage
:version-id
}}
secret-id
-
Der Name oder ARN das Geheimnis.
Um auf ein Geheimnis in Ihrem zuzugreifen AWS-Konto, müssen Sie nur den geheimen Namen angeben. Um auf ein Geheimnis in einem anderen zuzugreifen AWS-Konto, geben Sie den vollständigen Namen ARN des Geheimnisses an.
Erforderlich
secret-string
-
Der einzige unterstützte Wert ist
SecretString
. Der Standardwert istSecretString
. json-key
-
Der Schlüsselname des Schlüssel/Wert-Paares, dessen Wert Sie abrufen möchten. Wenn Sie kein a angeben
json-key
, wird der gesamte geheime Text CloudFormation abgerufen.Dieses Segment darf nicht das Doppelpunktzeichen (
:
) enthalten. version-stage
-
Das Staging-Label der zu verwendenden Version des Geheimnisses. Secrets Manager verwendet Staging-Markierungen, um während des Rotationsprozesses den Überblick über verschiedene Versionen zu behalten. Wenn Sie
version-stage
verwenden, geben Sieversion-id
nicht an. Wenn Sie wederversion-stage
nochversion-id
angeben, dann ist der Standard dieAWSCURRENT
-Version.Dieses Segment darf nicht das Doppelpunktzeichen (
:
) enthalten. version-id
-
Die eindeutige ID der Version des zu verwendenden Secrets. Wenn Sie
version-id
angeben, dürfen Sieversion-stage
nicht angeben. Wenn Sie wederversion-stage
nochversion-id
angeben, dann ist der Standard dieAWSCURRENT
-Version.Dieses Segment darf nicht das Doppelpunktzeichen (
:
) enthalten.
Beispiele
Themen
Die Werte für den Benutzernamen und das Passwort werden aus einem Geheimnis abgerufen
Das Folgende AWS::RDS::DBInstanceDas Beispiel ruft die Werte für den Benutzernamen und das Passwort ab, die im
Secret gespeichert sind. Die abgerufene geheime Version ist die Version mit dem Versionsstufenwert vonMySecret
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
}}'
Die gesamte Datei wird abgerufen SecretString
Die folgende dynamische Referenz ruft das SecretString
für ab. MySecret
{{resolve:secretsmanager:
MySecret
}}
Alternative Vorgehensweise:
{{resolve:secretsmanager:
MySecret
::::}}
Abrufen eines Werts aus einer bestimmten Version eines Geheimnisses
Die folgende dynamische Referenz ruft den
Wert für die password
Version von ab. AWSPREVIOUS
MySecret
{{resolve:secretsmanager:
MySecret
:SecretString:password
:AWSPREVIOUS
}}
Geheimnisse von einem anderen abrufen AWS-Konto
Die folgende dynamische Referenz ruft das SecretString
für ab
, das sich in einem anderen befindet. AWS-Konto Sie müssen das vollständige Geheimnis angeben, ARN um auf Geheimnisse in einem anderen AWS-Konto zugreifen zu können.MySecret
{{resolve:secretsmanager:
arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret
}}
Die folgende dynamische Referenz ruft den
Wert ab, der password
sich in einer anderen AWS-Konto befindet. Sie müssen das vollständige Geheimnis angeben, ARN um auf Geheimnisse in einem anderen AWS-Konto zugreifen zu können.MySecret
{{resolve:secretsmanager:
arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret
:SecretString:password
}}