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

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure IAM auf Autonomous Database aktiviert hat, melden sich Benutzer mit ihren Oracle Cloud Infrastructure IAM-Zugangsdaten oder über ein Oracle Cloud Infrastructure IAM-Datenbanktoken bei der Autonomous Database-Instanz an.

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

Als Oracle Cloud Infrastructure-IAM-Benutzer können Sie mit einem Datenbankclient auf eine Autonomous Database-Instanz zugreifen. Um einen Client mit Oracle Cloud Infrastructure IAM-Zugangsdaten für Benutzername und Kennwort sowie einer Kennwortverifizierung zu verwenden, muss der Datenbankclient 12c oder höher sein.

Alternativ können Sie mit einem Oracle Cloud Infrastructure IAM-Datenbanktoken auf eine Autonomous 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 Menge 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 Autonomous Database-Instanz im eingeschränkten Modus befindet, können nur die Benutzer mit der Berechtigung RESTRICTED SESSION wie ADMIN eine Verbindung zur Datenbank herstellen.

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

Verbindung zu einer Autonomous Database-Instanz mit IAM herstellen

IAM-Benutzer können sich entweder mit einer IAM-Datenbankkennwortverifizierung oder einem IAM-Token bei der Autonomous Database-Instanz anmelden.

Die Verwendung der IAM-Datenbankkennwortverifizierung ähnelt dem Oracle Database-Kennwortauthentifizierungsprozess. Die Kennwortverifizierung (verschlüsselter Hash des Kennworts) wird jedoch nicht in der Oracle-Datenbank gespeichert, sondern im IAM-Benutzerprofil von Oracle Cloud Infrastructure (OCI).

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 Autonomous Database 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 die native Netzwerkverschlüsselung nicht konfigurieren, wenn Sie ein IAM-Token übergeben. Nur Transport Layer Security (TLS) selbst wird unterstützt, nicht 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 IAM-Tokzugriff auf Autonomous Database fordert die Clientanwendung oder das Clienttool ein Datenbanktoken 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).

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 Autonomous Database-Instanz 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 die Anmeldung des IAM-Benutzers peter_fitch bei einer Autonomous Database-Instanz.

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

    "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 Oracle Database-Administrator nach, ob Sie über eine Policy verfügen, mit der Sie auf die Datenbank im Compartment oder in Ihrem Mandanten zugreifen können, und ob 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. Beispiele:
      • 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 dem IAM-Datenbankkennwort abgerufen wird.
    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 23ai verwenden.
    Diese Konfiguration funktioniert nur mit Oracle Database-Clientrelease 19c, 21c oder 23ai.
  5. Folgen Sie dem vorhandenen Prozess, um das Wallet aus Autonomous Database herunterzuladen. Befolgen Sie dann die Anweisungen, um es für die Verwendung mit SQL*Plus zu konfigurieren.
    1. Vergewissern Sie sich, dass der DN-Abgleich aktiviert ist, indem Sie in sqlnet.ora nach SSL_SERVER_DN_MATCH=ON suchen.
      Hinweis

      Ein teilweiser oder vollständiger DN-Abgleich ist erforderlich, wenn ein Token vom Datenbankclient an Autonomous Database gesendet wird. Wenn Autonomous Database einen privaten Endpunkt verwendet, müssen Sie einen Hostwert für den Parameter der Verbindungszeichenfolge 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.

      Konfigurationsinformationen zum Festlegen des Hostparameters bei Verwendung eines privaten Endpunkts finden Sie unter Konfigurationsbeispiele für private 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 wurde, kann sich der IAM-Benutzer bei der Autonomous 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, signiert es mit dem Private Key und sendet das Token dann an Autonomous Database. 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 Database mit Identity and Access Management-(IAM-)Authentifizierung verwenden

Nachdem der ADMIN-Benutzer Oracle Cloud Infrastructure-IAM auf Autonomous Database aktiviert hat, kann eine Anwendung mit einem Instanz-Principal über ein Oracle Cloud Infrastructure-IAM-Datenbanktoken auf die Datenbank zugreifen.