Verbindung zu Autonomous AI Database mit Identity and Access Management-(IAM-)Authentifizierung herstellen

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure IAM in der autonomen KI-Datenbank aktiviert hatte, melden sich Benutzer mit ihren IAM-Zugangsdaten von Oracle Cloud Infrastructure bei der autonomen KI-Datenbankinstanz an oder greifen über ein Oracle Cloud Infrastructure IAM-Datenbanktoken auf der Datenbank zu.

Nachdem Sie den Zugriff auf Oracle Cloud Infrastructure IAM-Benutzer aktiviert haben, können Sie sich auch mit Ihrem Benutzernamen und Kennwort für den lokalen Datenbankaccount (nicht-globaler Datenbankbenutzeraccount) bei der Autonomous AI Database anmelden.

Als Oracle Cloud Infrastructure-IAM-Benutzer können Sie mit einem Datenbankclient auf eine autonome AI-Datenbankinstanz zugreifen. Um einen Client mit Oracle Cloud Infrastructure-IAM-Zugangsdaten und -Kennwort und einer Kennwortverifizierung zu verwenden, muss der Datenbankclient 12c oder höher sein.

Alternativ können Sie ein Oracle Cloud Infrastructure IAM-Datenbanktoken auf eine Autonomous AI Database-Instanz zugreifen. Für die Verwendung von IAM-Token wird der neueste Oracle Database-Client 19c (mindestens 19.16) benötigt. Einige frühere Clients bieten eine begrenzte Anzahl an Funktionen für den Tokenzugriff.

Die folgenden Beispiele zeigen die Kennwortverifizierung mit SQL*Plus für den Zugriff auf die Datenbank mit einem Oracle Cloud Infrastructure IAM-Benutzernamen und -Kennwort sowie die erforderlichen Schritte zur Verwendung von SQL*Plus mit einem Oracle Cloud Infrastructure-IAM-Datenbanktoken.

Hinweis

Wenn sich Ihre autonome AI-Datenbankinstanz im eingeschränkten Modus befindet, können nur die Benutzer mit der Berechtigung RESTRICTED SESSION wie ADMIN eine Verbindung zur Datenbank herstellen.

Sie können mit einem Oracle Cloud Infrastructure IAM-Datenbanktoken auf eine Autonomous Database-Instanz mit unterstützten Clients zugreifen, darunter:

Verbindung zu einer autonomen KI-Datenbankinstanz mit IAM herstellen

IAM-Benutzer können sich entweder über eine IAM-Datenbankkennwortverifizierung oder über ein IAM-Token bei der Autonomous AI Database-Instanz anmelden.

Die Verwendung der IAM-Datenbankkennwortverifizierung ähnelt dem Oracle Database-Kennwortauthentifizierungsprozess. Statt die Kennwortverifizierung (verschlüsselter Hasch des Kennworts) in der Oracle-Datenbank zu speichern, wird die Verifizierung stattdessen als Teil des Oracle Cloud Infrastructure (OCI) IAM-Benutzerprofil gespeichert.

Die zweite Verbindungsmethode, bei der ein IAM-Token für die Datenbank verwendet wird, ist moderner. Ein tokenbasierter Zugriff ist für Cloud-Ressourcen wie autonome KI-Datenbank besser geeignet. Das Token basiert auf der Stärke, die der IAM-Endpunkt durchsetzen kann. Dies kann eine Multifaktor-Authentifizierung sein, die stärker ist als die alleinige Verwendung von Kennwörtern. Ein weiterer Vorteil der Verwendung von Token besteht darin, dass die Kennwortverifizierung (die als sensibel gilt) nie gespeichert wird oder im Arbeitsspeicher verfügbar ist. Eine TCPS-(TLS-)Verbindung ist erforderlich, wenn Token für den Datenbankzugriff verwendet werden.

Hinweis

Sie können keine native Netzwerkverschlüsselung konfigurieren, wenn Sie ein IAM-Token übergeben. Nur Transport Layer Security (TLS) selbst wird unterstützt, keine native Netzwerkverschlüsselung oder native Netzwerkverschlüsselung mit TLS.

Clientverbindungen, die eine IAM-Datenbankkennwortverifizierung verwenden

Nachdem Sie die für den IAM-Benutzer erforderliche Autorisierung konfiguriert haben, kann sich dieser Benutzer ohne zusätzliche Konfiguration mit einer vorhandenen Clientanwendung wie SQL*Plus oder SQLcl anmelden.

Der IAM-Benutzer gibt den IAM-Benutzernamen und das IAM-Datenbankkennwort (nicht das Oracle Cloud Infrastructure-(OCI-)Konsolenkennwort) mit einem beliebigen aktuell unterstützten Datenbankclient ein. Der einzige Constraint besteht darin, dass die Datenbankclientversion Oracle Database Release 12.1.0.2 oder höher sein muss, um Oracle Database 12c-Kennwörter verwenden zu können. Der Datenbankclient muss die Kennwortverifizierung 12C verwenden können. Die Verwendung der Verifizierungsverschlüsselung 11G wird mit IAM nicht unterstützt. Es ist keine spezielle Client- oder Toolkonfiguration erforderlich, damit der IAM-Benutzer eine Verbindung zur OCI DBaaS-Instanz herstellen kann.

Clientverbindungen, die ein von einer Clientanwendung oder einem Clienttool angefordertes Token verwenden

Für den Zugriff des IAM-Tokenzugriffs auf die autonome AI-Datenbank fordert die Clientanwendung oder das Clienttoool ein Datenbanktool von IAM für den IAM-Benutzer An.

Die Clientanwendung übergibt das Datenbanktoken über die Datenbankclient-API direkt an den Datenbankclient.

Wenn die Anwendung oder das Tool nicht zur Anforderung eines IAM-Tokens aktualisiert wurde, kann der IAM-Benutzer das Datenbanktoken über die Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle (CLI) anfordern und speichern. Sie können ein Datenbankzugriffstoken (db-token) mit den folgenden Zugangsdaten anfordern:

  • Sicherheitstoken (mit IAM-Authentifizierung), Delegationstoken (in der OCI Cloud Shell) und API-keys. Hierbei handelt es sich um Zugangsdaten, die den IAM-Benutzer darstellen, um die Authentifizierung zu aktivieren.
  • Instanz-Principal-Token, mit denen Instanzen zu autorisierten Akteuren (oder Principals) werden, um nach der Authentifizierung Aktionen für Serviceressourcen auszuführen
  • Resource Principal-Token. Hierbei handelt es sich um Zugangsdaten, mit denen sich die Anwendung bei anderen Oracle Cloud Infrastructure-Services authentifizieren kann.
  • IAM-Benutzername und IAM-Datenbankkennwort (kann nur vom Datenbankclient angefordert werden) verwenden.

Wenn sich der IAM-Benutzer mit einer Schrägstrichanmeldung / beim Client anmeldet und der Parameter OCI_IAM konfiguriert ist (sqlnet.ora, tnsnames.ora oder als Teil einer Verbindungszeichenfolge), ruft der Datenbankclient das Datenbanktoken aus einer Datei ab. Wenn der IAM-Benutzer einen Benutzernamen und ein Kennwort übermittelt, verwendet die Verbindung den für Clientverbindungen mit IAM-Datenbankkennwortverifizierung beschriebenen IAM-Datenbankverifizierungszugriff. Die Anweisungen in dieser Dokumentation zeigen, wie Sie die OCI-CLI als Helper für das Datenbanktoken verwenden. Wenn die Anwendung oder das Tool für den Einsatz mit IAM aktualisiert wurde, befolgen Sie die Anweisungen zu der Anwendung oder dem Tool. Zu den allgemeinen Anwendungsfällen gehören SQLPlus On Premise, SQLcl On Premise, SQL*Plus in der Cloud Shell oder Anwendungen, die SEP-Wallets verwenden.

Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Datenbankkennwort verwendet

Sie können SQL*Plus so konfigurieren, dass ein IAM-Datenbankkennwort verwendet wird.

  • Melden Sie sich als IAM-Benutzer mit der folgenden Syntax bei der Instanz der autonomen KI-Datenbank an:
    CONNECT user_name@db_connect_string
    Enter password: password

    In dieser Spezifikation ist user_name der IAM-Benutzername. Für domain_name/user_name zusammen sind maximal 128 Byte zulässig.

    Das folgende Beispiel zeigt, wie der IAM-Benutzer peter_fitch sich bei einer autonomen AI-Datenbankinstanz anmelden kann.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Bei einigen Sonderzeichen müssen user_name und password in doppelte Anführungszeichen gesetzt werden. Beispiel:

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet

Sie können eine Clientverbindung für SQL*Plus konfigurieren, die ein IAM-Token verwendet.

  1. Stellen Sie sicher, dass Sie über einen IAM-Benutzeraccount verfügen.
  2. Fragen Sie bei einem IAM-Administrator und einem Oracle Database-Administrator nach, ob Sie eine Policy haben, mit der Sie auf die Datenbank im Compartment oder in Ihrem Mandanten zugreifen können und die Sie einem globalen Schema in der Datenbank zugeordnet sind.
  3. Wenn Ihre Anwendung oder Ihr Tool keine direkte IAM-Integration unterstützt, sollten Sie die OCI-CLI herunterladen, installieren und konfigurieren. (Siehe OCI-Befehlszeilenschnittstelle - Schnellstart.) Richten Sie im Rahmen der OCI-CLI-Konfiguration einen API-Schlüssel ein, und wählen Sie Standardwerte aus.
    1. Richten Sie den API-Schlüsselzugriff für den IAM-Benutzer ein.
    2. Rufen Sie das db-token ab. Beispiel:
      • db-token mit einem API-key über die Oracle Cloud Infrastructure-(OCI-)Befehlszeilenschnittstelle abrufen:
        oci iam db-token get
      • db-token mit einem Sicherheitstoken (oder Sessiontoken) abrufen:
        oci iam db-token get --auth security_token

        Wenn das Sicherheitstoken abgelaufen ist, wird ein Fenster angezeigt, damit der Benutzer sich erneut bei OCI anmelden kann. Dadurch wird das Sicherheitstoken für den Benutzer generiert. Die OCI-CLI verwendet dieses aktualisierte Token, um db-token abzurufen.

      • db-token mit einem Delegationstoken abrufen: Wenn Sie sich bei der Cloud Shell anmelden, wird das Delegationstoken automatisch generiert und im Verzeichnis /etc platziert. Um dieses Token abzurufen, führen Sie den folgenden Befehl in der cloud shell aus:
        oci iam db-token get
      • Instanztoken über die OCI-Befehlszeilenschnittstelle abrufen:
        oci iam db-token get --auth instance_principal
    3. Der Datenbankclient kann auch so konfiguriert werden, dass ein Datenbanktoken mit dem IAM-Benutzernamen und IAM-Datenbankkennwort abgerufen werden.
    Weitere Informationen finden Sie unter Erforderliche Schlüssel und OCIDs.
  4. Stellen Sie sicher, dass Sie die neuesten Releaseupdates für die Oracle Database-Clientreleases 19c, 21c oder 26ai verwenden.
    Diese Konfiguration funktioniert nur mit dem Oracle Database-Clientrelease 19c, 21c oder 26ai.
  5. Befolgen Sie den vorhandenen Prozess zum Herunterladen des Wallets aus der autonomen KI-Datenbank. Befolgen Sie dann die Anweisungen, wie das Wallet zur Verwendung mit SQL*Plus konfiguriert werden kann.
    1. Vergewissern Sie sich, dass der DN-Abgleich aktiviert ist, indem Sie in sqlnet.ora nach SSL_SERVER_DN_MATCH=ON suchen.
      Hinweis

      Beim Senden eines Tokens vom Datenbankclient an eine autonome KI-Datenbank ist ein teilweiser oder vollständiger DN-Abgleich erforderlich. Wenn die autonome AI-Datenbank einen privaten Endpunkt verwendet, müssen Sie einen Hostwert für den Parameter "Connect String" angeben. Die Verwendung einer IP-Adresse für den Hostparameter in der Verbindungszeichenfolge funktioniert nicht mit dem DN-Abgleich, und das IAM-Token wird nicht an die Datenbank gesendet.

      Informationen zur Konfiguration des Hostparameters bei Verwendung eines privaten Endpunkts finden Sie unter Beispiele für die Konfiguration privater Endpunkte in Autonomous Database.

    2. Konfigurieren Sie den Datenbankclient für die Verwendung des IAM-Tokens, indem Sie TOKEN_AUTH=OCI_TOKEN der Datei sqlnet.ora hinzufügen. Da Sie die Standardspeicherorte für die Datenbanktokendatei verwenden, müssen Sie keinen Speicherort für das Token angeben.
    Die Werte TOKEN_AUTH und TOKEN_LOCATION in den tnsnames.ora-Verbindungszeichenfolgen haben Vorrang vor den sqlnet.ora-Einstellungen für diese Verbindung. Beispiel für die Verbindungszeichenfolge, wenn sich das Token am Standardspeicherort (~/.oci/db-token für Linux) befindet:
    (description= 
      (retry_count=20)(retry_delay=3)
      (address=(protocol=tcps)(port=1522)
      (host=example.us-phoenix-1.oraclecloud.com))
      (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
      (security=(ssl_server_dn_match=yes)
      (TOKEN_AUTH=OCI_TOKEN)))
    
Nachdem die Verbindungszeichenfolge mit dem Parameter TOKEN_AUTH aktualisiert worden ist, kann sich der IAM-Benutzer bei der Autonomous AI Database-Instanz anmelden, indem er den folgenden Befehl ausführt, um SQL*Plus zu starten. Sie können den Verbindungsdeskriptor selbst einschließen oder den Namen des Deskriptors aus der Datei tnsnames.ora verwenden.
connect /@exampledb_high

Oder:

connect /@(description= 
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
     O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

Der Datenbankclient ist bereits für den Abruf von db-token konfiguriert, weil TOKEN_AUTH bereits festgelegt wurde, entweder über die Datei sqlnet.ora oder in einer Verbindungszeichenfolge. Der Datenbankclient ruft db-token ab und signiert es mit dem Private Key und sendet das Token dann an die autonome KI-Datenbank. Wenn ein IAM-Benutzername und ein IAM-Datenbankkennwort anstelle eines Schrägstrichs / angegeben werden, stellt der Datenbankclient eine Verbindung mit dem Kennwort anstatt mit db-token her.

Instanz-Principal für den Zugriff auf Autonomous AI Database mit Identity and Access Management-(IAM-)Authentifizierung

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure IAM auf einer autonomen KI-Datenbank aktiviert hat, kann eine Anwendung über ein Oracle Cloud Infrastructure IAM-Datenbanktoken über einen Instanz-Principal auf die Datenbank zugreifen.