Verwenden von Secrets für den Zugriff auf AWS Database Migration Service -Endpunkte - AWS Database Migration Service

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 Secrets für den Zugriff auf AWS Database Migration Service -Endpunkte

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 Management Console , um eine geheime und geheime Zugriffsrolle zu erstellen.

Weitere Informationen finden Sie AWS Secrets Manager unter Was ist AWS Secrets Manager? 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 Management Console , um eine geheime und geheime Zugriffsrolle zu erstellen.

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 Management Console und öffnen Sie die AWS Identity and Access Management Konsole unterhttps://console.aws.amazon.com/iam/.

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

  3. Wählen Sie auf der Registerkarte Berechtigungen die Option {} JSON aus.

  4. 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" } ] }
  5. Wenn der Benutzer nicht über diese Berechtigungen verfügt, fügen Sie sie hinzu.

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

  7. Ö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_NAME durch den Namen von. SecretsManagerAccessRole

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

    2. Ü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.

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

Verwenden Sie die AWS Management Console , um eine geheime und geheime Zugriffsrolle zu erstellen

Sie können die verwenden AWS Management Console , 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 Management Console , das zur Authentifizierung einer Datenbank für Quell- und Zielendpunktverbindungen verwendet werden AWS DMS kann
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Secrets Manager Konsole unterhttps://console.aws.amazon.com/secretsmanager/.

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

  3. 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.

  4. 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" }
  5. 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.

  6. 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.

  7. 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.

  8. Ü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önnenSecretsManagerOracleAsmAccessRoleArn, was AWS DMS den AWS Secrets Manager Zugriff auf Ihr entsprechendes Geheimnis ermöglicht
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS Identity and Access Management (IAM-) Konsole unter https://console.aws.amazon.com/iam/.

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

  3. 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.

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

    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.

    { "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 ansecret_arn.

    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.

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

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

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

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

  8. 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
  9. 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 im Benutzerhandbuch für AWS Secrets Manager.

  2. Fügen Sie die Sicherheitsgruppe der Replikations-Instance an den Secrets-Manager-VPC-Endpunkt an.

  3. 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.

  4. 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