Amazon-Ressourcennamen (ARNs) für den Zugriff auf AWS-Ressourcen verwenden

Sie können mit Amazon-Ressourcennamen (ARNs) auf AWS-Ressourcen mit Autonomous Database zugreifen.

Amazon-Ressourcennamen (ARNs) für den Zugriff auf AWS-Ressourcen verwenden

Wenn Sie die rollenbasierte ARN-Authentifizierung mit Autonomous Database verwenden, können Sie sicher auf AWS-Ressourcen zugreifen, ohne Zugangsdaten basierend auf langfristigen AWS IAM-Zugriffsschlüsseln zu erstellen und zu speichern.

Beispiel: Sie möchten Daten aus einem AWS-Bucket S3 in Ihre Autonomous Database laden, einen Vorgang für die Daten ausführen und die geänderten Daten dann in den Bucket S3 zurückschreiben. Sie können dies ohne ARN tun, wenn Sie AWS-Benutzerzugangsdaten für den Zugriff auf den Bucket S3 haben. Die Verwendung rollenbasierter ARNs für den Zugriff auf AWS-Ressourcen von Autonomous Database bietet jedoch die folgenden Vorteile:

  • Sie können rollenbasierten Zugriff mit verschiedenen Policys für verschiedene Benutzer oder Schemas erstellen, die Zugriff auf AWS-Ressourcen von einer Autonomous Database-Instanz benötigen. Auf diese Weise können Sie eine Richtlinie festlegen, um den Zugriff auf AWS-Ressourcen nach Rolle zu begrenzen. Beispiel: Wenn Sie eine Policy festlegen, die den schreibgeschützten Zugriff nach Rolle auf einen S3-Bucket begrenzt.
  • ARN-basierte Zugangsdaten bieten eine bessere Sicherheit, da Sie keine langfristigen AWS-Benutzerzugangsdaten im Code angeben müssen, um auf AWS-Ressourcen zuzugreifen. Autonomous Database verwaltet die temporären Zugangsdaten, die aus dem AWS-Vorgang "Rolle annehmen" generiert wurden.

Schritte zum Konfigurieren der ARN-Nutzung mit Autonomous Database

Bevor Sie Zugangsdaten mit einer ARN in Autonomous Database in AWS erstellen, muss der Kontoadministrator eine Richtlinie definieren, mit der Sie auf AWS-Ressourcen zugreifen können, wie z.B. einen S3-Bucket. Standardmäßig sind ARN-Zugangsdatenservices in Autonomous Database nicht aktiviert. Der ADMIN-Benutzer aktiviert ARN-Zugangsdaten für den erforderlichen Benutzer, mit denen er ARN-Zugangsdaten in der Autonomous Database-Instanz erstellen und verwenden kann.

In AWS ist die Rolle ARN die Kennung für den bereitgestellten Zugriff und kann auf der AWS-Konsole angezeigt werden. Wenn der AWS-Administrator die Rolle, die Richtlinien und die Vertrauensbeziehung für das AWS-Konto konfiguriert, muss er für zusätzliche Sicherheit auch eine externe ID in der Vertrauensbeziehung der Rolle konfigurieren.

Die externe ID bietet zusätzlichen Schutz für die Übernahme von Rollen. Der AWS-Administrator konfiguriert die externe ID auf Basis der Autonomous Database-Instanz als eine der folgenden Optionen:

  • Die Compartment-OCID

  • Datenbank-OCID

  • Die Mandanten-OCID

In AWS kann die Rolle nur von vertrauenswürdigen Benutzern angenommen werden, die durch die in der Anforderungs-URL enthaltene externe ID identifiziert werden, wobei die angegebene externe ID in der Anforderung mit der in der Vertrauensbeziehung der Rolle konfigurierten externen ID übereinstimmt.

Hinweis

Das Festlegen der externen ID ist aus Sicherheitsgründen erforderlich.

Die folgende Abbildung zeigt die Konfigurationsschritte:

Beschreibung von adb_arn_config_steps.eps folgt
Beschreibung der Abbildung adb_arn_config_steps.eps

Schritte zur Verwendung von ARNs mit DBMS_CLOUD

Jede AWS-Ressource hat ihre eigene Identität, und die Ressource authentifiziert sich mit der Autonomous Database-Instanz mit einem DBMS_CLOUD-Zugangsdaten, das Sie mit Parametern erstellen, die den ARN identifizieren. Autonomous Database erstellt und sichert die Hauptzugangsdaten, die Sie für den Zugriff auf AWS-Ressourcen verwenden.

So erstellen Sie Zugangsdaten mit ARN-Parametern für den Zugriff auf AWS-Ressourcen:

  1. Erforderliche Schritte im AWS-Account ausführen: Erstellen Sie in Ihrem AWS-Account über die AWS Management Console oder über die CLI die Rollen und Richtlinien für den ARN, den Sie mit Autonomous Database verwenden, und aktualisieren Sie die Vertrauensbeziehung für die Rolle. Die Oracle-Benutzer-ARN wird konfiguriert, wenn die Vertrauensbeziehung für die Rolle aktualisiert wird.

    Weitere Informationen finden Sie unter AWS-Management-Voraussetzungsprüfungen für die Verwendung von Amazon-Ressourcennamen (ARNs) ausführen.

  2. Erforderliche Schritte in Autonomous Database ausführen: In Autonomous Database müssen Sie den ADMIN-Benutzer oder einen anderen Benutzer aktivieren, um Zugangsdaten mit ARN-Parametern für den Zugriff auf AWS-Ressourcen zu verwenden.

    Weitere Informationen finden Sie unter Autonomous Database-Voraussetzungsprüfungen für die Verwendung von Amazon-ARNs ausführen.

  3. Erstellen Sie Zugangsdaten mit DBMS_CLOUD.CREATE_CREDENTIAL, und geben Sie die Parameter an, die eine AWS-Rolle identifizieren. Mit dem Zugangsdatenobjekt kann Autonomous Database auf AWS-Ressourcen zugreifen, wie in den Richtlinien angegeben, die für die Rolle im AWS-Account definiert sind.

    Weitere Informationen zu diesen Schritten finden Sie unter Zugangsdaten mit ARN-Parametern für den Zugriff auf AWS-Ressourcen erstellen.

  4. Verwenden Sie das Zugangsdatenobjekt, das Sie im vorherigen Schritt erstellt haben, mit einer DBMS_CLOUD-Prozedur oder -Funktion, die einen Zugangsdatenparameter wie DBMS_CLOUD.COPY_DATA oder DBMS_CLOUD.LIST_OBJECTS verwendet.

AWS-Management-Voraussetzungsprüfungen für die Verwendung von Amazon-Ressourcennamen (ARNs) ausführen

Erstellen Sie mit der AWS Management Console oder mithilfe der APIs einen AWS-Benutzer, eine Rolle, Richtlinien und eine Vertrauensbeziehung. Sie führen diese Schritte aus, bevor Sie mit DBMS_CLOUD.CREATE_CREDENTIAL Zugangsdaten mit einem ARN-Parameter in Autonomous Database erstellen.

Um einen ARN für den Zugriff auf AWS-Ressourcen zu verwenden, definiert der AWS-Administrator die Richtlinien und einen Principal, mit dem Sie auf AWS-Ressourcen zugreifen können. Beispiel: Bei Verwendung von Autonomous Database möchten Sie aus einem S3-Bucket auf Daten zugreifen, einige Vorgänge für die Daten ausführen und die geänderten Daten dann in den S3-Bucket zurückschreiben.

Hinweis

Je nach vorhandener AWS-Konfiguration und der von Ihnen verwendeten externen ID müssen Sie keine neue Rolle und Policy für jede Autonomous Database-Instanz erstellen. Wenn Sie bereits eine AWS-Rolle mit der erforderlichen Policy für den Zugriff auf eine Ressource haben, z.B. für den Zugriff auf den Cloud-Speicher S3, können Sie die Vertrauensbeziehung so ändern, dass die Details in Schritt 3 enthalten sind. Wenn Sie bereits eine Rolle mit der erforderlichen Vertrauensbeziehung haben, können Sie mit dieser Rolle auf alle Datenbanken in einem OCI-Compartment oder -Mandanten zugreifen, wenn Sie eine externe ID verwenden, mit der die Compartment-OCID oder Mandanten-OCID angegeben wird.

Über die AWS Management Console oder mithilfe der APIs führt ein AWS-Administrator die folgenden Schritte aus:

  1. Erstellen einer Policy. In der Policy geben Sie Berechtigungen für den Zugriff auf AWS-Ressourcen an, wie S3-Buckets.

    Weitere Informationen finden Sie unter IAM-Policy für den Zugriff auf Amazon S3-Ressourcen erstellen.

  2. Erstellen Sie eine Rolle, und hängen Sie die Policy an die Rolle an.
    1. Greifen Sie auf die AWS Management Console zu, und wählen Sie Identity and Access Management (IAM).
    2. Klicken Sie auf Rolle erstellen.
    3. Wählen Sie Anderes AWS-Konto aus.
    4. Geben Sie Ihre Account-ID ein.
      Sie verwenden diesen Wert als temporären Wert. Später ersetzen Sie diese durch die Konto-ID, die Sie für den Zugriff auf AWS-Ressourcen verwenden.
    5. Wählen Sie im Bereich Optionen die Option Externe ID erforderlich aus, und geben Sie eine temporäre externe ID ein, wie 0000. Später ersetzen Sie diese externe ID durch einen gültigen Wert.
    6. Klicken Sie auf Nächste Berechtigungen, um die Policys anzuhängen, die Sie in Schritt 1 erstellt haben, oder andere Policys, die Sie auf die Rolle anwenden möchten.
    7. Klicken Sie auf Nächste Tags, und wenden Sie Tags nach Bedarf für die Rolle an, oder erstellen Sie sie.
    8. Klicken Sie auf Nächste Prüfung, und fügen Sie einen Rollennamen und eine Rollenbeschreibung hinzu.
    9. Klicken Sie auf Rolle erstellen.

    Sie verwenden die ARN der Rolle mit DBMS_CLOUD.CREATE_CREDENTIAL, um Zugangsdatenobjekte mit ARN-Parametern für den Zugriff auf AWS-Ressourcen zu erstellen.

    Weitere Informationen finden Sie unter Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzer erstellen.

  3. Geben Sie eine Vertrauensbeziehung für die Rolle an.
    1. Wählen Sie in der Liste "Rollen" unter Rollenname die erstellte Rolle aus.
    2. Wählen Sie auf der Seite "Rollenübersicht" für die ausgewählte Rolle die Registerkarte Vertrauensbeziehungen aus.
    3. Klicken Sie in der Vertrauensbeziehung auf Vertrauensbeziehung bearbeiten.
    4. Bearbeiten Sie die Vertrauensbeziehung, um den Principal-Parameter AWS anzugeben.

      Diese AWS-Benutzer-ARN ist in der Ansicht CLOUD_INTEGRATIONS verfügbar. Weitere Informationen finden Sie unter Autonomous Database-Voraussetzungsprüfungen für die Verwendung von Amazon-ARNs ausführen.

    5. Bearbeiten Sie die Vertrauensbeziehung, um die externe ID anzugeben.

      Wenn Sie in Autonomous Database AWS-ARN-Zugangsdaten mit DBMS_CLOUD.CREATE_CREDENTIAL erstellen oder AWS-ARN mit DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH aktivieren, lautet der Parameterwert external_id_type standardmäßig database_ocid. Optional können Sie den Wert external_id_type auf einen der unterstützten Werte setzen: database_ocid, compartment_ocid oder tenant_ocid.

      Wenn Sie die Datenbank-OCID als externe ID verwenden, vertraut die Vertrauensbeziehung der Policy nur der mit der OCID angegebenen Autonomous Database-Instanz. Wenn Sie eine Compartment-OCID verwenden, vertraut die Vertrauensbeziehung der Policy allen Autonomous Database-Instanzen im Compartment. Sie können dieselbe ARN-Rolle verwenden, um Zugriff auf AWS-Ressourcen für jede Autonomous Database im angegebenen Compartment zu erteilen. Wenn Sie die Mandanten-OCID verwenden, können Sie dieselbe ARN-Rolle verwenden, um Zugriff auf AWS-Ressourcen für jede Autonomous Database im angegebenen Mandanten zu erteilen.

      Zuvor haben Sie in Schritt 2 die externe Vertrauensbeziehung-ID auf den temporären Wert 0000 gesetzt.

      In AWS konfigurieren Sie den Wert für die externe ID der Vertrauensbeziehung so, dass er mit einem der folgenden Werte übereinstimmt:

      • Wenn der Typ external_id_type database_ocid ist, konfigurieren Sie in AWS die externe Vertrauensbeziehungs-ID der Rolle als Datenbank-OCID.

        Die Datenbank-OCID ist verfügbar, indem Sie die folgende Abfrage ausführen:

        SELECT cloud_identity FROM v$pdbs;

        Weitere Informationen finden Sie unter Details zum Mandanten abrufen.

      • Wenn der Typ external_id_type compartment_ocid ist, konfigurieren Sie in AWS die externe Vertrauensbeziehungs-ID der Rolle als Compartment-OCID.

        Die Compartment-OCID ist auf der Seite "Compartment-Details" in der Oracle Cloud Infrastructure-Konsole verfügbar. Um die Seite "Compartment-Details" zu finden, klicken Sie im linken Navigationsmenü von Oracle Cloud Infrastructure auf Identität und Sicherheit, und wählen Sie Compartments aus. Wählen Sie das Compartment aus, das die Autonomous Database-Instanz enthält, um die Compartment-ID anzuzeigen.

      • Wenn der Typ external_id_type tenant_ocid ist, konfigurieren Sie in AWS die externe Vertrauensbeziehungs-ID der Rolle als Mandanten-OCID.

        Die Mandanten-OCID ist auf der Seite "Mandantendetails" in der Oracle Cloud Infrastructure-Konsole verfügbar. Um die Seite mit den Mandantendetails zu suchen, klicken Sie im linken Navigationsmenü von Oracle Cloud Infrastructure auf Governance und Administration, und wählen Sie Mandantendetails aus. Auf der Registerkarte "Mandanteninformationen" wird die Mandanten-OCID angezeigt.

      • Wenn Sie den Wert für ExternalID festlegen, muss der OCID-Wert standardmäßig in Großbuchstaben angegeben werden. Wenn Sie die OCID in Kleinbuchstaben angeben möchten, legen Sie die Bedingung "StringEqualsIgnoreCase" anstelle von "StringEquals" in der JSON fest, wenn Sie die Vertrauensbeziehung bearbeiten.

      Beschreibung von arn_aws_create_role_aws_trust_final.png folgt
      Beschreibung der Abbildung arn_aws_create_role_aws_trust_final.png

Nachdem die ARN-Rollenkonfiguration abgeschlossen ist, können Sie ARN auf der Instanz aktivieren. Weitere Informationen finden Sie unter Autonomous Database-Voraussetzungsprüfungen für die Verwendung von Amazon-ARNs ausführen.

Autonomous Database-Voraussetzungsprüfungen für die Verwendung von Amazon-ARNs ausführen

Bevor der ADMIN-Benutzer eine AWS-Ressource mit DBMS_CLOUD.CREATE_CREDENTIAL und einem ARN-Parameter verwendet, muss er ARN in der Autonomous Database-Instanz aktivieren.

Standardmäßig sind ARN-Zugangsdatenservices in Autonomous Database nicht aktiviert. Der ADMIN-Benutzer führt die Prozedur DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH aus, mit der der ADMIN-Benutzer oder andere Benutzer Zugangsdaten mit ARN-Parametern erstellen können.

  1. Aktivieren Sie die Verwendung von ARN-Zugangsdaten in der Autonomous Database-Instanz.
    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            username => 'adb_user',
            params => JSON_OBJECT( 
                    'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN'));
    END;
    /
    

    Wenn der angegebene Benutzer über Berechtigungen zum Aktivieren von ARN-Zugangsdaten für andere Benutzer verfügen soll, setzen Sie den Parameter params grant_option auf TRUE.

    Beispiel:

    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
         username => 'adb_user',
         params => JSON_OBJECT(
                         'aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
                         'grant_option' value TRUE ));
    END;
    /

    Nachdem Sie diesen Befehl ausgeführt haben, verfügt adb_user über die Berechtigungen zum Aktivieren von ARN-Zugangsdaten für andere Benutzer.

    Beispiel: Wenn Sie eine Verbindung als adb_user herstellen, können Sie den folgenden Befehl ausführen:

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            username => 'adb_user2'); 
    END;
    /
    

    Weitere Informationen finden Sie unter Prozedur ENABLE_PRINCIPAL_AUTH.

  2. Fragen Sie die Ansicht CLOUD_INTEGRATIONS ab, um die AWS-Benutzer-ARN von Oracle abzurufen.
    SELECT param_value FROM CLOUD_INTEGRATIONS
            WHERE param_name = 'aws_user_arn';
    
    PARAM_VALUE
    --------------------------------------------  
    arn:aws:iam::account-ID:user/username

    Die Ansicht CLOUD_INTEGRATIONS ist für den ADMIN-Benutzer oder einen Benutzer mit DWROLE-Berechtigungen verfügbar.

    Der AWS-Administrator verwendet den Wert aws_user_arn, wenn die Vertrauensbeziehung der AWS-Rolle mit der Rolle und den Richtlinien auf dem AWS-System konfiguriert wird. Wenn Sie diesen Wert angeben, erhält DBMS_CLOUD auf AWS-Seite die Berechtigung für den Zugriff auf AWS-Ressourcen.

Nachdem Sie ARN in der Autonomous Database-Instanz aktiviert haben, indem Sie DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH ausführen, können die Zugangsdaten AWS$ARN mit jeder DBMS_CLOUD-API verwendet werden, die Zugangsdaten als Eingabe akzeptiert. Mit Ausnahme der Zugangsdaten AWS$ARN können Sie auch zusätzliche Zugangsdaten mit ARN-Parametern für den Zugriff auf AWS-Ressourcen erstellen. Weitere Informationen finden Sie unter Zugangsdaten mit ARN-Parameters für den Zugriff auf AWS-Ressourcen erstellen.

Zugangsdaten mit ARN-Parametern für den Zugriff auf AWS-Ressourcen erstellen

Nachdem die ARN-Verwendung für die Autonomous Database-Instanz aktiviert wurde und die ARN vom AWS-Administrator konfiguriert wurde, können Sie in Autonomous Database ein Zugangsdatenobjekt mit ARN-Parametern erstellen.

Autonomous Database erstellt und sichert die Principal-Zugangsdaten, mit denen Sie auf die Amazon-Ressourcen zugreifen, wenn Sie das Zugangsdatenobjekt mit DBMS_CLOUD-Prozeduren und -Funktionen bereitstellen.

Um Amazon-Ressourcen mit Autonomous Database zu verwenden, gehen Sie wie folgt vor:

  1. Erstellen Sie Zugangsdaten mit der Prozedur DBMS_CLOUD.CREATE_CREDENTIAL und dem Parameter params, um den ARN-Wert anzugeben. Beispiel:
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_ARN',
        params =>
            JSON_OBJECT('aws_role_arn' value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',                                            
                        'external_id_type' value 'database_ocid')
      );
    END;
    /

    Dieser Vorgang erstellt die Zugangsdaten in einem verschlüsselten Format in der Datenbank. Sie können einen beliebigen Namen als Zugangsdatenname verwenden.

    Ausführliche Informationen zu den Parametern finden Sie unter Prozedur CREATE_CREDENTIAL.

  2. Verwenden Sie eine Prozedur DBMS_CLOUD, um mit den ARN-Zugangsdaten auf eine Amazon-Ressource zuzugreifen.

    Beispiel: Verwenden Sie DBMS_CLOUD.LIST_OBJECTS.

    SELECT object_name FROM DBMS_CLOUD.LIST_OBJECTS(
               credential_name => 'DEF_CRED_ARN',
               location_uri    => 'https://my-bucket.s3.us-west-2.amazonaws.com/');

Zugangsdaten mit ARN-Parametern für AWS-Ressourcen aktualisieren

Die ARN-Zugangsdaten, die Sie in Autonomous Database verwenden, arbeiten mit dem AWS-Tokenservice, mit dem Sie temporäre rollenbasierte Zugangsdaten für den Zugriff auf AWS-Ressourcen von Autonomous Database verwenden können.

Wenn ein AWS-Administrator die Richtlinien, Rollen oder die Vertrauensbeziehung entzieht, müssen Sie entweder die Zugangsdaten aktualisieren oder neue Zugangsdaten erstellen, um auf die AWS-Ressourcen zuzugreifen.

Führen Sie die folgenden Schritte durch, um Zugangsdaten zu aktualisieren:

  1. Verwenden Sie DBMS_CLOUD.UPDATE_CREDENTIAL, um ARN-basierte Zugangsdaten zu aktualisieren und einen neuen ARN-Wert anzugeben.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'aws_role_arn',
         value => 'new_ARN_value'); 
    END;
    /

    Dadurch wird das Attribut aws_role_arn für die Zugangsdaten DEF_CRED_ARN auf den neuen Wert new_ARN_value aktualisiert.

  2. Verwenden Sie DBMS_CLOUD.UPDATE_CREDENTIAL, um ARN-basierte Zugangsdaten zu aktualisieren und den Wert des Attributs external_id_type zu aktualisieren.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'external_id_type',
         value => 'compartment_ocid'); 
    END;
    /

    Dadurch wird der Attributwert external_id_type auf den Wert compartment_ocid aktualisiert.

Weitere Informationen finden Sie unter Prozedur UPDATE_CREDENTIAL und Prozedur CREATE_CREDENTIAL.