Einrichten der Kerberos-Authentifizierung für Oracle DB-Instances - Amazon Relational Database Service

Einrichten der Kerberos-Authentifizierung für Oracle DB-Instances

Verwenden Sie AWS Directory Service for Microsoft Active Directory, auch AWS Managed Microsoft AD genannt, um die Kerberos-Authentifizierung für eine Oracle DB-Instance einzurichten. Führen Sie zum Einrichten der Kerberos-Authentifizierung die folgenden Schritte aus:

Anmerkung

Während der Einrichtung erstellt RDS einen Oracle-Datenbankbenutzer namens managed_service_user@example.com mit der Berechtigung CREATE SESSION, wobei example.com dem Namen Ihrer Domäne entspricht. Dieser Benutzer entspricht dem Benutzer, den Directory Service in Ihrem verwalteten Active Directory erstellt. In regelmäßigen Abständen verwendet RDS die vom Directory Service bereitgestellten Anmeldeinformationen, um sich bei Ihrer Oracle-Datenbank anzumelden. Danach zerstört RDS sofort den Ticket-Cache.

Schritt 1: Erstellen eines Verzeichnisses unter Verwendung der 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 Verzeichnisadministratorkonto 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 hat den NetBIOS-Namen, den Sie bei der Erstellung Ihres Verzeichnisses angegeben haben. Sie befindet sich im Domänenstamm. Der Domänenstamm ist im Besitz von und wird von diesem verwalte AWS.

Das Admin-Konto, das mit Ihrem AWS Managed Microsoft AD-Verzeichnis erstellt wurde, verfügt über Berechtigungen für die gängigsten administrativen Aktivitäten für Ihre OU:

  • Erstellen, Aktualisieren oder Löschen von Benutzern

  • Hinzufügen von Ressourcen zu Ihrer Domäne, 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-Modulen von Windows PowerShell im Active Directory Web Service

Das Admin-Konto hat außerdem die Rechte zur Durchführung der folgenden domänenweiten Aktivitäten:

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

  • Aufrufen von DNS-Ereignisprotokollen

  • Anzeigen von Sicherheitsereignisprotokollen

Zur Erstellung des Verzeichnisses können Sie die AWS Management Console, die AWS CLI oder die AWS Directory Service-API verwenden. Stellen Sie sicher, dass Sie die relevanten ausgehenden Ports in der Verzeichnis-Sicherheitsgruppe öffnen, damit das Verzeichnis mit der Oracle-DB-Instance kommunizieren kann.

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 Administratorpasswort, das erneut eingegeben wurde.

  5. Wählen Sie Next.

  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 die Oracle-DB-Instance 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 wurde. 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 den Wert Directory ID (Verzeichnis-ID), da Sie diesen Wert benötigen, wenn Sie Ihre Oracle-DB-Instance erstellen oder ändern.


					Seite „Directory details (Verzeichnisdetails)“

Schritt 2: Erstellen einer Vertrauensstellung

Wenn Sie nur AWS Managed Microsoft AD verwenden möchten, fahren Sie mit Schritt 3: Erstellen einer IAM-Rolle zur Verwendung durch Amazon RDS fort.

Um für ein lokales oder selbst gehostetes Microsoft Active Directory die Kerberos-Authentifizierung zu erhalten, erstellen Sie eine vertrauenswürdige Gesamtstruktur oder eine externe Vertrauensstellung. Die Vertrauensstellung kann uni- oder bidirektional sein. 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.

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

Damit Amazon RDS AWS Directory Service für Sie aufrufen kann, ist eine IAM-Rolle erforderlich, die die verwaltete IAM-Richtlinie AmazonRDSDirectoryServiceAccess verwendet. Diese Rolle ermöglicht es Amazon RDS, Aufrufe von durchzuführen AWS Directory Service.

Anmerkung

Um mit der Rolle Zugriff zu gewähren, muss der AWS Security Token Service (AWS STS)-Endpunkt in der korrekten AWS-Region für Ihr AWS-Konto aktiviert sein. AWS STS-Endpunkte sind standardmäßig in allen AWS-Regionen aktiv und Sie können sie ohne weitere Maßnahmen nutzen. Weitere Informationen finden Sie unter AWS STS in einer AWS-Region aktivieren und deaktivieren im IAM-Benutzerhandbuch.

Wenn eine DB-Instance mit der AWS Management Console erstellt wird und der Konsolenbenutzer über die Berechtigung iam:CreateRole verfügt, 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.

Anmerkung

Die für die Windows-Authentifizierung für RDS for Microsoft SQL Server verwendete IAM-Rolle kann nicht für RDS for Oracle verwendet werden.

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 Active Directory-Tool "Benutzer und Computer" erstellen, das eines der Active Directory Domain Services und der Active Directory Lightweight Directory Services-Tools ist. In diesem Fall sind Benutzer Einzelpersonen oder Entitäten, die Zugriff auf Ihr Verzeichnis haben.

Zum Erstellen von Benutzern in einem AWS Directory Service-Verzeichnis müssen Sie mit einer Windows-basierten Amazon-EC2-Instance verbunden sein, die ein Mitglied des AWS Directory Service-Verzeichnisses ist. Gleichzeitig müssen Sie als Benutzer angemeldet sein, der über Rechte zum Erstellen von Benutzern verfügt. Weitere Informationen zum Erstellen von Benutzern in Ihrem Microsoft Active Directory finden Sie unter Verwalten von Benutzern und Gruppen in AWS Managed Microsoft AD im AWS Directory Service Administration Guide.

Schritt 5: Aktivieren des VPC-übergreifenden Datenverkehrs zwischen dem Verzeichnis und der DB-Instance

Wenn Sie beabsichtigen, das Verzeichnis und die DB-Instance in derselben VPC zu platzieren, überspringen Sie diesen Schritt und fahren Sie mit for Schritt 6: Erstellen oder Ändern einer Oracle DB-Instance.

Wenn Sie vorhaben, das Verzeichnis und die DB-Instance in verschiedenenAWS Konten oder VPCs zu suchen, konfigurieren Sie den VPC-Datenverkehr mit VPC-Peering oderAWS-Transit Gateway. Das folgende Verfahren ermöglicht den Datenverkehr zwischen VPCs mit VPC Peering. Folgen Sie den Anweisungen unter Was ist VPC Peering? im Handbuch zu Amazon Virtual Private Cloud-Peering.

Aktivieren des VPC-übergreifenden Datenverkehrs mit VPC Peering

  1. Richten Sie geeignete VPC-Routing-Regeln ein, um sicherzustellen, dass Netzwerk-Datenverkehr in beide Richtungen fließen kann.

  2. Stellen Sie sicher, dass die Sicherheitsgruppe der DB-Instance eingehenden Datenverkehr von der Sicherheitsgruppe des Verzeichnisses empfangen kann. Weitere Informationen finden Sie unter Best Practices für AWS Managed Microsoft AD im AWS Directory Service Leitfaden für Administratoren.

  3. Stellen Sie sicher, dass keine ACL-Regel (Network Access Control List) zum Blockieren des Datenverkehrs vorhanden ist.

Wenn ein anderes AWS-Konto Eigentümer des Verzeichnisses ist, müssen Sie das Verzeichnis freigeben.

Freigeben des Verzeichnisses zwischen AWS-Konten

  1. Initiieren Sie die Freigabe des Verzeichnisses mit demAWS-Konto, in dem die DB-Instance erstellt wird, indem Sie die Anweisungen unter Tutorial: Freigeben Ihres AWS Managed Microsoft AD-Verzeichnisses für eine nahtlose EC2-Domäneneinbindung im AWS Directory Service-Administratorhandbuch befolgen.

  2. Melden Sie sich mit dem Konto für die DB-Instance bei der AWS Directory Service-Konsole an und stellen Sie sicher, dass die Domäne den Status SHARED aufweist, bevor Sie fortfahren.

  3. Notieren Sie sich, während Sie mit dem Konto für die DB-Instance bei der AWS Directory Service-Konsole angemeldet sind, den Wert für Directory ID (Verzeichnis-ID). Sie verwenden diese Verzeichnis-ID, um die DB-Instance mit der Domäne zu verbinden.

Schritt 6: Erstellen oder Ändern einer Oracle DB-Instance

Erstellen oder ändern Sie eine Oracle DB-Instance für die Verwendung mit Ihrem Verzeichnis. Sie können die Konsole, CLI oder RDS-API verwenden, um eine DB-Instance einem Verzeichnis zuzuordnen. Sie können dafür eine der folgenden Möglichkeiten auswählen:

Die Kerberos-Authentifizierung wird nur für Oracle DB-Instances in einer VPC unterstützt. Die DB-Instance kann sich in derselben VPC wie das Verzeichnis oder in einer anderen VPC befinden. Wenn Sie die DB-Instance erstellen oder ändern, gehen Sie wie folgt vor:

  • Geben Sie den Domänenbezeichner (d-*-Bezeichner) an, der beim Erstellen Ihres Verzeichnisses generiert wurde.

  • Geben Sie außerdem den Namen der IAM-Rolle an, die Sie erstellt haben.

  • Stellen Sie sicher, dass die Sicherheitsgruppe der DB-Instance eingehenden Datenverkehr von der Sicherheitsgruppe des Verzeichnisses empfangen und ausgehenden Datenverkehr an das Verzeichnis senden kann.

Wenn Sie die Konsole verwenden, um eine DB-Instance zu erstellen, wählen Sie im Abschnitt Datenbankauthentifizierung die Option Passwort- und Kerberos-Authentifizierung aus. Wählen Sie Verzeichnis durchsuchen und dann das Verzeichnis aus, oder klicken Sie auf Neues Verzeichnis erstellen.


					Kerberos-Authentifizierungseinstellung beim Erstellen einer DB-Instance

Wenn Sie die Konsole zum Ändern oder Wiederherstellen einer DB-Instance verwenden, wählen Sie das Verzeichnis im Abschnitt Kerberos-Authentifizierung oder Neues Verzeichnis erstellen aus.


					Kerberos-Authentifizierungseinstellung beim Ändern oder Wiederherstellen einer DB-Instance

Wenn Sie die AWS CLI verwenden, sind die folgenden Parameter für die DB-Instance erforderlich, damit sie das erstellte Verzeichnis verwenden kann:

  • 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 eine DB-Instance zur Verwendung eines Verzeichnisses.

Für Linux, macOS oder Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --domain d-ID \ --domain-iam-role-name role-name

Für Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --domain d-ID ^ --domain-iam-role-name role-name
Wichtig

Wenn Sie eine DB-Instance zur Aktivierung der Kerberos-Authentifizierung ändern, starten Sie die DB-Instance neu, nachdem Sie die Änderung vorgenommen haben.

Anmerkung

MANAGED_SERVICE_USER ist ein Servicekonto, dessen Name zufällig von Directory Service für RDS generiert wird. Während der Einrichtung der Kerberos-Authentifizierung erstellt RDS for Oracle einen Benutzer mit demselben Namen und weist ihm die Berechtigung CREATE SESSION zu. Der Oracle DB-Benutzer wird extern als MANAGED_SERVICE_USER@EXAMPLE.COM identifiziert, wobei EXAMPLE.COM der Domänenname ist. In regelmäßigen Abständen verwendet RDS die vom Directory Service bereitgestellten Anmeldeinformationen, um sich bei Ihrer Oracle-Datenbank anzumelden. Danach zerstört RDS sofort den Ticket-Cache.

Schritt 7: Erstellen von Oracle-Anmeldeinformationen mit Kerberos-Authentifizierung

Verwenden Sie die Anmeldeinformationen für den Amazon RDS-Hauptbenutzer, um eine Verbindung zur Oracle DB-Instance herzustellen, wie Sie es bei jeder anderen DB-Instance tun würden. Die DB-Instance ist der AWS Managed Microsoft AD-Domäne beigetreten. So können Sie Oracle-Anmeldungen und -Benutzer aus den Microsoft Active Directory-Benutzern und -Gruppen in Ihrer Domäne bereitstellen. Zum Verwalten von Datenbankberechtigungen erteilen und widerrufen Sie Oracle-Standardberechtigungen für diese Anmeldungen.

Damit sich ein Microsoft Active Directory-Benutzer bei Oracle authentifizieren kann,

  1. verwenden Sie die Anmeldeinformationen für den Amazon RDS-Hauptbenutzer, um eine Verbindung mit der Oracle DB-Instance herzustellen.

  2. Erstellen Sie einen extern authentifizierten Benutzer in der Oracle-Datenbank.

    Im folgenden Beispiel ersetzen Sie KRBUSER@CORP.EXAMPLE.COM mit dem Benutzer- und Domänennamen.

    CREATE USER "KRBUSER@CORP.EXAMPLE.COM" IDENTIFIED EXTERNALLY; GRANT CREATE SESSION TO "KRBUSER@CORP.EXAMPLE.COM";

    Benutzer (sowohl Menschen als auch Anwendungen) aus Ihrer Domäne können sich nun von einem mit der Domäne verbundenen Client-Rechner aus mit Hilfe der Kerberos-Authentifizierung mit der Oracle-DB-Instance verbinden.

Schritt 8: Konfigurieren eines Oracle-Clients

Um einen Oracle-Client zu konfigurieren, müssen Sie die folgenden Voraussetzungen erfüllen:

  • Erstellen Sie eine Konfigurationsdatei namens krb5.conf (Linux) oder krb5.ini (Windows), die auf die Domäne verweist. Konfigurieren Sie den Oracle-Client für die Verwendung dieser Konfigurationsdatei.

  • Stellen Sie sicher, dass der Datenverkehr zwischen dem Client-Host und AWS Directory Service über den DNS-Port 53 über TCP/UDP, die Kerberos-Ports (88 und 464 für verwaltete AWS Directory Service) über TCP und LDAP-Port 389 über TCP fließen kann.

  • Stellen Sie sicher, dass der Datenverkehr zwischen dem Client-Host und der DB-Instance über den Datenbank-Port fließen kann.

Im Folgenden finden Sie Beispielinhalte 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 = CORP.EXAMPLE.COM example.com = CORP.EXAMPLE.COM

Im Folgenden finden Sie Beispielinhalte für Microsoft AD vor Ort. Ersetzen Sie in Ihrer Datei krb5.conf oder krb5.ini on-prem-ad-server-name durch den Namen Ihres lokalen AD-Servers.

[libdefaults] default_realm = ONPREM.COM [realms] AWSAD.COM = { kdc = awsad.com admin_server = awsad.com } ONPREM.COM = { kdc = on-prem-ad-server-name admin_server = on-prem-ad-server-name } [domain_realm] .awsad.com = AWSAD.COM awsad.com= AWSAD.COM .onprem.com = ONPREM.COM onprem.com= ONPREM.COM
Anmerkung

Nachdem Sie Ihre Datei krb5.ini oder krb5.conf konfiguriert haben, empfehlen wir Ihnen, den Server neu zu starten.

Im Folgenden finden Sie ein Beispiel für den Inhalt von sqlnet.ora für eine SQL*Plus-Konfiguration:

SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5PRE,KERBEROS5) SQLNET.KERBEROS5_CONF=path_to_krb5.conf_file

Ein Beispiel für eine SQL Developer-Konfiguration finden Sie unter Document 1609359.1 des Oracle-Supports.