Einrichten der Kerberos-Authentifizierung für Oracle DB-Instances - Amazon Relational Database 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.

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

Wird auch genannt AWS Directory Service for Microsoft Active Directory AWS Managed Microsoft AD, 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 Sie ein Verzeichnis mit dem 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, AWS Directory Service erstellt in Ihrem Namen zwei Domänencontroller und DNS-Server (Domain Name System). 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, AWS Directory Service führt er in Ihrem Namen die folgenden Aufgaben 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

    Achten Sie darauf, dieses Passwort zu 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 eine starten AWS Managed Microsoft AD, AWS erstellt 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 gehört und wird von diesem verwaltet AWS.

Das Administratorkonto, das mit Ihrem AWS Managed Microsoft AD Verzeichnis erstellt wurde, verfügt über Berechtigungen für die gängigsten Verwaltungsaktivitäten Ihrer Organisationseinheit:

  • 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

  • Führen Sie AD- und PowerShell DNS-Windows-Module im Active Directory-Webdienst aus

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

Verwenden Sie die, oder die AWS Directory Service API AWS Management Console, um das AWS CLI Verzeichnis zu erstellen. Stellen Sie sicher, dass Sie die relevanten ausgehenden Ports in der Verzeichnis-Sicherheitsgruppe öffnen, damit das Verzeichnis mit der Oracle-DB-Instance kommunizieren kann.

Um ein Verzeichnis zu erstellen mit AWS Managed Microsoft AD
  1. Melden Sie sich bei der an AWS Management Console 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ähle AWS Managed Microsoft AD. 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 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 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 AWS Managed Microsoft AD nur verwenden möchten, fahren Sie mit fortSchritt 3: Konfigurieren von IAM-Berechtigungen für Amazon RDS.

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 von Forest Trusts mit AWS Directory Service finden Sie unter Wann sollte eine Vertrauensstellung eingerichtet werden? im AWS Directory Service Administratorhandbuch.

Schritt 3: Konfigurieren von IAM-Berechtigungen für Amazon RDS

Um Sie anrufen AWS Directory Service zu können, benötigt Amazon RDS eine IAM-Rolle, die die verwaltete IAM-Richtlinie verwendet. AmazonRDSDirectoryServiceAccess Diese Rolle ermöglicht es Amazon RDS, Aufrufe von AWS Directory Service durchzuführen.

Anmerkung

Damit die Rolle Zugriff gewährt, muss der Endpunkt AWS Security Token Service (AWS STS) in der AWS-Region für Sie richtigen Weise aktiviert sein. AWS-Konto AWS STS Endpunkte sind standardmäßig in allen aktiv AWS-Regionen, und Sie können sie ohne weitere Aktionen verwenden. Weitere Informationen finden Sie unter Aktivieren und Deaktivieren AWS STSAWS-Region im IAM-Benutzerhandbuch.

Erstellen einer IAM-Rolle

Wenn Sie eine DB-Instance mit dem erstellen und der AWS Management Console Konsolenbenutzer über die iam:CreateRole entsprechende Berechtigung verfügt, wird die Konsole automatisch erstelltrds-directoryservice-kerberos-access-role. Andernfalls müssen Sie die IAM-Rolle manuell erstellen. Wenn Sie eine IAM-Rolle manuell erstellenDirectory Service, wählen Sie die AWS verwaltete Richtlinie aus und hängen Sie sie AmazonRDSDirectoryServiceAccess an.

Weitere Informationen zum Erstellen von IAM-Rollen für einen Dienst finden Sie unter Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS Dienst 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.

Manuelles Erstellen einer IAM-Vertrauensrichtlinie

Optional können Sie Ressourcen-Richtlinien mit den erforderlichen Berechtigungen erstellen, anstatt die verwaltete IAM-Richtlinie zu verwenden AmazonRDSDirectoryServiceAccess. Geben Sie sowohl directoryservice.rds.amazonaws.com als auch rds.amazonaws.com als Prinzipale an.

Wir empfehlen die Verwendung der globalen Bedingungskontextschlüssel aws:SourceArn und aws:SourceAccount in ressourcenbasierten Richtlinien, um die Berechtigungen, die Amazon RDS einem anderen Service erteilt, auf eine bestimmte Ressource zu beschränken. Der effektivste Weg, um sich vor dem Confused-Deputy-Problem zu schützen, ist die Verwendung des globalen Bedingungskontextschlüssels aws:SourceArn mit dem vollständigen ARN einer Amazon-RDS-Ressource. Weitere Informationen finden Sie unter Vermeidung des dienstübergreifenden Confused-Deputy-Problems.

Das folgende Beispiel zeigt, wie Sie die globalen Bedingungskontextschlüssel aws:SourceArn und aws:SourceAccount für Amazon RDS verwenden können, um das Confused-Deputy-Problem zu verhindern.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Für Opt-in-Regionen müssen Sie auch einen Service Principal für diese Region in der Form von angeben. directoryservice.rds.region_name.amazonaws.com Verwenden Sie in der Region Afrika (Kapstadt) beispielsweise die folgende Vertrauensrichtlinie:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "directoryservice.rds.af-south-1.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:af-south-1:123456789012:db:mydbinstance" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Die Rolle muss auch über die folgende IAM-Richtlinie 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.

Um Benutzer in einem AWS Directory Service Verzeichnis zu erstellen, müssen Sie mit einer Windows-basierten Amazon EC2 EC2-Instance verbunden sein, die Mitglied des Verzeichnisses ist. AWS Directory Service 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 planen, das Verzeichnis und die DB-Instance in verschiedenen AWS Konten oder VPCs zu lokalisieren, konfigurieren Sie den VPC-übergreifenden Verkehr mithilfe von VPC-Peering oder Transit Gateway.AWS 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 das Verzeichnis einem anderen AWS Konto gehört, müssen Sie das Verzeichnis gemeinsam nutzen.

Um das Verzeichnis von mehreren AWS Konten gemeinsam zu nutzen
  1. Beginnen Sie mit der gemeinsamen Nutzung des Verzeichnisses mit dem AWS Konto, unter dem die DB-Instance erstellt werden soll. Folgen Sie dazu den Anweisungen im Administratorhandbuch unter Tutorial: Teilen Ihres AWS Managed Microsoft AD Verzeichnisses für einen nahtlosen EC2-Domänenbeitritt.AWS Directory Service

  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 Domain den SHARED Status hat, bevor Sie fortfahren.

  3. Notieren Sie sich den Wert der Verzeichnis-ID, während Sie mit dem Konto für die DB-Instance bei der AWS Directory Service Konsole angemeldet sind. 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 den verwenden AWS CLI, sind die folgenden Parameter erforderlich, damit die DB-Instance das von Ihnen 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 LinuxmacOS, oderUnix:

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

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 mit der AWS Managed Microsoft AD Domain verbunden. 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 DNS-Port 53 über TCP/UDP, Kerberos-Ports (88 und 464 für verwaltet 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 einen Beispielinhalt 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.