

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.

# Abrufen von in anderen Diensten gespeicherten Werten mit Hilfe von dynamischen Referenzen
<a name="dynamic-references"></a>

Dynamische Verweise bieten Ihnen eine bequeme Möglichkeit, externe Werte anzugeben, die in anderen Diensten gespeichert und verwaltet werden, und vertrauliche Informationen von Ihren Vorlagen zu entkoppeln. infrastructure-as-code CloudFormation ruft den Wert der angegebenen Referenz ab, falls dies bei Stack- und Change-Set-Vorgängen erforderlich ist.

Mit dynamischen Referenzen können Sie:
+ **Sichere Zeichenketten verwenden** — Verwenden Sie für vertrauliche Daten immer sichere Zeichenkettenparameter im AWS Systems Manager Parameter Store oder Secrets in, AWS Secrets Manager um sicherzustellen, dass Ihre Daten im Ruhezustand verschlüsselt sind.
+ **Zugriff beschränken**- Beschränken Sie den Zugriff auf die Parameter des Parameterspeichers oder die Secrets Manager-Geheimnisse auf autorisierte Principals und Rollen.
+ **Zugangsdaten rotieren**- Rotieren Sie regelmäßig Ihre sensiblen Daten, die in Parameter Store oder Secrets Manager gespeichert sind, um ein hohes Maß an Sicherheit zu gewährleisten.
+ **Automatisierte Rotation**- Nutzen Sie die automatischen Rotationsfeatures von Secrets Manager, um Ihre sensiblen Daten regelmäßig zu aktualisieren und über Ihre Anwendungen und Umgebungen zu verteilen.

## Allgemeine Überlegungen
<a name="dynamic-references-considerations"></a>

Die folgenden allgemeinen Überlegungen sollten Sie berücksichtigen, bevor Sie dynamische Verweise in Ihren CloudFormation Vorlagen angeben:
+ Vermeiden Sie es, dynamische Verweise oder sensible Daten in Ressourceneigenschaften aufzunehmen, die Teil der primären Kennung einer Ressource sind. CloudFormation verwendet möglicherweise den tatsächlichen Klartext-Wert in der primären Ressourcen-ID, was ein Sicherheitsrisiko darstellen könnte. Diese Ressourcen-ID kann in allen abgeleiteten Ausgaben oder Zielen vorkommen.

  Um herauszufinden, welche Ressourceneigenschaften den primären Bezeichner eines Ressourcentyps enthalten, lesen Sie die Dokumentation der Ressourcenreferenz für diese Ressource in [AWS Ressource und Eigenschaftstypen referenzieren](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html). Im Abschnitt **Return values** (Rückgbewerte) stellt der Rückgabewert der `Ref`-Funktion die Ressourceneigenschaften dar, welche die primäre Kennung des Ressourcentyps bilden.
+ Sie können bis zu 60 dynamische Referenzen in eine Stack-Vorlage aufnehmen.
+ Wenn Sie Transformationen (wie `AWS::Include` oder`AWS::Serverless`) verwenden, löst dynamische Verweise CloudFormation nicht auf, bevor die Transformation angewendet wird. Stattdessen wird die Zeichenkette des dynamischen Verweises an die Transformation übergeben und die Verweise werden aufgelöst, wenn Sie den Änderungssatz mithilfe der Vorlage ausführen.
+ Dynamische Referenzen können nicht für sichere Werte (wie die im Parameter Store oder Secrets Manager gespeicherten) in benutzerdefinierten Ressourcen verwendet werden. 
+ Dynamische Referenzen werden auch in `AWS::CloudFormation::Init`-Metadaten und Amazon EC2 `UserData`-Eigenschaften nicht unterstützt.
+ Erstellen Sie keine dynamische Referenz, die mit einem umgekehrten Schrägstrich (\$1) endet. CloudFormationkann diese Verweise nicht auflösen, was dazu führen wird, dass Stack-Operationen fehlschlagen.

Die folgenden Themen enthalten Informationen und andere Überlegungen zur Verwendung dynamischer Referenzen.

**Topics**
+ [Allgemeine Überlegungen](#dynamic-references-considerations)
+ [Abrufen eines Klartextwertes aus dem Systems Manager Parameter Store](dynamic-references-ssm.md)
+ [Abrufen eines sicheren String-Wertes aus dem Systems Manager Parameter Store](dynamic-references-ssm-secure-strings.md)
+ [Holen Sie ein Geheimnis oder einen geheimen Wert aus dem Secrets Manager](dynamic-references-secretsmanager.md)

# Abrufen eines Klartextwertes aus dem Systems Manager Parameter Store
<a name="dynamic-references-ssm"></a>

Wenn Sie eine CloudFormation Vorlage erstellen, möchten Sie möglicherweise Klartextwerte verwenden, die im Parameter Store gespeichert sind. Parameter Store ist eine Funktion von. AWS Systems Manager Eine Einführung in den Parameterspeicher finden Sie unter [AWS Systems Manager Parameterspeicher](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) im *AWS Systems Manager -Benutzerhandbuch*. 

Um einen Klartextwert aus dem Parameterspeicher in Ihrer Vorlage zu verwenden, verwenden Sie eine dynamische Referenz `ssm` . Diese Referenz ermöglicht Ihnen den Zugriff auf Werte von Parametern des Typs `String` oder `StringList` im Parameter Store. 

Um zu überprüfen, welche Version einer dynamischen Referenz `ssm` in einer Stapeloperation verwendet wird, erstellen Sie ein Änderungsset für die Stapeloperation. Überprüfen Sie dann die verarbeitete Vorlage auf der Registerkarte **Vorlage** . Weitere Informationen finden Sie unter [Einen Änderungssatz für einen CloudFormation Stapel erstellen](using-cfn-updating-stacks-changesets-create.md).

Bei der Verwendung von dynamischen `ssm`-Referenzen gibt es einige wichtige Dinge zu beachten:
+ CloudFormation unterstützt keine Drifterkennung bei dynamischen Referenzen. Bei dynamischen `ssm`-Referenzen, bei denen Sie die Parameterversion nicht angegeben haben, empfehlen wir, dass Sie, wenn Sie die Parameterversion in Systems Manager aktualisieren, auch einen Stackaktualisierungsvorgang für alle Stack durchführen, die die dynamische `ssm`-Referenz enthalten, um die neueste Parameterversion zu erhalten.
+ Um eine `ssm` dynamische Referenz im `Parameters` Abschnitt Ihrer CloudFormation Vorlage zu verwenden, müssen Sie eine Versionsnummer angeben. CloudFormation erlaubt es Ihnen nicht, auf einen Parameter Store-Wert ohne Versionsnummer in diesem Abschnitt zu verweisen. Alternativ können Sie Ihren Parameter auch als Systemmanager-Parametertyp in Ihrer Vorlage definieren. Wenn Sie dies tun, können Sie einen Systems Manager Manager-Parameterschlüssel als Standardwert für Ihren Parameter angeben. CloudFormation ruft dann die neueste Version des Parameterwerts aus dem Parameter Store ab, ohne dass Sie eine Versionsnummer angeben müssen. Dies kann Ihre Vorlagen einfacher und leichter zu pflegen machen. Weitere Informationen finden Sie unter [Geben Sie vorhandene Ressourcen zur Laufzeit mit von CloudFormation -bereitgestellten Parametertypen an](cloudformation-supplied-parameter-types.md).
+  CloudFormation Löst bei benutzerdefinierten Ressourcen die `ssm` dynamischen Verweise auf, bevor die Anforderung an die benutzerdefinierte Ressource gesendet wird.
+ CloudFormation unterstützt nicht die Verwendung dynamischer Verweise zum Verweisen auf einen Parameter, der von einem anderen AWS-Konto gemeinsam genutzt wird.
+ CloudFormation unterstützt die Verwendung von Systems Manager Manager-Parameterbeschriftungen in dynamischen Verweisen nicht.

## Berechtigungen
<a name="dynamic-references-ssm-permissions"></a>

Um einen im Systems Manager Parameter Store gespeicherten Parameter anzugeben, müssen Sie die Berechtigung haben, [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) für den angegebenen Parameter aufzurufen. Wie Sie IAM-Richtlinien erstellen, die den Zugriff auf bestimmte Systems Manager-Parameter ermöglichen, erfahren Sie unter [Einschränkung des Zugriffs auf Systems Manager-Parameter mit IAM-Richtlinien](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html) im *AWS Systems Manager -Benutzerhandbuch*.

## Referenzmuster
<a name="dynamic-references-ssm-pattern"></a>

Verwenden Sie das folgende Referenzmuster, um auf einen Klartextwert zu `ssm` verweisen, der in Ihrer CloudFormation Vorlage im Systems Manager Parameter Store gespeichert ist.

```
{{resolve:ssm:parameter-name:version}}
```

Ihre Referenz muss sich an das folgende reguläre Ausdrucksmuster für Parametername und Version halten:

```
{{resolve:ssm:[a-zA-Z0-9_.\-/]+(:\d+)?}}
```

`parameter-name`  
Der Name des Parameters im Parameter Store. Der Parametername unterscheidet Groß- und Kleinschreibung.  
Erforderlich

`version`  
Eine ganze Zahl, die die Version des zu verwendenden Parameters angibt. Wenn Sie nicht die genaue Version angeben, CloudFormation verwendet immer die neueste Version des Parameters, wenn Sie den Stack erstellen oder aktualisieren. Weitere Informationen finden Sie unter [Arbeiten mit Parameterversionen](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-versions.html) im *AWS Systems Manager -Benutzerhandbuch*.  
Optional.

## Beispiele
<a name="dynamic-references-ssm-examples"></a>

**Topics**
+ [Öffentlicher AMI ID Parameter](#dynamic-references-ssm-public-ami-example)
+ [Benutzerdefinierter AMI-ID-Parameter](#dynamic-references-ssm-custom-ami-example)

### Öffentlicher AMI ID Parameter
<a name="dynamic-references-ssm-public-ami-example"></a>

Das folgende Beispiel erstellt eine EC2-Instance, die auf einen öffentlichen AMI-Parameter verweist. Die dynamische Referenz ruft die neueste Amazon Linux 2023 AMI ID aus dem öffentlichen Parameter ab. Weitere Informationen über öffentliche Parameter finden Sie unter [Entdecken öffentlicher Parameter im Parameterspeicher](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-finding-public-parameters.html) im *AWS Systems Manager -Benutzerhandbuch*.

#### JSON
<a name="dynamic-references-ssm-public-ami-example.json"></a>

```
{
    "Resources": {
        "MyInstance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}",
                "InstanceType": "t2.micro"
            }
        }
    }
}
```

#### YAML
<a name="dynamic-references-ssm-public-ami-example.yaml"></a>

```
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}'
      InstanceType: t2.micro
```

### Benutzerdefinierter AMI-ID-Parameter
<a name="dynamic-references-ssm-custom-ami-example"></a>

Das folgende Beispiel erstellt eine EC2-Startvorlage, die auf eine benutzerdefinierte AMI-ID verweist, die im Parameter Store gespeichert ist. Die dynamische Referenz ruft die AMI-ID aus der Version *`2`* des Parameters `golden-ami` jedes Mal ab, wenn eine Instance aus der Startvorlage gestartet wird.

#### JSON
<a name="dynamic-references-ssm-custom-ami-example.json"></a>

```
{
    "Resources": {
        "MyLaunchTemplate": {
            "Type": "AWS::EC2::LaunchTemplate",
            "Properties": {
                "LaunchTemplateName": {
                    "Fn::Sub": "${AWS::StackName}-launch-template"
                },
                "LaunchTemplateData": {
                    "ImageId": "{{resolve:ssm:golden-ami:2}}",
                    "InstanceType": "t2.micro"
                }
            }
        }
    }
}
```

#### YAML
<a name="dynamic-references-ssm-custom-ami-example.yaml"></a>

```
Resources:
  MyLaunchTemplate:
    Type: AWS::EC2::LaunchTemplate
    Properties: 
      LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
      LaunchTemplateData:
        ImageId: '{{resolve:ssm:golden-ami:2}}'
        InstanceType: t2.micro
```

# Abrufen eines sicheren String-Wertes aus dem Systems Manager Parameter Store
<a name="dynamic-references-ssm-secure-strings"></a>

In können Sie vertrauliche Daten wie Passwörter oder Lizenzschlüssel verwenden CloudFormation, ohne sie direkt in Ihren Vorlagen verfügbar zu machen, indem Sie die sensiblen Daten als „sichere Zeichenfolge“ im AWS Systems Manager Parameter Store speichern. Eine Einführung in den Parameterspeicher finden Sie unter [AWS Systems Manager Parameterspeicher](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) im *AWS Systems Manager -Benutzerhandbuch*.

Um eine sichere Zeichenfolge für den Parameter Store in Ihrer Vorlage zu verwenden, verwenden Sie eine `ssm-secure` dynamische Referenz. CloudFormation speichert niemals den tatsächlichen Wert einer sicheren Zeichenfolge. Stattdessen speichert es nur die wörtliche dynamische Referenz, die den Klartext-Parameternamen der sicheren Zeichenfolge enthält. 

 CloudFormation Greift bei der Stackerstellung oder bei Aktualisierungen nach Bedarf auf den sicheren Zeichenkettenwert zu, ohne den tatsächlichen Wert preiszugeben. Sichere Zeichenfolgen können nur für Ressourceneigenschaften verwendet werden, die das dynamische Referenzmuster `ssm-secure` unterstützen. Weitere Informationen finden Sie unter [Ressourcen, die dynamische Parametermuster für sichere Zeichenfolgen unterstützen](#template-parameters-dynamic-patterns-resources).

CloudFormation gibt bei API-Aufrufen nicht den tatsächlichen Parameterwert für sichere Zeichenketten zurück. Sie gibt nur die wörtliche dynamische Referenz zurück. Beim Vergleich von Änderungen mithilfe von Änderungssätzen wird CloudFormation nur die wörtliche dynamische Referenzzeichenfolge verglichen. Es löst die tatsächlichen sicheren String-Werte nicht auf und vergleicht sie nicht.

Bei der Verwendung von dynamischen `ssm-secure`-Referenzen gibt es einige wichtige Dinge zu beachten:
+ CloudFormation kann nicht auf Parameter Store-Werte von anderen AWS-Konten zugreifen.
+ CloudFormation unterstützt nicht die Verwendung von Systems Manager Manager-Parameterbeschriftungen oder öffentlichen Parametern in dynamischen Verweisen.
+ In den Regionen `cn-north-1` und `cn-northwest-1` werden sichere Zeichenfolgen von Systems Manager nicht unterstützt.
+ Dynamische Verweise für sichere Werte, wie z. B.`ssm-secure`, werden derzeit in benutzerdefinierten Ressourcen nicht unterstützt.
+ Wenn ein Stack-Update rückgängig gemacht CloudFormation werden muss und die zuvor angegebene Version eines sicheren Zeichenkettenparameters nicht mehr verfügbar ist, schlägt der Rollback-Vorgang fehl. In solchen Fällen haben Sie zwei Möglichkeiten:
  + Verwenden Sie `CONTINUE_UPDATE_ROLLBACK`, um die Ressource zu überspringen.
  + Erstellen Sie den sicheren String-Parameter im Systems Manager Parameter Store neu und aktualisieren Sie ihn, bis die Parameterversion die in der Vorlage verwendete Version erreicht. Dann verwenden Sie `CONTINUE_UPDATE_ROLLBACK`, ohne die Ressource zu überspringen.

## Ressourcen, die dynamische Parametermuster für sichere Zeichenfolgen unterstützen
<a name="template-parameters-dynamic-patterns-resources"></a>

Zu den Ressourcen, die das dynamische Referenzmuster `ssm-secure` unterstützen, gehören:


| Ressource | Eigenschaftstyp | Eigenschaften | 
| --- | --- | --- | 
| [AWS::DirectoryService::MicrosoftAD](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-directoryservice-microsoftad.html) |  | `Password` | 
| [AWS::DirectoryService::SimpleAD](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-directoryservice-simplead.html) |  | `Password` | 
| [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html) |  | `AuthToken` | 
| [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) | [LoginProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-iam-user-loginprofile.html) | `Password` | 
| [AWS::KinesisFirehose::DeliveryStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-kinesisfirehose-deliverystream.html) | [RedshiftDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html) | `Password` | 
| [AWS::OpsWorks::App](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opsworks-app.html) | [Quelle](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-opsworks-app-source.html) | `Password` | 
| [AWS::OpsWorks::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opsworks-stack.html) | [CustomCookbooksSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-opsworks-stack-source.html) | `Password` | 
| [AWS::OpsWorks::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opsworks-stack.html) | [RdsDbInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-opsworks-stack-rdsdbinstance.html) | `DbPassword` | 
| [AWS: :RDS: DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbcluster.html) |  | `MasterUserPassword` | 
| [AWS: :RDS: DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html) |  | `MasterUserPassword`  | 
| [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-redshift-cluster.html) |  | `MasterUserPassword` | 

## Referenzmuster
<a name="dynamic-references-ssm-secure-pattern"></a>

Verwenden Sie das folgende Referenzmuster, um in Ihrer CloudFormation Vorlage auf einen sicheren Zeichenkettenwert aus dem Systems Manager Parameter Store zu `ssm-secure` verweisen.

```
{{resolve:ssm-secure:parameter-name:version}}
```

Ihre Referenz muss sich an das folgende reguläre Ausdrucksmuster für Parametername und Version halten:

```
{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
```

`parameter-name`  
Der Name des Parameters im Parameter Store. Der Parametername unterscheidet Groß- und Kleinschreibung.  
Erforderlich

`version`  
Eine ganze Zahl, die die Version des zu verwendenden Parameters angibt. Wenn Sie nicht die genaue Version angeben, CloudFormation verwendet immer die neueste Version des Parameters, wenn Sie den Stack erstellen oder aktualisieren. Weitere Informationen finden Sie unter [Arbeiten mit Parameterversionen](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-versions.html) im *AWS Systems Manager -Benutzerhandbuch*.  
Optional.

## Beispiel
<a name="dynamic-references-ssm-secure-example"></a>

Das folgende Beispiel verwendet eine dynamische Referenz `ssm-secure`, um das Passwort für einen IAM-Benutzer auf eine sichere Zeichenkette zu setzen, die im Parameterspeicher gespeichert ist. Wie angegeben, CloudFormation wird die Version *`10`* des `IAMUserPassword` Parameters für Stack- und Change-Set-Operationen verwendet.

### JSON
<a name="dynamic-references-ssm-secure-example.json"></a>

```
  "MyIAMUser": {
    "Type": "AWS::IAM::User",
    "Properties": {
      "UserName": "MyUserName",
      "LoginProfile": {
        "Password": "{{resolve:ssm-secure:IAMUserPassword:10}}"
      }
    }
  }
```

### YAML
<a name="dynamic-references-ssm-secure-example.yaml"></a>

```
  MyIAMUser:
    Type: AWS::IAM::User
    Properties:
      UserName: 'MyUserName'
      LoginProfile:
        Password: '{{resolve:ssm-secure:IAMUserPassword:10}}'
```

# Holen Sie ein Geheimnis oder einen geheimen Wert aus dem Secrets Manager
<a name="dynamic-references-secretsmanager"></a>

Secrets Manager ist ein Dienst, mit dem Sie Geheimnisse wie Datenbankanmeldedaten, 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 steuern, sodass Sie hartcodierte Anmeldeinformationen in Ihrem Code (einschließlich Passwörtern) durch einen API-Aufruf an Secrets Manager ersetzen können, um das Geheimnis programmgesteuert abzurufen. Weitere Informationen finden Sie unter [Was ist AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 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.

## Best Practices
<a name="dynamic-references-secretsmanager-best-practices"></a>

Folgen Sie diesen bewährten Methoden, wenn Sie dynamische Secrets Manager Manager-Referenzen in Ihren CloudFormation Vorlagen verwenden:
+ **Verwenden Sie versionslose Referenzen für Ihre CloudFormation Vorlagen** — Speichern Sie Anmeldeinformationen in Secrets Manager und verwenden Sie dynamische Verweise ohne Angabe von `version-stage` `version-id` Parametern, um korrekte Workflows für die geheime Rotation zu unterstützen.
+ **Nutzen Sie die automatische Rotation**- Verwenden Sie das automatische Rotationsfeature von Secrets Manager mit versionslosen dynamischen Referenzen für die Verwaltung von Zugangsdaten. Dadurch wird sichergestellt, dass Ihre Anmeldedaten regelmäßig aktualisiert werden, ohne dass Änderungen an der Vorlage erforderlich sind. Weitere Informationen finden Sie unter [Drehen von AWS Secrets Manager Geheimnissen](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html).
+ **Verwenden Sie versionierte Referenzen sparsam**- Geben Sie explizite `version-stage` oder `version-id` Parameter nur für bestimmte Szenarien wie Tests oder Rollback-Situationen an.

## Überlegungen
<a name="dynamic-references-secretsmanager-considerations"></a>

Bei der Verwendung von dynamischen `secretsmanager`-Referenzen sind einige wichtige Punkte zu beachten:
+ CloudFormation verfolgt nicht, welche Version eines Secrets in früheren Bereitstellungen verwendet wurde. Planen Sie Ihre Strategie zur Verwaltung von Geheimnissen sorgfältig, bevor Sie dynamische Referenzen einführen. Verwenden Sie nach Möglichkeit versionslose Referenzen, um die automatische Rotation von Geheimnissen zu nutzen. Überwachen und validieren Sie Ressourcenaktualisierungen, wenn Sie Änderungen an dynamischen Referenzkonfigurationen vornehmen, beispielsweise beim Übergang von nicht versionierten zu versionierten dynamischen Referenzen und umgekehrt.
+ Wenn nur der geheime Wert in Secrets Manager aktualisiert wird CloudFormation , wird der neue Wert nicht automatisch abgerufen. CloudFormation ruft den geheimen Wert nur bei der Ressourcenerstellung oder bei Aktualisierungen ab, bei denen die Ressource geändert wird, die die dynamische Referenz enthält. 

  Nehmen wir zum Beispiel an, Ihre Vorlage enthält eine [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html)-Ressource, bei der die `MasterPassword`-Eigenschaft auf eine dynamische Referenz von Secrets Manager eingestellt ist. Nachdem Sie einen Stapel aus dieser Vorlage erstellt haben, aktualisieren Sie den Wert des Geheimnisses in Secrets Manager. Die Eigenschaft `MasterPassword` behält jedoch den alten Kennwortwert bei. 

  Um den neuen geheimen Wert anzuwenden, müssen Sie die `AWS::RDS::DBInstance` Ressource in Ihrer CloudFormation Vorlage ändern und ein Stack-Update durchführen. 

  Um diesen manuellen Prozess in Zukunft zu vermeiden, sollten Sie den Secrets Manager verwenden, um das Geheimnis automatisch zu drehen. 
+ Dynamische Verweise auf sichere Werte, wie z. B.`secretsmanager`, werden derzeit in benutzerdefinierten Ressourcen nicht unterstützt.
+ Die dynamische `secretsmanager`-Referenz kann in allen Ressourceneigenschaften verwendet werden. Die Verwendung der `secretsmanager` 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.

## Berechtigungen
<a name="dynamic-references-secretsmanager-permissions"></a>

Um ein in Secrets Manager gespeichertes Geheimnis anzugeben, müssen Sie die Berechtigung haben, [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) für das Geheimnis aufzurufen.

## Referenzmuster
<a name="dynamic-references-secretsmanager-pattern"></a>

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 des Secrets.  
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 ARN des Geheimnisses an.  
Erforderlich

`secret-string`  
Der einzige unterstützte Wert ist `SecretString`. Der Standardwert ist `SecretString`.

`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 Sie `version-id` nicht an. Wenn Sie weder `version-stage` noch `version-id` angeben, dann ist der Standard die `AWSCURRENT`-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 Sie `version-stage` nicht angeben. Wenn Sie weder `version-stage` noch `version-id` angeben, dann ist der Standard die `AWSCURRENT`-Version.  
Dieses Segment darf nicht das Doppelpunktzeichen (`:`) enthalten.

## Beispiele
<a name="dynamic-references-secretsmanager-examples"></a>

**Topics**
+ [Abrufen von Benutzernamen und Passwort aus einem Geheimnis](#dynamic-references-secretsmanager-examples-user-name-and-password)
+ [Abrufen der gesamten SecretString](#dynamic-references-secretsmanager-examples-entire-secretstring)
+ [Abrufen eines Wertes aus einer bestimmten Version eines Geheimnisses](#dynamic-references-secretsmanager-examples-specific-version)
+ [Abrufen von Geheimnissen von einem anderen AWS-Konto](#dynamic-references-secretsmanager-examples-secrets-from-another-account)

### Abrufen von Benutzernamen und Passwort aus einem Geheimnis
<a name="dynamic-references-secretsmanager-examples-user-name-and-password"></a>

Das folgende [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html) Beispiel ruft die im `MySecret`-Geheimnis gespeicherten Werte für Benutzernamen und Kennwort ab. Dieses Beispiel zeigt das empfohlene Muster für versionslose dynamische Referenzen, das automatisch die `AWSCURRENT`-Version verwendet und Secrets Manager Rotationsworkflows unterstützt, ohne dass Vorlagenänderungen erforderlich sind.

#### JSON
<a name="dynamic-references-secretsmanager-examples-user-name-and-password.json"></a>

```
{
    "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
<a name="dynamic-references-secretsmanager-examples-user-name-and-password.yaml"></a>

```
  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}}'
```

### Abrufen der gesamten SecretString
<a name="dynamic-references-secretsmanager-examples-entire-secretstring"></a>

Die folgende dynamische Referenz ruft die `SecretString` für `MySecret`ab.

```
{{resolve:secretsmanager:MySecret}}
```

Alternative Vorgehensweise:

```
{{resolve:secretsmanager:MySecret::::}}
```

### Abrufen eines Wertes aus einer bestimmten Version eines Geheimnisses
<a name="dynamic-references-secretsmanager-examples-specific-version"></a>

Die folgende dynamische Referenz ruft den Wert `password` für die Version `AWSPREVIOUS` von `MySecret`ab.

```
{{resolve:secretsmanager:MySecret:SecretString:password:AWSPREVIOUS}}
```

### Abrufen von Geheimnissen von einem anderen AWS-Konto
<a name="dynamic-references-secretsmanager-examples-secrets-from-another-account"></a>

Der folgende dynamische Verweis ruft das `SecretString` für `MySecret` ab, das in einem anderen AWS-Konto enthalten ist. Sie müssen den vollständigen geheimen ARN angeben, um auf Geheimnisse in einem anderen zugreifen zu können AWS-Konto.

```
{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret}}
```

Der folgende dynamische Verweis ruft den Wert `password` für `MySecret` ab, der in einem anderen AWS-Konto enthalten ist. Sie müssen den vollständigen geheimen ARN angeben, um auf Geheimnisse in einem anderen zugreifen zu können AWS-Konto.

```
{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret:SecretString:password}}
```