Einrichten der Kerberos-Authentifizierung für DB-Cluster von Aurora MySQL - Amazon Aurora

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.

Einrichten der Kerberos-Authentifizierung für DB-Cluster von Aurora MySQL

Verwenden Sie AWS Managed Microsoft AD, die Kerberos-Authentifizierung für einen DB-Cluster von Aurora MySQL einzurichten. Um die Kerberos-Authentifizierung einzurichten, führen Sie die folgenden Schritte aus.

Schritt 1: Erstellen eines Verzeichnisses mit AWS Managed Microsoft AD

AWS Directory Service erstellt ein vollständig verwaltetes Active Directory in der AWS Cloud. Wenn Sie ein AWS Managed Microsoft AD-Verzeichnis erstellen, erstellt AWS Directory Service zwei Domänencontroller und DNS-Server (Domain Name System) in Ihrem Namen. Die Verzeichnisserver werden in verschiedenen Subnetzen in einer VPC erstellt. Diese Redundanz trägt dazu bei, dass Ihr Verzeichnis auch im Fehlerfall erreichbar bleibt.

Wenn Sie ein AWS Managed Microsoft AD-Verzeichnis erstellen, führt AWS Directory Service die folgenden Aufgaben in Ihrem Namen aus:

  • Einrichten eines Active Directory innerhalb der VPC.

  • Erstellt ein Konto für den Verzeichnisadministrator mit dem Benutzernamen Admin und dem angegebenen Passwort. Mit diesem Konto verwalten Sie das Verzeichnis.

    Anmerkung

    Stellen Sie sicher, dass Sie dieses Passwort speichern. AWS Directory Service speichert es nicht. Sie können es zurücksetzen, aber Sie können es nicht abrufen.

  • Erstellt eine Sicherheitsgruppe für die Verzeichniscontroller.

Wenn Sie AWS Managed Microsoft AD starten, erstellt AWS eine Organisationseinheit (OU), die alle Objekte Ihres Verzeichnisses enthält. Diese OU erhält den NetBIOS-Namen, den Sie beim Erstellen des Verzeichnisses eingegeben haben. Sie befindet sich im Stammverzeichnis der Domain, das sich im Besitz und Verwaltungsbereich von AWS befindet.

Das Admin-Konto, das mit Ihrem AWS Managed Microsoft AD-Verzeichnis erstellt wurde, hat Berechtigungen für die häufigsten administrativen Aktivitäten für Ihre OU, einschließlich:

  • Erstellen, Aktualisieren oder Löschen von Benutzern

  • Hinzufügen von Ressourcen zu Ihrer Domain, etwa Datei- oder Druckserver, und anschließendes Gewähren der zugehörigen Ressourcenberechtigungen für Benutzer in der OU

  • Erstellen weiterer OUs und Container

  • Delegieren von Befugnissen

  • Wiederherstellen von gelöschten Objekten aus dem Active Directory-Papierkorb

  • Ausführen von AD- und DNS-Windows- PowerShell Modulen auf dem Active Directory Web Service

Das Admin-Konto hat auch die Berechtigung, die folgenden domänenweiten Aktivitäten durchzuführen:

  • Verwalten von DNS-Konfigurationen (Hinzufügen, Entfernen oder Aktualisieren von Datensätzen, Zonen und Weiterleitungen)

  • Aufrufen von DNS-Ereignisprotokollen

  • Anzeigen von Sicherheitsereignisprotokollen

So erstellen Sie ein Verzeichnisses mit AWS Managed Microsoft AD
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die AWS Directory Service-Konsole unter https://console.aws.amazon.com/directoryservicev2/.

  2. Wählen Sie im Navigationsbereich Directories (Verzeichnisse) aus. Wählen Sie denn Set up Directory (Verzeichnis einrichten) aus.

  3. Wählen Sie AWS Managed Microsoft AD aus. AWS Managed Microsoft AD ist die einzige Option, die Sie derzeit mit Amazon RDS verwenden können.

  4. Geben Sie die folgenden Informationen ein:

    DNS-Name des Verzeichnisses

    Den vollständig qualifizierten Namen für das Verzeichnis, z. B. corp.example.com.

    NetBIOS-Name des Verzeichnisses

    Die kurzen Namen für das Verzeichnis, z. B. CORP.

    Verzeichnisbeschreibung

    (Optional) Eine Beschreibung für das Verzeichnis.

    Administratorpasswort

    Das Passwort für den Verzeichnisadministrator. Während des Verzeichniserstellungsprozesses wird ein Administratorkonto mit dem Benutzernamen Admin und diesem Passwort angelegt.

    Das Passwort für den Verzeichnisadministrator das nicht das Wort "admin" enthalten. Beachten Sie beim Passwort die Groß- und Kleinschreibung und es muss 8 bis 64 Zeichen lang sein. Zudem muss es mindestens ein Zeichen aus dreien der vier folgenden Kategorien enthalten:

    • Kleinbuchstaben (a–z)

    • Großbuchstaben (A–Z)

    • Zahlen (0–9)

    • Nicht-alphanumerische Zeichen (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Passwort bestätigen

    Das wiederholte Administrator-Passwort.

  5. Wählen Sie Weiter aus.

  6. Geben Sie die folgenden Informationen in den Abschnitt Networking ein. Wählen Sie dann Next (Weiter) aus:

    VPC

    Die VPC für das Verzeichnis. Erstellen Sie den DB-Cluster von Aurora MySQL in derselben VPC.

    Subnetze

    Subnetze für die Verzeichnisserver. Die beiden Subnetze müssen zu verschiedenen Availability-Zonen gehören.

  7. Prüfen Sie die Verzeichnisinformationen und nehmen Sie ggf. Änderungen vor. Wenn die Informationen richtig sind, wählen Sie Create directory (Verzeichnis erstellen).

    Verzeichnis-Detailseite während der Erstellung

Es dauert einige Minuten, bis das Verzeichnis erstellt wird. Wenn es erfolgreich erstellt wurde, ändert sich der Wert Status in Active (Aktiv).

Um Informationen über Ihr Verzeichnis anzuzeigen, wählen Sie den Verzeichnisnamen in der Verzeichnisliste aus. Notieren Sie sich den Wert Verzeichnis-ID. Sie benötigen diesen Wert, wenn Sie Ihren DB-Cluster von Aurora MySQL erstellen oder ändern.

Verzeichnis-ID auf der Seite mit den Verzeichnisdetails

Schritt 2: (Optional) Erstellen einer Vertrauensstellung für ein On-Premise-Active-Directory

Wenn Sie Ihr eigenes lokales Microsoft Active Directory nicht verwenden möchten, fahren Sie mit for Schritt 3: Erstellen einer IAM-Rolle zur Verwendung durch Amazon Aurora.

Um die Kerberos-Authentifizierung mit Ihrem lokalen Active Directory zu verwenden, müssen Sie mittels Gesamtstruktur-Vertrauensstellung eine vertrauenswürdige Domain-Beziehung zwischen Ihrem lokalen Microsoft Active Directory und dem AWS Managed Microsoft AD-Verzeichnis (erstellt in Schritt 1: Erstellen eines Verzeichnisses mit AWS Managed Microsoft AD) erstellen. Die Vertrauensstellung kann einseitig erfolgen, wobei das AWS Managed Microsoft AD-Verzeichnis dem lokalen Microsoft Active Directory vertraut. Die Vertrauensstellung kann auch bidirektional erfolgen, wobei beide Active Directories einander vertrauen. Weitere Informationen zur Einrichtung einer gesamtstrukturbasierten Vertrauensstellung mit AWS Directory Service finden Sie unter Wann sollte eine Vertrauensstellung erstellt werden im AWS Directory Service-Administrationshandbuch.

Anmerkung

Verwendung eines lokalen Microsoft Active Directory:

  • Windows-Clients müssen eine Verbindung mithilfe des Domänennamens des AWS Directory Service auf dem Endpunkt statt rds.amazonaws.com herstellen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit Aurora MySQL mit Kerberos-Authentifizierung.

  • Windows-Clients können keine Verbindung über benutzerdefinierten Aurora-Endpunkte herstellen. Weitere Informationen hierzu finden Sie unter Amazon Aurora-Verbindungsverwaltung.

  • Globale Datenbanken:

    • Windows-Clients können sich nur über Instance- oder Cluster-Endpunkte in der primären AWS-Region der globalen Datenbank verbinden.

    • Windows-Clients können sich nicht über Cluster-Endpunkte in sekundären AWS-Regionen verbinden.

Stellen Sie sicher, dass der lokale Microsoft Active Directory-Domänenname ein DNS-Suffix-Routing enthält, das der neu erstellten Vertrauensstellung entspricht. Im folgenden Screenshot wird ein Beispiel gezeigt.

DNS-Routing entspricht der erstellten Vertrauensstellung

Schritt 3: Erstellen einer IAM-Rolle zur Verwendung durch Amazon Aurora

Damit Amazon Aurora AWS Directory Service für Sie aufrufen kann, ist eine AWS Identity and Access Management (IAM)-Rolle erforderlich, die die verwaltete IAM-Richtlinie AmazonRDSDirectoryServiceAccess verwendet. Diese Rolle ermöglicht es Aurora, Aufrufe an AWS Directory Service durchzuführen.

Wenn Sie einen DB-Cluster mit der AWS Management Console erstellen und über die Berechtigung iam:CreateRole verfügen, erstellt die Konsole diese Rolle automatisch. In diesem Fall lautet der Rollenname rds-directoryservice-kerberos-access-role. Andernfalls müssen Sie die IAM-Rolle manuell erstellen. Wenn Sie diese IAM-Rolle erstellen, wählen Sie Directory Service, und hängen die von AWS verwaltete Richtlinie AmazonRDSDirectoryServiceAccess an.

Weitere Informationen über das Erstellen von IAM-Rollen für einen Service finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service im IAM-Benutzerhandbuch.

Optional können Sie Richtlinien mit den erforderlichen Berechtigungen erstellen, anstatt die verwaltete IAM-Richtlinie zu verwende AmazonRDSDirectoryServiceAccess. In diesem Fall muss die IAM-Rolle die folgende IAM-Vertrauensrichtlinie haben.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Die Rolle muss auch über die folgende IAM-Rollenrichtlinie verfügen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Schritt 4: Anlegen und Konfigurieren von Benutzern

Sie können Benutzer mit dem Tool "Active Directory-Benutzer und -Computer" erstellen. Dieses Tool ist Teil der Tools Active Directory Domain Services und Active Directory Lightweight Directory Services. „Benutzer“ sind Einzelpersonen oder Entitäten, die Zugriff auf Ihr Verzeichnis haben.

Wenn Sie Benutzer in einem AWS Directory Service-Verzeichnis erstellen möchten, verwenden Sie eine On-Premises oder Amazon-EC2-Instance auf der Basis von Microsoft Windows, die mit Ihrem AWS Directory Service-Verzeichnis verbunden ist. Gleichzeitig müssen Sie bei der Instance als Benutzer angemeldet sein, der über Berechtigungen zum Erstellen von Benutzern verfügt. Weitere Informationen finden Sie unter Verwalten von Benutzern und GruppenAWS Managed Microsoft AD imAWS Directory-Service-Administrationshandbuch.

Schritt 5: Erstellen oder Ändern eines DB-Clusters von Aurora MySQL

Erstellen oder ändern Sie einen DB-Cluster von Aurora MySQL zur Verwendung mit Ihrem Verzeichnis. Sie können die Konsole, AWS CLI oder RDS-API verwenden, um einen DB-Cluster einem Verzeichnis zuzuordnen. Sie können diese Aufgabe mit einer der folgenden Methoden durchführen:

Die Kerberos-Authentifizierung wird nur für DB-Cluster von Aurora MySQL in einer VPC unterstützt. Der DB-Cluster kann sich in derselben VPC wie das Verzeichnis oder in einer anderen VPC befinden. Die VPC des DB-Clusters muss über eine VPC-Sicherheitsgruppe verfügen, die ausgehende Kommunikation mit Ihrem Verzeichnis zulässt.

Wenn Sie die Konsole zum Erstellen, Ändern oder Wiederherstellen eines DB-Clusters verwenden, wählen Sie Kerberos-Authentifizierung im Datenbank-Authentifizierung-Abschnitt. Wählen Sie Verzeichnis durchsuchen und dann das Verzeichnis aus, oder klicken Sie auf Neues Verzeichnis erstellen.

Kerberos-Authentifizierungseinstellung beim Erstellen eines DB-Clusters

Wenn Sie die AWS CLI oder die RDS-API verwenden, verknüpfen Sie einen DB-Cluster mit einem Verzeichnis. Die folgenden Parameter sind erforderlich, damit der DB-Cluster das von Ihnen erstellte Domain-Verzeichnis verwendet:

  • Für den --domain-Parameter verwenden Sie den Domänenbezeichner („d-*“-Bezeichner), der beim Erstellen des Verzeichnisses generiert wurde.

  • Verwenden Sie für den --domain-iam-role-name-Parameter die von Ihnen erstellte Rolle, die die verwaltete IAM-Richtlinie AmazonRDSDirectoryServiceAccess verwendet.

Beispielsweise ändert der folgende CLI-Befehl einen DB-Cluster so, dass er ein Verzeichnis verwendet.

Für Linux, macOSoder Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --domain d-ID \ --domain-iam-role-name role-name

Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --domain d-ID ^ --domain-iam-role-name role-name
Wichtig

Wenn Sie einen DB-Cluster ändern, um die Kerberos-Authentifizierung zu aktivieren, starten Sie die Reader-DB-Instances neu, nachdem Sie die Änderung vorgenommen haben.

Schritt 6: Erstellen von Aurora-MySQL-Benutzern, die die Kerberos-Authentifizierung verwenden

Der DB-Cluster ist der AWS Managed Microsoft AD-Domain beigetreten. Auf diese Weise können Sie Aurora-MySQL-Benutzer aus den Active-Directory-Benutzern Ihrer Domain bereitstellen. Die Datenbankberechtigungen werden durch Standardberechtigungen von Aurora MySQL verwaltet, die diesen Benutzern gewährt und entzogen werden.

Sie können einem Active-Directory-Benutzer erlauben, sich bei Aurora MySQL zu authentifizieren. Dazu verwenden Sie zunächst die Hauptbenutzer-Anmeldeinformationen von Amazon RDS, um sich mit der DB-Instance von Aurora MySQL sowie mit jedem anderen DB-Cluster zu verbinden. Nachdem Sie angemeldet sind, erstellen Sie einen extern authentifizierten Benutzer mit Kerberos-Authentifizierung in Aurora MySQL wie folgt:

CREATE USER user_name@'host_name' IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
  • Ersetzen Sie user_name durch den Benutzernamen. Benutzer (sowohl Menschen als auch Anwendungen) aus Ihrer Domain können sich nun über einen der Domain beigetretenen Client per Kerberos-Authentifizierung mit dem DB-Cluster verbinden.

  • Ersetzen Sie host_name durch den Hostnamen. Sie können % als Platzhalter verwenden. Sie können auch bestimmte IP-Adressen für den Hostnamen verwenden.

  • Ersetzen Sie realm_name durch den Verzeichnisbereichsnamen der Domain. Der Bereichsname entspricht normalerweise dem DNS-Domain-Namen in Großbuchstaben, z. B. CORP.EXAMPLE.COM. Ein Bereich ist eine Gruppe von Systemen, die dasselbe Kerberos Key Distribution Center verwenden.

Im folgenden Beispiel wird ein Datenbankbenutzer mit dem Namen Admin erstellt, der sich gegenüber dem Active Directory mit dem Bereichsnamen MYSQL.LOCAL authentifiziert.

CREATE USER Admin@'%' IDENTIFIED WITH 'authentication_kerberos' BY 'MYSQL.LOCAL';

Ändern einer vorhandenen Aurora-MySQL-Anmeldung

Sie können auch eine vorhandene Aurora-MySQL-Anmeldung ändern, um die Kerberos-Authentifizierung zu verwenden. Nutzen Sie dazu die folgende Syntax:

ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';

Schritt 7: Konfigurieren eines MySQL-Clients

Gehen Sie folgendermaßen vor, um einen MySQL-Client zu konfigurieren:

  1. Erstellen Sie eine krb5.conf-Datei (oder eine vergleichbare Datei), um auf die Domain zu verweisen.

  2. Stellen Sie sicher, dass der Datenverkehr zwischen dem Client-Host und fließen kan AWS Directory Service. Verwenden Sie ein Netzwerk-Dienstprogramm wie Netcat für die folgenden Aufgaben:

    • Überprüfen Sie den Datenverkehr über DNS für Port 53.

    • Überprüfen Sie den Datenverkehr über TCP/UDP an Port 53 und für Kerberos (Ports 88 und 464 für AWS Directory Service.

  3. Stellen Sie sicher, dass der Datenverkehr zwischen dem Client-Host und der DB-Instance über den Datenbank-Port fließen kann. Verwenden Sie beispielsweise mysql, um eine Verbindung herzustellen und auf die Datenbank zuzugreifen.

Im Folgenden finden Sie Beispielinhalte der Datei krb5.conf für AWS Managed Microsoft AD.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

Nachfolgend ist ein Beispiel für den Inhalt von krb5.conf für ein On-Premises Microsoft Active Directory aufgeführt.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } ONPREM.COM = { kdc = onprem.com admin_server = onprem.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM .onprem.com = ONPREM.COM onprem.com = ONPREM.COM .rds.amazonaws.com = EXAMPLE.COM .amazonaws.com.cn = EXAMPLE.COM .amazon.com = EXAMPLE.COM

Schritt 8: (Optional) Konfigurieren eines Benutzernamenvergleichs ohne Berücksichtigung der Groß-/Kleinschreibung

Standardmäßig muss die Groß-/Kleinschreibung des MySQL-Datenbankbenutzernamens mit der Groß-/Kleinschreibung der Active-Directory-Anmeldung übereinstimmen. Mit dem Plug-in authentication_kerberos können Sie jetzt jedoch den Benutzernamenvergleich ohne Berücksichtigung der Groß-/Kleinschreibung verwenden. Setzen Sie dazu den Parameter authentication_kerberos_caseins_cmp des DB-Clusters auf true.

So verwenden Sie den Benutzernamenvergleich ohne Berücksichtigung der Groß-/Kleinschreibung
  1. Erstellen Sie eine benutzerdefinierte DB-Cluster-Parametergruppe. Folgen Sie den Verfahren in Erstellen einer DB-Cluster-Parametergruppe.

  2. Bearbeiten Sie die neue Parametergruppe, um den Wert für authentication_kerberos_caseins_cmp auf true zu setzen. Folgen Sie den Verfahren in Ändern von Parametern in einer DB-Cluster-Parametergruppe.

  3. Ordnen Sie die DB-Clusterparametergruppe dem DB-Cluster von Aurora MySQL zu. Folgen Sie den Verfahren in Zuordnen einer DB-Cluster-Parametergruppe zu einem DB-Cluster.

  4. Starten Sie den DB-Cluster neu.