Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen verwenden

Sie können einen Oracle Cloud Infrastructure-Resource Principal mit Autonomous Database verwenden. Sie oder Ihr Mandantenadministrator definieren die Oracle Cloud Infrastructure-Policys und eine dynamische Gruppe, mit der Sie mit einem Resource Principal auf Oracle Cloud Infrastructure-Ressourcen zugreifen können. Sie müssen kein Zugangsdatenobjekt erstellen, und Autonomous Database erstellt und sichert die Zugangsdaten des Resource Principals, mit denen Sie auf die angegebenen Oracle Cloud Infrastructure-Ressourcen zugreifen.

Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen verwenden

Mit einem Resource Principal können Sie Oracle Cloud Infrastructure-Ressourcen authentifizieren und darauf zugreifen.

Ein Resource Principal besteht aus einem temporären Sessiontoken und sicheren Zugangsdaten, mit denen sich die Datenbank bei anderen Oracle Cloud Infrastructure-Services authentifizieren kann. Wenn Sie einen Resource Principal für den Zugriff auf Services verwenden, ist das mit den Zugangsdaten in Autonomous Database gespeicherte Token nur für die Ressourcen gültig, auf die der dynamischen Gruppe Zugriff erteilt wurde.

Um Resource Principal zu verwenden, definieren Sie oder der Mandantenadministrator die Oracle Cloud Infrastructure-Policys und eine dynamische Gruppe, mit der Sie mit einem Resource Principal auf Oracle Cloud Infrastructure-Ressourcen zugreifen können. Sie müssen kein Zugangsdatenobjekt erstellen, und Autonomous Database erstellt und sichert die Zugangsdaten des Resource Principals, mit denen Sie auf die angegebenen Oracle Cloud Infrastructure-Ressourcen zugreifen.

Beispiel: Wenn Sie Autonomous Database verwenden, können Sie mit Oracle Cloud Infrastructure-Ressourcen Folgendes ausführen:

  • Auf Daten von einem Objektspeicher-Bucket zugreifen, einige Vorgänge an Daten durchführen und anschließend die geänderten Daten wieder im Objektspeicher-Bucket schreiben.
  • Greifen Sie auf Ihre Vaults, Schlüssel oder Secrets zu.

  • Arbeitsanforderungen auflisten oder Arbeitsanforderungsfehler auflisten

Wenn Sie mit der Datenbank arbeiten, authentifizieren Sie sich und greifen als Datenbankbenutzer auf die Datenbank zu. Ein Autonomous Database-Benutzer hat keine Oracle Cloud Infrastructure Identity and Access Management-(IAM-)Identität. Daher können Sie als Autonomous Database-Benutzer Ihre Datenbankzugangsdaten nicht für den Zugriff auf Oracle Cloud Infrastructure-Services verwenden. Ohne Resource Principal müssen Sie Zugangsdaten für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen abrufen und ein Zugangsdatenobjekt für den Zugriff auf eine Ressource aus Autonomous Database erstellen.

Mit einem Resource Principal können Ressourcen autorisiert werden, Aktionen in Oracle Cloud Infrastructure-Services auszuführen. Jede Ressource hat ihre eigene Identität und authentifiziert die Zertifikate, die ihr hinzugefügt werden. Diese Zertifikate werden automatisch erstellt, Ressourcen zugewiesen und rotiert, sodass Sie keine eigenen Zugangsdaten für den Zugriff auf die Ressource erstellen und verwalten müssen.

Mit Autonomous Database können Sie einen Resource Principal zur Authentifizierung bei Oracle Cloud Infrastructure-APIs über die folgenden Schnittstellen verwenden:

  • DBMS_CLOUD-Prozeduren und -Funktionen, die ein Zugangsdatenargument verwenden
  • Oracle Cloud Infrastructure-PL/SQL-SDK-APIs

Wenn Sie sich mit einem Resource Principal authentifizieren, bietet Autonomous Database eine sichere Methode für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen.

Zum Einrichten eines Resource Principals in Autonomous Database sind mehrere Schritte erforderlich:

Wenn Sie sich mit einem Resource Principal authentifizieren, müssen Sie keine Zugangsdaten für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen erstellen und verwalten. Autonomous Database stellt Ihnen den Resource Principal zur Verfügung und sichert den Resource Principal für Sie.

Voraussetzungsprüfungen für die Verwendung von Resource Principals mit Autonomous Database ausführen

Bevor Sie eine Oracle Cloud Infrastructure-Ressource mit einem Resource Principal aufrufen, muss ein Oracle Cloud Infrastructure-Mandantenadministrator Oracle Cloud Infrastructure-Policys, dynamische Gruppen und Regeln erstellen, mit denen die Resource Principal-Berechtigungen definiert werden.

Führen Sie die folgenden Schritte aus, bevor Sie einen Resource Principal mit Autonomous Database verwenden:

  1. Erstellen Sie eine dynamische Oracle Cloud Infrastructure-Gruppe.
    1. Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Identität und Sicherheit und anschließend auf Dynamische Gruppen.
    2. Klicken Sie auf Dynamische Gruppe erstellen, und geben Sie einen Namen, eine Beschreibung und eine Regel ein, oder fügen Sie mit Rule Builder eine Regel hinzu.
    3. Klicken Sie auf Erstellen.

    Ressourcen, die den Regelkriterien entsprechen, sind Mitglieder der dynamischen Gruppe. Wenn Sie eine Regel für eine dynamische Gruppe definieren, überlegen Sie, welcher Ressource Zugriff auf andere Ressourcen erteilt wird.

    Beispiel: Betrachten Sie die folgenden Beispiele:

    • Erlauben Sie einer bestimmten Autonomous Database-Instanz den Zugriff auf eine Ressource.

      Die Autonomous Database wird im Parameter resource.id mit einer OCID angegeben:

      resource.id = 'your_Autonomous_Database_instance_OCID'

      Sie müssen einen Domainnamen hinzufügen, wenn der Mandant eine Identitätsdomain verwendet. Beispiel:

      resource.id = 'identity_domain_name/your_Autonomous_Database_instance_OCID'
    • Alle autonomen Datenbanken in einem Compartment zulassen.

      Die autonomen Datenbanken werden im Parameter resource.type angegeben, und das Compartment wird durch eine angegebene OCID im Parameter resource.compartment.id identifiziert:

      ALL {resource.type = 'autonomousdatabase', resource.compartment.id = 'your_Compartment_OCID'}
    • Alle Ressourcen im Compartment zulassen

      Der durch die OCID angegebene Ressourcentyp, der im Parameter resource.compartment.id angegeben ist:

      ALL
              {resource.compartment.id='your_Compartment_OCID'}

    Weitere Informationen zum Erstellen einer dynamischen Gruppe und zum Erstellen von Regeln zum Hinzufügen von Ressourcen zur Gruppe finden Sie unter Dynamische Gruppen verwalten.

  2. Schreiben Sie Policy-Anweisungen für die dynamische Gruppe, damit der Zugriff auf Oracle Cloud Infrastructure-Ressourcen möglich ist.
    1. Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Identität und Sicherheit und dann auf Policys.
    2. Um Policys für eine dynamische Gruppe zu schreiben, klicken Sie auf Policy erstellen, und geben Sie einen Namen und eine Beschreibung ein,
    3. Erstellen Sie mit Policy Builder eine Policy.

      Beispiel: So erstellen Sie eine Policy, um den Zugriff auf den Oracle Cloud Infrastructure-Objektspeicher zur Verwaltung von Buckets und Objekten im Objektspeicher in einem Mandanten zuzulassen:

      Allow dynamic-group Example5 to manage buckets in tenancy
      Allow dynamic-group Example5 to manage objects in tenancy

      Sie müssen einen Domainnamen hinzufügen, wenn der Mandant eine Identitätsdomain verwendet. Beispiel:

      Allow dynamic-group identity_domain_name/Example5 to manage buckets in tenancy
      Allow dynamic-group identity_domain_name/Example5 to manage objects in tenancy
    4. Klicken Sie auf Erstellen.
Hinweis

Das Resource-Principal-Token wird zwei Stunden lang gecacht. Wenn Sie also die Policy oder die dynamische Gruppe ändern, müssen Sie zwei Stunden warten, um die Auswirkungen Ihrer Änderungen zu sehen.

Weitere Informationen zu Policys finden Sie unter Funktionsweise von Policys und Policys verwalten.

Resource Principal für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen aktivieren

Führen Sie die folgenden Schritte aus, um den Resource Principal in Autonomous Database zu aktivieren.

Konfigurieren Sie als Voraussetzung dynamische Gruppen und Policys. Weitere Informationen finden Sie unter Voraussetzungsprüfungen für die Verwendung von Resource Principal mit Autonomous Database ausführen.

So aktivieren Sie einen Resource Principal in Autonomous Database:

  1. Aktivieren Sie als ADMIN-Benutzer den Resource Principal für die Autonomous Database-Instanz.

    Beispiel:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();
    
    PL/SQL procedure successfully completed. 
    
    Weitere Informationen finden Sie unter Prozedur ENABLE_RESOURCE_PRINCIPAL.

    Dadurch werden die Zugangsdaten OCI$RESOURCE_PRINCIPAL erstellt.

  2. (Optional) Dieser Schritt ist nur erforderlich, wenn Sie einem anderen Datenbankbenutzer als dem ADMIN-Benutzer Zugriff auf die Zugangsdaten des Resource Principals erteilen möchten. Aktivieren Sie als ADMIN-Benutzer den Resource Principal für einen angegebenen Datenbankbenutzer.

    Beispiel:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user');
    
    PL/SQL procedure successfully completed. 
    

    Dadurch wird dem Benutzer adb_user Zugriff auf die Zugangsdaten OCI$RESOURCE_PRINCIPAL erteilt.

    Wenn der angegebene Benutzer über Berechtigungen zum Aktivieren des Resource Principals für andere Benutzer verfügen soll, setzen Sie den Parameter grant_option auf TRUE.

    Beispiel:

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(
         username => 'adb_user',
         grant_option => TRUE);
    END;
    /

    Nachdem Sie diesen Befehl ausgeführt haben, kann adb_user den Resource Principal für einen anderen Benutzer aktivieren. Beispiel: Wenn Sie eine Verbindung als adb_user herstellen, können Sie den folgenden Befehl ausführen:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user2');
    
    Weitere Informationen finden Sie unter Prozedur ENABLE_RESOURCE_PRINCIPAL.
  3. Prüfen Sie, ob die Zugangsdaten des Resource Principals aktiviert sind.

    Beispiel: Wenn der ADMIN-Benutzer die Ansicht DBA_CREDENTIALS abfragt:

    SELECT owner, credential_name FROM dba_credentials 
            WHERE credential_name = 'OCI$RESOURCE_PRINCIPAL' AND owner = 'ADMIN'; 
    
    OWNER  CREDENTIAL_NAME
    -----  ----------------------
    ADMIN  OCI$RESOURCE_PRINCIPAL 
    

    Beispiel: Fragen Sie als Nicht-ADMIN-Benutzer die View ALL_TAB_PRIVS ab:

    SELECT grantee, table_name, grantor FROM ALL_TAB_PRIVS
       WHERE grantee = 'ADB_USER' 
            AND table_name = 'OCI$RESOURCE_PRINCIPAL' 
            AND table_schema = 'ADMIN';
    
    GRANTEE   TABLE_NAME                GRANTOR
    --------- -----------------------   -------------
    ADB_USER  OCI$RESOURCE_PRINCIPAL    ADMIN

Das Aktivieren des Resource Principals in einer Autonomous Database-Instanz ist ein einmaliger Vorgang. Sie müssen den Resource Principal nicht erneut aktivieren, es sei denn, Sie führen DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL aus, um den Resource Principal zu deaktivieren.

Resource Principal in Autonomous Database deaktivieren

Zeigt die Schritte zum Deaktivieren des Resource Principals für alle Autonomous Database-Benutzer oder für einen angegebenen Benutzer an.

  1. Um den Resource Principal für alle Benutzer als ADMIN-Benutzer zu deaktivieren, führen Sie den folgenden Befehl aus:
    EXEC DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL();

    Dadurch werden die Zugangsdaten OCI$RESOURCE_PRINCIPAL entfernt.

  2. Prüfen Sie, ob die Zugangsdaten des Resource Principals deaktiviert sind.

    Beispiel:

    SELECT owner, credential_name FROM dba_credentials 
            WHERE credential_name = 'OCI$RESOURCE_PRINCIPAL' AND owner = 'ADMIN';
    
    No rows selected
    

Um den Zugriff auf die Zugangsdaten des Resource Principals für einen angegebenen Datenbankbenutzer zu entfernen, nehmen Sie den Parameter username auf. Dadurch wird dem angegebenen Benutzer der Zugriff auf die Zugangsdaten OCI$RESOURCE_PRINCIPAL verweigert.

Beispiel:

EXEC DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL(username => 'ADB_USER');

Weitere Informationen finden Sie unter Prozedur DISABLE_RESOURCE_PRINCIPAL.

Resource Principal mit DBMS_CLOUD verwenden

Wenn Sie Resource-Principal-Zugangsdaten mit DBMS_CLOUD-Aufrufen angeben, authentifiziert die Datenbank die Oracle Cloud Infrastructure-Anforderungen für Sie. Die Datenbank stellt die Zugangsdaten für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen bereit.

Wenn dies noch nicht geschehen ist, führen Sie die erforderlichen Voraussetzungsschritte aus:

So verwenden Sie eine DBMS_CLOUD-Prozedur mit Zugangsdaten des Resource Principals:

  1. Verwenden Sie eine Prozedur oder Funktion DBMS_CLOUD, und geben Sie OCI$RESOURCE_PRINCIPAL als Zugangsdatennamen an.

    Beispiel: Sie können mit einem Resource Principal auf Oracle Cloud Infrastructure Object Storage zugreifen:

    CREATE TABLE CHANNELS
       (channel_id CHAR(1),
        channel_desc VARCHAR2(20),
        channel_class VARCHAR2(20)
       );
    /
    
    BEGIN
     DBMS_CLOUD.COPY_DATA(
        table_name =>'CHANNELS',
        credential_name =>'OCI$RESOURCE_PRINCIPAL',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
        format => json_object('delimiter' value ',')
     );
    END;
    /
    

Wenn Sie die Schritte vergleichen, die für den Zugriff auf Object Storage erforderlich sind (siehe Zugangsdaten erstellen und Daten in eine vorhandene Tabelle kopieren), beachten Sie, dass Schritt 1 nicht erforderlich ist, wenn Sie den Resource Principal verwenden, da Sie die systemdefinierten Zugangsdaten OCI$RESOURCE_PRINCIPAL verwenden.