

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.

# Verwenden von Geheimnissen für den Zugriff auf AWS Database Migration Service Endpunkte
<a name="security_iam_secretsmanager"></a>

Denn ein *Geheimnis* ist ein verschlüsselter Schlüssel AWS DMS, den Sie verwenden können, um eine Reihe von Benutzeranmeldeinformationen darzustellen, um die Datenbankverbindung für einen unterstützten AWS DMS Quell- oder Zielendpunkt durch *geheime Authentifizierung* zu authentifizieren. Für einen Oracle-Endpunkt, der auch Oracle Automatic Storage Management (ASM) verwendet, ist ein zusätzliches Geheimnis AWS DMS erforderlich, das die Benutzeranmeldedaten für den Zugriff auf Oracle ASM darstellt.

Sie können den oder die geheimen Schlüssel, die für die geheime Authentifizierung AWS DMS erforderlich sind AWS Secrets Manager, mithilfe eines Dienstes erstellen, mit dem Anmeldeinformationen für den Zugriff auf Anwendungen, Dienste und IT-Ressourcen in der Cloud und vor Ort sicher erstellt, gespeichert und abgerufen werden können. Dies umfasst die Unterstützung der automatischen regelmäßigen Rotation des verschlüsselten Secret-Werts ohne Ihr Eingreifen, wodurch zusätzliche Sicherheit für Ihre Anmeldeinformationen gewährleistet wird. Wenn Sie die Rotation geheimer Werte aktivieren, wird AWS Secrets Manager auch sichergestellt, dass diese geheime Wertrotation ohne Auswirkungen auf Datenbankmigrationen erfolgt, die auf dem Geheimnis beruhen. Um eine Endpunkt-Datenbankverbindung verborgen zu authentifizieren, erstellen Sie ein Secret, dessen Identität oder ARN Sie `SecretsManagerSecretId` zuweisen und das Sie in Ihre Endpunkteinstellungen aufnehmen. Um Oracle ASM als Teil eines Oracle-Endpunkts verborgen zu authentifizieren, erstellen Sie ein Secret, dessen Identität oder ARN Sie `SecretsManagerOracleAsmSecretId` zuweisen und das Sie in Ihre Endpunkteinstellungen aufnehmen.

**Anmerkung**  
Sie können keine von Amazon RDS Aurora verwalteten Master-Anmeldeinformationen verwenden. Diese Anmeldeinformationen enthalten keine Host- oder Portinformationen, die AWS DMS zum Herstellen von Verbindungen erforderlich sind. Erstellen Sie stattdessen einen neuen Benutzer und ein neues Secret. Informationen zum Erstellen eines Benutzers und eines Secrets finden Sie im Folgenden unter [Verwenden Sie die AWS-Managementkonsole , um eine geheime und geheime Zugriffsrolle zu erstellen](#security_iam_secretsmanager.console).

Weitere Informationen finden Sie AWS Secrets Manager unter [Was ist AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) im *AWS Secrets Manager Benutzerhandbuch*.

AWS DMS unterstützt die geheime Authentifizierung für die folgenden lokalen oder AWS verwalteten Datenbanken auf unterstützten Quell- und Zielendpunkten:
+ Amazon DocumentDB
+ IBM Db2 (LUW)
+ Microsoft SQL Server
+ MongoDB
+ MySQL
+ Oracle
+ PostgreSQL
+ Amazon Redshift
+ SAP ASE

Um eine Verbindung zu einer dieser Datenbanken herzustellen, können Sie einen der folgenden Werte, aber nicht beide, als Teil Ihrer Endpunkteinstellungen eingeben:
+ Klartext-Werte zur Authentifizierung der Datenbankverbindung mithilfe der Einstellungen `UserName`, `Password`, `ServerName` und `Port`. Fügen Sie für einen Oracle-Endpunkt, der auch Oracle ASM verwendet, zusätzliche Klartext-Werte hinzu, um ASM mithilfe der Einstellungen `AsmUserName`, `AsmPassword` und `AsmServerName` zu authentifizieren.
+ Secret-Authentifizierung mit Werten für die Einstellungen `SecretsManagerSecretId` und `SecretsManagerAccessRoleArn`. Fügen Sie für einen Oracle-Endpunkt, der Oracle ASM verwendet, zusätzliche Werte für die Einstellungen `SecretsManagerOracleAsmSecretId` und `SecretsManagerOracleAsmAccessRoleArn` hinzu. Die Secret-Werte für diese Einstellungen können Folgendes beinhalten für: 
  + `SecretsManagerSecretId` – den vollständigen Amazon-Ressourcennamen (ARN), einen Teil des ARN oder den Anzeigenamen eines Secrets, das Sie für den Endpunktdatenbank-Zugriff in AWS Secrets Manager erstellt haben.
  + `SecretsManagerAccessRoleArn`— Der ARN einer geheimen Zugriffsrolle, die Sie in IAM erstellt haben, um in Ihrem Namen AWS DMS Zugriff auf dieses `SecretsManagerSecretId` Geheimnis zu gewähren.
  + `SecretsManagerOracleAsmSecretId` – den vollständigen Amazon-Ressourcennamen (ARN), einen Teil des ARN oder den Anzeigenamen eines Secrets, das Sie für den Zugriff auf Oracle SAM in AWS Secrets Manager erstellt haben.
  + `SecretsManagerOracleAsmAccessRoleArn` – den ARN einer geheimen Zugriffsrolle, die Sie in IAM erstellt haben, um AWS DMS in Ihrem Namen Zugriff auf dieses `SecretsManagerOracleAsmSecretId`-Secret zu gewähren.
**Anmerkung**  
Sie können auch eine einzelne geheime Zugriffsrolle verwenden, um Zugriff sowohl AWS DMS auf das Geheimnis als auch auf das `SecretsManagerSecretId` Geheimnis zu gewähren. `SecretsManagerOracleAsmSecretId` Wenn Sie diese einzelne geheime Zugriffsrolle für beide Secrets erstellen, müssen Sie `SecretsManagerAccessRoleArn` und `SecretsManagerOracleAsmAccessRoleArn` denselben ARN für diese Zugriffsrolle zuweisen. Wenn beispielsweise der ARN Ihrer geheimen Zugriffsrolle für beide Secrets der Variablen `ARN2xsecrets` zugewiesen ist, können Sie diese ARN-Einstellungen wie folgt festlegen:  

  ```
  SecretsManagerAccessRoleArn = ARN2xsecrets;
  SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;
  ```

  Weitere Informationen zum Erstellen dieser Werte finden Sie unter [Verwenden Sie die AWS-Managementkonsole , um eine geheime und geheime Zugriffsrolle zu erstellen](#security_iam_secretsmanager.console).

Nachdem Sie das erforderliche Secret und die Endpunkteinstellungen für die geheime Zugriffsrolle für Ihre Endpunkte erstellt und angegeben haben, aktualisieren Sie die Berechtigungen für die Benutzerkonten, die die API-Anfrage `CreateEndpoint` oder `ModifyEndpoint` ausführen werden, mit diesen Secret-Informationen. Stellen Sie sicher, dass diese Kontoberechtigungen die `IAM:GetRole` Erlaubnis für die geheime Zugriffsrolle und die `SecretsManager:DescribeSecret` Berechtigung für den geheimen Zugriff beinhalten. AWS DMS benötigt diese Berechtigungen, um sowohl die Zugriffsrolle als auch ihren geheimen Schlüssel zu überprüfen.

**So können Sie die erforderlichen Benutzerberechtigungen bereitstellen und überprüfen**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Identity and Access Management Konsole unter[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Wählen Sie **Benutzer** und dann die **Benutzer-ID** aus, die für die API-Aufrufe `CreateEndpoint` und `ModifyEndpoint` verwendet wird.

1. Wählen Sie auf der Registerkarte **Berechtigungen** die Option **\$1\$1 JSON** aus.

1. Vergewissern Sie sich, dass der Benutzer über die im Folgenden angezeigten Berechtigungen verfügt:

   ```
   {
   	"Statement": [{
   			"Effect": "Allow",
   			"Action": [
   				"iam:GetRole",
   				"iam:PassRole"
   			],
   			"Resource": "SECRET_ACCESS_ROLE_ARN"
   		},
   		{
   			"Effect": "Allow",
   			"Action": "secretsmanager:DescribeSecret",
   			"Resource": "SECRET_ARN"
   		}
   	]
   }
   ```

1. Wenn der Benutzer nicht über diese Berechtigungen verfügt, fügen Sie sie hinzu.

1. Wenn Sie eine IAM-Rolle für DMS-API-Aufrufe verwenden, wiederholen Sie die obigen Schritte für die entsprechende Rolle.

1. Öffnen Sie ein Terminal und überprüfen Sie AWS CLI mit dem, ob die Berechtigungen korrekt erteilt wurden, indem Sie die oben verwendete Rolle oder den Benutzer annehmen.

   1. Überprüfen Sie die Benutzerberechtigungen für die SecretAccessRole Verwendung des `get-role` IAM-Befehls.

      ```
      aws iam get-role --role-name ROLE_NAME
      ```

      Ersetzen Sie *ROLE\$1NAME* durch den Namen von. `SecretsManagerAccessRole`

      Wenn der Befehl eine Fehlermeldung zurückgibt, stellen Sie sicher, dass die Berechtigungen korrekt erteilt wurden.

   1. Überprüfen Sie die Benutzerberechtigung für das Secret mithilfe des Secrets-Manager-Befehls `describe-secret`.

      ```
      aws secretsmanager describe-secret --secret-id SECRET_NAME OR SECRET_ARN --region=REGION_NAME
      ```

      Der Benutzer kann der Anzeigename, ein Teil des ARN oder der vollständige ARN sein. Weitere Informationen finden Sie unter [describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html).

      Wenn der Befehl eine Fehlermeldung zurückgibt, stellen Sie sicher, dass die Berechtigungen korrekt erteilt wurden.

## Verwenden Sie die AWS-Managementkonsole , um eine geheime und geheime Zugriffsrolle zu erstellen
<a name="security_iam_secretsmanager.console"></a>

Sie können die verwenden AWS-Managementkonsole , um ein Geheimnis für die Endpunktauthentifizierung zu erstellen und die Richtlinie und Rolle zu erstellen, die den Zugriff auf das Geheimnis in Ihrem Namen ermöglichen AWS DMS .

**Um ein Geheimnis zu erstellen AWS-Managementkonsole , das zur Authentifizierung einer Datenbank für Quell- und Zielendpunktverbindungen verwendet werden AWS DMS kann**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Secrets Manager Konsole unter[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Wählen Sie **Store a new secret** (Ein neues Secret speichern).

1. Wählen Sie unter **Secret-Typ auswählen** auf der Seite **Ein neues Secret speichern** die Option **Anderer Secret-Typ** und anschließend **Klartext** aus.
**Anmerkung**  
Dies ist die einzige Stelle, an der Sie ab diesem Zeitpunkt Klartext-Anmeldeinformationen eingeben müssen, um eine Verbindung zu Ihrer Endpunktdatenbank herzustellen.

1. Im Feld **Klartext**: 
   + Geben Sie für ein Secret, dessen Identität Sie `SecretsManagerSecretId` zuweisen, die folgende JSON-Struktur ein.

     ```
     {
       "username": db_username,
       "password": db_user_password,
       "port": db_port_number,
       "host": db_server_name
     }
     ```
**Anmerkung**  
Diese Liste enthält die für die Authentifizierung der Endpunktdatenbank mindestens erforderlichen JSON-Elemente. Sie können zusätzliche JSON-Endpunkteinstellungen als JSON-Elemente in Kleinbuchstaben hinzufügen, wenn Sie möchten. AWS DMS ignoriert jedoch alle zusätzlichen JSON-Elemente für die Endpunktauthentifizierung.

     Hier ist `db_username` der Name des Benutzers, der auf die Datenbank zugreift, `db_user_password` ist das Passwort des Datenbankbenutzers, `db_port_number` die Portnummer für den Zugriff auf die Datenbank und `db_server_name` der Name (die Adresse) des Datenbankservers im Internet, wie im folgenden Beispiel gezeigt.

     ```
     {
       "username": "admin",
       "password": "some_password",
       "port": "8190",
       "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com"
     }
     ```
   + Geben Sie für ein Secret, dessen Identität Sie `SecretsManagerOracleAsmSecretId` zuweisen, die folgende JSON-Struktur ein.

     ```
     {
       "asm_user": asm_username,
       "asm_password": asm_user_password,
       "asm_server": asm_server_name
     }
     ```
**Anmerkung**  
Diese Liste enthält die für die Authentifizierung von Oracle ASM für einen Oracle-Endpunkt mindestens erforderlichen JSON-Elemente. Darüber hinaus ist dies die vollständige Liste, die Sie auf der Grundlage der verfügbaren Oracle-ASM-Endpunkteinstellungen angeben können.

     Hier ist `asm_username` der Name des Benutzers, der auf Oracle ASM zugreift, `asm_user_password` das Passwort des Oracle-ASM-Benutzers und `asm_server_name` der Name (die Adresse) des Oracle-ASM-Servers im Internet, einschließlich des Ports, wie im folgenden Beispiel gezeigt.

     ```
     { 
       "asm_user": "oracle_asm_user", 
       "asm_password": "oracle_asm_password",
       "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" 
     }
     ```

1. Wählen Sie einen AWS KMS Verschlüsselungsschlüssel aus, um das Geheimnis zu verschlüsseln. Sie können den Standard-Verschlüsselungsschlüssel akzeptieren, der von für Ihren Dienst erstellt wurde, AWS Secrets Manager oder einen AWS KMS Schlüssel auswählen, den Sie selbst erstellen.

1. Geben Sie einen Namen für den Verweis auf dieses Secret und eine optionale Beschreibung an. Dies ist der Anzeigename, den Sie als Wert für `SecretsManagerSecretId` oder `SecretsManagerOracleAsmSecretId` verwenden.

1. Wenn Sie die automatische Rotation für den geheimen Schlüssel aktivieren möchten, müssen Sie eine AWS Lambda Funktion auswählen oder erstellen, die berechtigt ist, die Anmeldeinformationen für den geheimen Schlüssel wie beschrieben rotieren zu lassen. Bevor Sie jedoch die automatische Rotation für die Verwendung Ihrer Lambda-Funktion einrichten, müssen Sie sicherstellen, dass die Konfigurationseinstellungen für die Funktion dem Wert der Umgebungsvariablen `EXCLUDE_CHARACTERS` die folgenden vier Zeichen hinzufügen.

   ```
   ;.:+{}*&,%\
   ```

   AWS DMS erlaubt diese Zeichen nicht in Passwörtern, die für Endpunkt-Anmeldeinformationen verwendet werden. Wenn Sie Ihre Lambda-Funktion so konfigurieren, dass sie ausgeschlossen werden, generiert AWS Secrets Manager diese Zeichen nicht als Teil der rotierten Passwortwerte. Nachdem Sie die automatische Rotation für die Verwendung Ihrer Lambda-Funktion eingerichtet haben, wird das Geheimnis AWS Secrets Manager sofort rotiert, um Ihre geheime Konfiguration zu validieren.
**Anmerkung**  
Je nach der Konfiguration Ihrer Datenbank-Engine ruft Ihre Datenbank die rotierten Anmeldeinformationen möglicherweise nicht ab. In diesem Fall müssen Sie die Aufgabe manuell neu starten, um die Anmeldeinformationen zu aktualisieren.

1. Überprüfen und speichern Sie Ihr Geheimnis in. AWS Secrets Manager Sie können dann jedes Geheimnis anhand seines benutzerfreundlichen Namens in nachschlagen und dann den geheimen ARN als Wert für `SecretsManagerSecretId` oder `SecretsManagerOracleAsmSecretId` nach Bedarf abrufen AWS Secrets Manager, um den Zugriff auf Ihre Endpunkt-Datenbankverbindung und Oracle ASM (falls verwendet) zu authentifizieren.

**Um die geheime Zugriffsrichtlinie und Rolle zu erstellen, mit der Sie Ihr `SecretsManagerAccessRoleArn` oder festlegen können`SecretsManagerOracleAsmAccessRoleArn`, was AWS DMS den AWS Secrets Manager Zugriff auf Ihr entsprechendes Geheimnis ermöglicht**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Identity and Access Management (IAM-) Konsole unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Wählen Sie **Richtlinien** und anschließend **Richtlinie erstellen** aus.

1. Wählen Sie **JSON** aus und geben Sie die folgende Richtlinie ein, um den Zugriff auf Ihr Secret und dessen Entschlüsselung zu ermöglichen.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "secretsmanager:GetSecretValue",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   Hier ist `secret_arn` der ARN Ihres Secrets, den Sie wie erforderlich von `SecretsManagerSecretId` oder `SecretsManagerOracleAsmSecretId` abrufen können, und `kms_key_arn` der ARN des AWS KMS -Schlüssels, mit dem Sie Ihr Secret verschlüsseln, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**Anmerkung**  
Wenn Sie den standardmäßigen Verschlüsselungsschlüssel verwenden AWS Secrets Manager, der von erstellt wurde, müssen Sie die AWS KMS Berechtigungen für `kms_key_arn` nicht angeben.  
Wenn Sie möchten, dass Ihre Richtlinie Zugriff auf beide Geheimnisse gewährt, geben Sie einfach ein zusätzliches JSON-Ressourcenobjekt für das andere an*secret\$1arn*.  
Wenn sich Ihr Secret in einem anderen Konto befindet, benötigt die Rolle `SecretsManagerAccessRoleArn` eine zusätzliche Richtlinie, um das kontoübergreifende Secret zu überprüfen. Fügen Sie der Richtlinie in solchen Anwendungsfällen die Aktion `secretsmanager:DescribeSecret` hinzu. Weitere Informationen zur Einrichtung eines kontoübergreifenden Geheimnisses finden Sie unter [Berechtigungen für AWS Secrets Manager Manager-Geheimnisse für Benutzer in einem anderen Konto](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html).

1. Überprüfen und erstellen Sie die Richtlinie mit einem Anzeigenamen und einer optionalen Beschreibung.

1. Wählen Sie **Rollen** und anschließend **Rolle erstellen** aus.

1. Wählen Sie als Typ der vertrauenswürdigen Entität **AWS -Service** aus.

1. Wählen Sie in der Liste der Services **DMS** als vertrauenswürdigen Service aus und wählen Sie dann **Weiter: Berechtigungen** aus.

1. Suchen Sie nach der Richtlinie, die Sie in Schritt 4 erstellt haben, und fügen Sie sie an. Fügen Sie dann alle Tags hinzu und überprüfen Sie Ihre Rolle. Bearbeiten Sie an dieser Stelle die Vertrauensstellungen für die Rolle, sodass Ihr AWS DMS regionaler Dienstprinzipal als vertrauenswürdige Entität verwendet wird. Dieser Prinzipal weist das folgende Format auf:

   ```
   dms.region-name.amazonaws.com
   ```

   Hier ist *`region-name`* der Name Ihrer Region, z. B. `us-east-1`. Somit folgt ein AWS DMS regionaler Service Principal für diese Region.

   ```
   dms.us-east-1.amazonaws.com
   ```

1. Nachdem Sie die vertrauenswürdige Entität für die Rolle bearbeitet haben, erstellen Sie die Rolle mit einem Anzeigenamen und einer optionalen Beschreibung. Sie können Ihre neue Rolle jetzt anhand ihres Anzeigenamens in IAM suchen und dann den Rollen-ARN als Wert für `SecretsManagerAccessRoleArn` oder `SecretsManagerOracleAsmAccessRoleArn` abrufen, um Ihre Endpunkt-Datenbankverbindung zu authentifizieren.

**So verwenden Sie Secrets Manager mit einer Replikations-Instance in einem privaten Subnetz**

1. Erstellen Sie einen Secrets-Manager-VPC-Endpunkt und notieren Sie sich das DNS für den Endpunkt. Weitere Informationen zum Erstellen eines Secrets-Manager-VPC-Endpunkts finden Sie unter [Connecting to Secrets Manager through a VPC endpoint](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html#vpc-endpoint) []() im *Benutzerhandbuch für AWS Secrets Manager*.

1. Lassen Sie für die Eingangsregeln für VPC-Endpunkt-Sicherheitsgruppen HTTPS-Verkehr von der privaten IP-Adresse oder den Sicherheitsgruppen der Replikationsinstanz zu, die an Replikationsinstanzen angehängt sind.

1. Lassen Sie für die Ausgangsregeln für die Sicherheitsgruppe der Replikations-Instance den gesamten Datenverkehr für das Ziel `0.0.0.0/0` zu.

1. Legen Sie das zusätzliche Verbindungsattribut `secretsManagerEndpointOverride=secretsManager endpoint DNS` des Endpunkts fest, um das DNS des Secrets-Manager-VPC-Endpunkts bereitzustellen, wie im folgenden Beispiel gezeigt.

   ```
   secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com
   ```