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 der Mandantenadministrator definieren die Oracle Cloud Infrastructure-Policys und eine dynamische Gruppe, die Ihnen den Zugriff auf Oracle Cloud Infrastructure-Ressourcen mit einem Resource Principal ermöglicht. Sie müssen kein Zugangsdatenobjekt erstellen, und Autonomous Database erstellt und schützt die Ressourcen-Principal-Zugangsdaten, mit denen Sie auf die angegebenen Oracle Cloud Infrastructure-Ressourcen zugreifen.

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

Sie können einen Resource Principal zur Authentifizierung und zum Zugriff auf Oracle Cloud Infrastructure-Ressourcen verwenden.

Ein Ressourcen-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 Ressourcen-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 verwenden zu können, 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 schützt die Ressourcen-Principal-Zugangsdaten, mit denen Sie auf die angegebenen Oracle Cloud Infrastructure-Ressourcen zugreifen.

Beispiel: Wenn Sie Autonomous Database verwenden, können Sie Oracle Cloud Infrastructure-Ressourcen für Folgendes verwenden:

  • Von einem Object Storage-Bucket aus auf Daten zugreifen, einige Vorgänge an Daten durchführen und dann die geänderten Daten wieder in den Object Storage-Bucket schreiben
  • Auf Ihre Vaults, Schlüssel oder Secrets zugreifen.

  • Arbeitsanforderungen oder Arbeitsanforderungsfehler auflisten.

Wenn Sie mit der Datenbank arbeiten, authentifizieren Sie sich als Datenbankbenutzer und greifen darauf 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 einen Ressourcen-Principal müssen Sie Zugangsdaten abrufen, um auf Oracle Cloud Infrastructure-Ressourcen zuzugreifen, und ein Zugangsdatenobjekt erstellen, um über Autonomous Database auf eine Ressource zuzugreifen.

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

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 akzeptieren
  • Oracle Cloud Infrastructure-PL/SQL-SDK-APIs

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

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

Wenn Sie sich mit einem Resource Principal anmelden, müssen Sie keine Zugangsdaten erstellen und verwalten, um auf Oracle Cloud Infrastructure-Ressourcen zuzugreifen. Autonomous Database stellt Ihnen den Ressourcen-Principal zur Verfügung und schützt ihn für Sie.

Voraussetzungsprüfungen für die Verwendung des Ressourcen-Principals mit Autonomous Database ausführen

Vor einem Aufruf einer Oracle Cloud Infrastructure-Ressource mit einem Resource Principal 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 vor der Verwendung eines Ressourcen-Principals mit Autonomous Database aus:

  1. Erstellen Sie eine dynamische Oracle Cloud Infrastructure-Gruppe.
    1. Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Identität und Sicherheit und dann auf Dynamische Gruppen.
    2. Klicken Sie auf Dynamische Gruppe erstellen, und geben Sie einen Namen, eine Beschreibung und eine Regel ein, oder verwenden Sie den Rule Builder, um eine Regel hinzuzufügen.
    3. Klicken Sie auf Erstellen.

    Ressourcen, die diese Regelkriterien erfüllen, sind Mitglieder der dynamischen Gruppe. Wenn Sie eine Regel für eine dynamische Gruppe definieren, überlegen Sie, welche Ressource Zugriff auf andere Ressourcen gewährt wird.

    Betrachten Sie die folgenden Beispiele:

    • Zugriff auf eine Ressource durch eine bestimmte Autonomous Database-Instanz zulassen

      Die Autonomous Database-Instanz wird im Parameter resource.id durch eine OCID angegeben:

      resource.id = 'your_Autonomous_Database_instance_OCID'

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

      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 identifizierte Ressourcentyp wird im Parameter resource.compartment.id angegeben:

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

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

  2. Schreiben Sie Policy-Anweisungen für die dynamische Gruppe, um den Zugriff auf Oracle Cloud Infrastructure-Ressourcen zu ermöglichen.
    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 für den Zugriff auf den Oracle Cloud Infrastructure Object Storage zur Verwaltung von Buckets und Objekten im Objektspeicher in einem Mandanten:

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

      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 im Cache gespeichert. 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

So aktivieren Sie den Ressourcen-Principal in Autonomous Database:

Konfigurieren Sie dynamische Gruppen und Policys. Weitere Informationen finden Sie unter Voreinstellungen 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.

    Beispiele:

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

    Damit werden die OCI$RESOURCE_PRINCIPAL-Berechtigungsnachweise 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.

    Beispiele:

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

    Dadurch erhält der Benutzer adb_user Zugriff auf die OCI$RESOURCE_PRINCIPAL-Zugangsdaten.

    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.

    Beispiele:

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

    Nach der Ausführung dieses Befehls 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 Resource Principal-Zugangsdaten aktiviert sind.

    Beispiel: Wenn der ADMIN-Benutzer die View 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 auf 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.

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

    Dadurch werden die OCI$RESOURCE_PRINCIPAL-Berechtigungsnachweise entfernt.

  2. Stellen Sie sicher, dass die Zugangsdaten des Ressourcen-Principals deaktiviert sind.

    Beispiele:

    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, verwenden Sie den Parameter username. Dadurch erhält der angegebene Benutzer Zugriff auf die OCI$RESOURCE_PRINCIPAL-Zugangsdaten.

Beispiele:

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 und stellt die Zugangsdaten für den Zugriff auf Oracle Cloud Infrastructure-Ressourcen bereit.

Führen Sie, falls noch nicht geschehen, die folgenden erforderlichen Schritte aus:

So verwenden Sie eine DBMS_CLOUD-Prozedur mit Resource Principal-Zugangsdaten:

  1. Verwenden Sie eine DBMS_CLOUD-Prozedur oder -Funktion, 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, wie in Zugangsdaten erstellen und Daten in eine vorhandene Tabelle kopieren dargestellt, beachten Sie, dass Schritt 1 (Zugangsdaten erstellen) nicht erforderlich ist, wenn Sie den Resource Principal verwenden, weil Sie die vom System definierten OCI$RESOURCE_PRINCIPAL-Zugangsdaten verwenden.