Usa Resource Principal per accedere alle risorse di Oracle Cloud Infrastructure

Puoi utilizzare un principal delle risorse Oracle Cloud Infrastructure con Autonomous Database. L'utente o l'amministratore della tenancy definisce i criteri di Oracle Cloud Infrastructure e un gruppo dinamico che consente di accedere alle risorse Oracle Cloud Infrastructure con un principal di risorse. Non è necessario creare un oggetto credenziali e Autonomous Database crea e protegge le credenziali del principal risorsa utilizzate per accedere alle risorse Oracle Cloud Infrastructure specificate.

Informazioni sull'uso di Resource Principal per l'accesso alle risorse di Oracle Cloud Infrastructure

Puoi utilizzare un principal risorsa per autenticare e accedere alle risorse di Oracle Cloud Infrastructure.

Un principal risorsa è costituito da un token di sessione temporaneo e da credenziali sicure che consentono al database di autenticarsi in altri servizi Oracle Cloud Infrastructure. Utilizzando un principal risorsa per accedere ai servizi, il token memorizzato con le credenziali in Autonomous Database è valido solo per le risorse a cui è stato concesso l'accesso al gruppo dinamico.

Per utilizzare Resource Principal, l'utente o l'amministratore della tenancy definiscono i criteri Oracle Cloud Infrastructure e un gruppo dinamico che consente di accedere alle risorse Oracle Cloud Infrastructure con un principal di risorse. Non è necessario creare un oggetto credenziali e Autonomous Database crea e protegge le credenziali del principal risorsa utilizzate per accedere alle risorse Oracle Cloud Infrastructure specificate.

Ad esempio, durante l'utilizzo di Autonomous Database, potresti voler utilizzare le risorse Oracle Cloud Infrastructure per effettuare le operazioni riportate di seguito.

  • Accedere ai dati da un bucket di storage degli oggetti, eseguire alcune operazioni sui dati, quindi scrivere di nuovo i dati modificati nel bucket di storage degli oggetti.
  • Accedi ai tuoi vault, chiavi o segreti.

  • Elenca le richieste di lavoro o elenca gli errori delle richieste di lavoro.

Quando si utilizza il database, è possibile eseguire l'autenticazione e accedere al database come utente del database. Un utente di Autonomous Database non dispone di un'identità Oracle Cloud Infrastructure Identity and Access Management (IAM), pertanto come utente di Autonomous Database non è possibile utilizzare le credenziali del database per accedere ai servizi Oracle Cloud Infrastructure. Senza un principal risorsa è necessario ottenere le credenziali per accedere alle risorse Oracle Cloud Infrastructure e creare un oggetto credenziali per accedere a una risorsa da Autonomous Database.

Un principal risorsa consente alle risorse di essere autorizzate a eseguire azioni sui servizi Oracle Cloud Infrastructure. Ogni risorsa ha la propria identità e la risorsa esegue l'autenticazione utilizzando i certificati aggiunti. Questi certificati vengono creati, assegnati alle risorse e ruotati in modo automatico, evitando di dover creare e gestire le proprie credenziali per accedere alla risorsa.

Autonomous Database ti consente di utilizzare un principal risorsa per eseguire l'autenticazione alle API Oracle Cloud Infrastructure utilizzando le interfacce seguenti:

  • Procedure e funzioni DBMS_CLOUD che acquisiscono un argomento di credenziale
  • API SDK PL/SQL di Oracle Cloud Infrastructure

Quando esegui l'autenticazione utilizzando un principal delle risorse, Autonomous Database fornisce un metodo sicuro per accedere alle risorse Oracle Cloud Infrastructure.

Per impostare un principal delle risorse in Autonomous Database sono necessari diversi passi:

Quando esegui l'autenticazione utilizzando un principal risorsa, non è necessario creare e gestire le credenziali per accedere alle risorse di Oracle Cloud Infrastructure. Autonomous Database rende disponibile il principal delle risorse e ne protegge il principal.

Eseguire i prerequisiti per utilizzare il principal delle risorse con Autonomous Database

Prima di effettuare una chiamata a una risorsa Oracle Cloud Infrastructure utilizzando un principal risorsa, un amministratore della tenancy Oracle Cloud Infrastructure deve creare criteri, gruppi dinamici e regole di Oracle Cloud Infrastructure che definiscono i privilegi del principal risorsa.

Prima di utilizzare un principal delle risorse con Autonomous Database, eseguire i passi riportati di seguito.

  1. Crea un gruppo dinamico di Oracle Cloud Infrastructure.
    1. Nella console di Oracle Cloud Infrastructure fare clic su Identità e sicurezza e fare clic su Gruppi dinamici
    2. Fare clic su Crea gruppo dinamico e immettere un nome, una descrizione e una regola oppure utilizzare Creazione regole per aggiungere una regola.
    3. Fare clic su Crea.

    Le risorse che soddisfano i criteri della regola sono membri del gruppo dinamico. Quando si definisce una regola per un gruppo dinamico, considerare la risorsa a cui verrà concesso l'accesso ad altre risorse.

    Considerare ad esempio i seguenti esempi.

    • Consente a un'istanza specifica di Autonomous Database di accedere a una risorsa.

      Autonomous Database è specificato nel parametro resource.id con un OCID:

      resource.id = 'your_Autonomous_Database_instance_OCID'

      È necessario aggiungere un nome di dominio quando la tenancy utilizza un dominio di Identity. Ad esempio:

      resource.id = 'identity_domain_name/your_Autonomous_Database_instance_OCID'
    • Consentire tutti gli Autonomous Database in un compartimento.

      Gli Autonomous Database sono specificati nel parametro resource.type e il compartimento è identificato da un OCID specificato nel parametro resource.compartment.id:

      ALL {resource.type = 'autonomousdatabase', resource.compartment.id = 'your_Compartment_OCID'}
    • Consenti tutte le risorse nel compartimento

      Il tipo di risorsa identificato dall'OCID, specificato nel parametro resource.compartment.id:

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

    Per ulteriori informazioni sulla creazione di un gruppo dinamico e sulla creazione di regole per l'aggiunta di risorse al gruppo, vedere Gestione dei gruppi dinamici.

  2. Scrivere istruzioni dei criteri per il gruppo dinamico per consentire l'accesso alle risorse di Oracle Cloud Infrastructure.
    1. Nella console di Oracle Cloud Infrastructure fare clic su Identity and Security e su Policy.
    2. Per scrivere i criteri per un gruppo dinamico, fare clic su Crea criterio e immettere un nome e una descrizione.
    3. Utilizzare la Costruzione guidata criteri per creare un criterio.

      Ad esempio, per creare un criterio che consenta l'accesso all'area di memorizzazione degli oggetti Oracle Cloud Infrastructure per gestire bucket e oggetti nell'area di memorizzazione degli oggetti in una tenancy:

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

      È necessario aggiungere un nome di dominio quando la tenancy utilizza un dominio di Identity. Ad esempio:

      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. Fare clic su Crea.
Nota

Il token principal risorsa viene inserito nella cache per due ore. Pertanto, se si modifica il criterio o il gruppo dinamico, è necessario attendere due ore per vedere l'effetto delle modifiche.

Per ulteriori informazioni sui criteri, vedere funzionamento dei criteri e Gestione dei criteri.

Consenti a Resource Principal di accedere alle risorse di Oracle Cloud Infrastructure

Eseguire i passi riportati di seguito per abilitare il principal delle risorse in Autonomous Database.

Come prerequisito, configurare gruppi dinamici e criteri. Per ulteriori informazioni, vedere Eseguire i prerequisiti per utilizzare il principal delle risorse con Autonomous Database.

Per abilitare un principal delle risorse in Autonomous Database:

  1. L'utente ADMIN abilita il principal delle risorse per l'istanza di Autonomous Database.

    Ad esempio:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL();
    
    PL/SQL procedure successfully completed. 
    
    Per ulteriori informazioni, vedere ENABLE_RESOURCE_PRINCIPAL Procedura.

    In questo modo viene creata la credenziale OCI$RESOURCE_PRINCIPAL.

  2. (Facoltativo) Questo passo è necessario solo se si desidera concedere l'accesso alle credenziali del principal risorsa a un utente del database diverso dall'utente ADMIN. Come utente ADMIN, abilitare il principal risorsa per un utente di database specificato.

    Ad esempio:

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

    Ciò concede all'utente adb_user l'accesso alla credenziale OCI$RESOURCE_PRINCIPAL.

    Se si desidera che l'utente specificato disponga dei privilegi per abilitare il principal risorsa per altri utenti, impostare il parametro grant_option su TRUE.

    Ad esempio:

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

    Dopo aver eseguito questo comando, adb_user può abilitare il principal delle risorse per un altro utente. Ad esempio, se si esegue la connessione come adb_user, è possibile eseguire il seguente comando:

    EXEC DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL(username => 'adb_user2');
    
    Per ulteriori informazioni, vedere ENABLE_RESOURCE_PRINCIPAL Procedura.
  3. Verificare che la credenziale del principal risorsa sia abilitata.

    Ad esempio, quando l'utente ADMIN esegue una query sulla vista DBA_CREDENTIALS:

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

    Ad esempio, come utente non ADMIN eseguire una query sulla vista ALL_TAB_PRIVS:

    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

L'abilitazione del principal risorsa su un'istanza di Autonomous Database è un'operazione una tantum. Non è necessario abilitare di nuovo il principal risorsa, a meno che non si esegua DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL per disabilitare il principal risorsa.

Disabilita principal risorsa su Autonomous Database

Mostra i passi per disabilitare il principal risorsa per tutti gli utenti di Autonomous Database o per un utente specificato.

  1. Per disabilitare il principal risorsa per tutti gli utenti, come utente ADMIN, eseguire il comando seguente:
    EXEC DBMS_CLOUD_ADMIN.DISABLE_RESOURCE_PRINCIPAL();

    Questa operazione rimuove la credenziale OCI$RESOURCE_PRINCIPAL.

  2. Verificare che la credenziale del principal risorsa sia disabilitata.

    Ad esempio:

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

Per rimuovere l'accesso alla credenziale del principal risorsa per un utente di database specificato, includere il parametro username. In questo modo, l'accesso utente specificato alle credenziali OCI$RESOURCE_PRINCIPAL viene negato.

Ad esempio:

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

Per ulteriori informazioni, vedere DISABLE_RESOURCE_PRINCIPAL Procedura.

Usa principal risorsa con DBMS_CLOUD

Quando si specificano le credenziali del principal risorsa con le chiamate DBMS_CLOUD, il database esegue l'autenticazione delle richieste Oracle Cloud Infrastructure e fornisce le credenziali per accedere alle risorse Oracle Cloud Infrastructure.

Se non è già stato fatto, eseguire i passi dei prerequisiti necessari:

Per utilizzare una procedura DBMS_CLOUD con le credenziali del principal risorsa:

  1. Utilizzare una procedura o una funzione DBMS_CLOUD e specificare OCI$RESOURCE_PRINCIPAL come nome della credenziale.

    Ad esempio, puoi accedere a Oracle Cloud Infrastructure Object Storage utilizzando un principal risorsa:

    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;
    /
    

Se si confrontano i passi necessari per accedere allo storage degli oggetti come illustrato in Crea credenziali e copia dati in una tabella esistente, tenere presente che il passo 1, la creazione delle credenziali non è necessaria quando si utilizza il principal risorsa perché si utilizza la credenziale OCI$RESOURCE_PRINCIPAL definita dal sistema.