Utilizzare i nomi delle risorse Amazon (ARN) per accedere alle risorse AWS

Puoi utilizzare i nomi delle risorse Amazon (ARN) per accedere alle risorse AWS con Autonomous Database.

Informazioni sull'utilizzo dei nomi delle risorse Amazon (ARN) per accedere alle risorse AWS

Quando utilizzi l'autenticazione basata sui ruoli ARN con Autonomous Database, puoi accedere in modo sicuro alle risorse AWS senza creare e salvare le credenziali in base alle chiavi di accesso IAM AWS a lungo termine.

Ad esempio, potresti voler caricare i dati da un bucket AWS S3 nell'Autonomous Database, eseguire alcune operazioni sui dati e quindi scrivere i dati modificati nel bucket S3. Puoi farlo senza usare un ARN se hai le credenziali utente AWS per accedere al bucket S3. Tuttavia, l'utilizzo di ARN basati sui ruoli per accedere alle risorse AWS da Autonomous Database offre i seguenti vantaggi:

  • Puoi creare l'accesso basato sui ruoli, con criteri diversi per utenti o schemi diversi che richiedono l'accesso alle risorse AWS da un'istanza di Autonomous Database. Ciò consente di impostare un criterio per limitare l'accesso alle risorse AWS in base al ruolo. Ad esempio, l'impostazione di un criterio che limita l'accesso in sola lettura, per ruolo, a un bucket S3.
  • Le credenziali basate su ARN offrono una maggiore sicurezza in quanto non è necessario fornire credenziali utente AWS a lungo termine nel codice per accedere alle risorse AWS. Autonomous Database gestisce le credenziali temporanee generate dall'operazione AWS Assume Role.

Passi per configurare l'uso di ARN con Autonomous Database

Prima di creare una credenziale utilizzando un ARN in Autonomous Database, in AWS, l'amministratore dell'account deve definire un criterio che consente di accedere alle risorse AWS, ad esempio un bucket S3. Per impostazione predefinita, i servizi delle credenziali ARN non sono abilitati in Autonomous Database. L'utente ADMIN abilita le credenziali ARN per l'utente necessario che consente loro di creare e utilizzare le credenziali ARN nell'istanza di Autonomous Database.

In AWS, il ruolo ARN è l'identificativo per l'accesso fornito e può essere visualizzato sulla console AWS. Per una maggiore sicurezza, quando l'amministratore AWS configura il ruolo, i criteri e la relazione di fiducia per l'account AWS, deve anche configurare un ID esterno nella relazione di fiducia del ruolo.

L'ID esterno fornisce ulteriore protezione per l'assunzione di ruoli. L'amministratore AWS configura l'ID esterno come uno dei seguenti, in base all'istanza di Autonomous Database:

  • OCID compartimento

  • OCID database

  • OCID tenancy

In AWS, il ruolo può essere assunto solo da utenti sicuri identificati dall'ID esterno incluso nell'URL della richiesta, in cui l'ID esterno fornito nella richiesta corrisponde all'ID esterno configurato nella relazione di fiducia del ruolo.

Nota

L'impostazione dell'ID esterno è obbligatoria per la sicurezza.

La figura seguente descrive i passi di configurazione:

Segue la descrizione di adb_arn_config_steps.eps
Descrizione dell'immagine adb_arn_config_steps.eps

Passi per utilizzare gli ARN con DBMS_CLOUD

Ogni risorsa AWS ha la propria identità e la risorsa esegue l'autenticazione con l'istanza di Autonomous Database utilizzando una credenziale DBMS_CLOUD creata con parametri che identificano l'ARN. Autonomous Database crea e protegge le credenziali principali utilizzate per accedere alle risorse AWS.

Per creare una credenziale con parametri ARN per accedere alle risorse AWS:

  1. Eseguire i passi dei prerequisiti nell'account AWS: nell'account AWS, dalla console di gestione AWS o utilizzando l'interfaccia CLI, creare i ruoli e i criteri per l'ARN utilizzati con Autonomous Database e aggiornare la relazione di affidabilità per il ruolo. L'ARN dell'utente Oracle viene configurato quando viene aggiornata la relazione di attendibilità per il ruolo.

    Per ulteriori informazioni, vedere Eseguire i prerequisiti di gestione AWS per utilizzare i nomi delle risorse Amazon (ARN).

  2. Eseguire i passi dei prerequisiti su Autonomous Database: in Autonomous Database è necessario abilitare l'utente ADMIN o un altro utente per utilizzare le credenziali con i parametri ARN per accedere alle risorse AWS.

    Per ulteriori informazioni, vedere Eseguire i prerequisiti di Autonomous Database per utilizzare gli ARN Amazon.

  3. Crea le credenziali con DBMS_CLOUD.CREATE_CREDENTIAL e fornisci i parametri che identificano un ruolo AWS. Utilizzando l'oggetto credenziale, Autonomous Database può accedere alle risorse AWS come specificato nei criteri definiti per il ruolo nell'account AWS.

    Per informazioni dettagliate su questi passi, vedere Crea credenziali con parametri ARN per accedere alle risorse AWS.

  4. Utilizzare l'oggetto credenziale creato nel passo precedente con una procedura o una funzione DBMS_CLOUD che utilizza un parametro di credenziale, ad esempio DBMS_CLOUD.COPY_DATA o DBMS_CLOUD.LIST_OBJECTS.

Eseguire i prerequisiti di gestione AWS per utilizzare i nomi delle risorse Amazon (ARN)

Utilizzando la Console di gestione AWS o utilizzando le API, crea un utente, un ruolo, criteri e una relazione di fiducia AWS. Eseguire questi passi prima di utilizzare DBMS_CLOUD.CREATE_CREDENTIAL per creare una credenziale con un parametro ARN in Autonomous Database.

Per utilizzare un ARN per accedere alle risorse AWS, l'amministratore AWS definisce i criteri e un principal che consente di accedere alle risorse AWS. Ad esempio, durante l'utilizzo di Autonomous Database, potrebbe essere necessario accedere ai dati da un bucket S3, eseguire alcune operazioni sui dati, quindi scrivere i dati modificati nel bucket S3.

Nota

A seconda della configurazione AWS esistente e dell'ID esterno utilizzato, non è necessario creare un nuovo ruolo e criterio per ogni istanza di Autonomous Database. Se si dispone già di un ruolo AWS contenente i criteri necessari per accedere a una risorsa, ad esempio per accedere allo storage cloud S3, è possibile modificare la relazione di attendibilità per includere i dettagli nel Passo 3. Allo stesso modo, se si dispone già di un ruolo con la relazione di attendibilità necessaria, è possibile utilizzare tale ruolo per accedere a tutti i database in un compartimento o tenancy OCI se si utilizza un ID esterno che specifica l'OCID compartimento o l'OCID tenancy.

Dalla Console di gestione AWS o utilizzando le API, un amministratore AWS esegue le seguenti operazioni:

  1. Creare un criterio, Nel criterio si specificano le autorizzazioni per accedere alle risorse AWS, ad esempio i bucket S3.
  2. Creare un ruolo e associare il criterio al ruolo.
    1. Accedi a AWS Management Console e scegli Identity and Access Management (IAM).
    2. Fare clic su Crea ruolo.
    3. Selezionare Altro account AWS.
    4. Immettere l'ID account.
      Viene utilizzato come valore temporaneo. In seguito lo sostituisci con l'ID account utilizzato per accedere alle risorse AWS.
    5. Nell'area Opzioni selezionare Richiedi ID esterno e immettere un ID esterno temporaneo, ad esempio 0000. In seguito si sostituisce questo ID esterno con un valore valido.
    6. Fare clic su Autorizzazioni successive per allegare i criteri creati nel Passo 1 o altri criteri che si desidera applicare al ruolo.
    7. Fare clic su Tag successive e applicare o creare tag in base alle esigenze per il ruolo.
    8. Fare clic su Revisione successiva e aggiungere un valore per Nome ruolo e Descrizione ruolo.
    9. Fare clic su Crea ruolo.

    Utilizzare l'ARN del ruolo con DBMS_CLOUD.CREATE_CREDENTIAL per creare oggetti credenziali con parametri ARN per accedere alle risorse AWS.

    Per ulteriori informazioni, vedere Creazione di un ruolo per delegare le autorizzazioni a un utente IAM.

  3. Specificare una relazione attendibile per il ruolo.
    1. Nell'elenco Ruoli, in Nome ruolo, selezionare il ruolo creato.
    2. Nella pagina Riepilogo ruoli per il ruolo selezionato, selezionare la scheda Relazioni attendibili.
    3. Nella relazione di trust fare clic su Modifica relazione di trust.
    4. Modificare la relazione attendibile per specificare il parametro Principal AWS.

      Questo ARN utente AWS è disponibile nella vista CLOUD_INTEGRATIONS. Per ulteriori informazioni, vedere Eseguire i prerequisiti di Autonomous Database per utilizzare gli ARN Amazon.

    5. Modificare la relazione di attendibilità per specificare l'ID esterno.

      In Autonomous Database quando crei una credenziale ARN AWS con DBMS_CLOUD.CREATE_CREDENTIAL o quando abiliti AWS ARN con DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, per impostazione predefinita il valore del parametro external_id_type è database_ocid. Facoltativamente, è possibile impostare il valore external_id_type su uno dei valori supportati: database_ocid, compartment_ocid o tenant_ocid.

      Quando si utilizza l'OCID database come ID esterno, la relazione di attendibilità del criterio considera attendibile solo l'istanza di Autonomous Database specificata con l'OCID. Se si utilizza un OCID compartimento, la relazione di attendibilità del criterio si basa su tutte le istanze di Autonomous Database nel compartimento e puoi utilizzare lo stesso ruolo ARN per concedere l'accesso alle risorse AWS a qualsiasi Autonomous Database nel compartimento specificato. Allo stesso modo, se utilizzi l'OCID tenancy, puoi utilizzare lo stesso ruolo ARN per concedere l'accesso alle risorse AWS a qualsiasi Autonomous Database nella tenancy specificata.

      In precedenza nel Passo 2 è stato impostato l'ID esterno della relazione di attendibilità sul valore temporaneo 0000.

      In AWS è possibile configurare il valore ID esterno della relazione di attendibilità in modo che corrisponda a uno dei seguenti elementi:

      • Quando il tipo external_id_type è database_ocid, in AWS è possibile configurare l'ID esterno della relazione di fiducia del ruolo in modo che sia l'OCID del database.

        L'OCID del database è disponibile eseguendo la seguente query:

        SELECT cloud_identity FROM v$pdbs;

        Per ulteriori informazioni, vedere Ottieni dettagli tenancy.

      • Quando il tipo external_id_type è compartment_ocid, in AWS si configura l'ID esterno della relazione di attendibilità del ruolo come OCID compartimento.

        L'OCID compartimento è disponibile nella pagina dei dettagli del compartimento dalla console di Oracle Cloud Infrastructure. Per trovare la pagina Dettagli compartimento, dal menu di navigazione a sinistra di Oracle Cloud Infrastructure fare clic su Identità e sicurezza, quindi selezionare Compartimenti. Selezionare il compartimento che contiene l'istanza di Autonomous Database per visualizzare l'ID compartimento.

      • Quando il tipo external_id_type è tenant_ocid, in AWS si configura l'ID esterno della relazione di attendibilità del ruolo come OCID tenancy.

        L'OCID tenancy è disponibile nella pagina dei dettagli della tenancy dalla console di Oracle Cloud Infrastructure. Per trovare la pagina dei dettagli della tenancy, dal menu di navigazione a sinistra di Oracle Cloud Infrastructure fare clic su Governance e amministrazione e selezionare Dettagli tenancy. La scheda Informazioni sulla tenancy mostra l'OCID tenancy.

      • Quando si imposta il valore per ExternalID, per impostazione predefinita il valore OCID deve essere in lettere maiuscole. Se si desidera fornire l'OCID in lettere minuscole, impostare la condizione "StringEqualsIgnoreCase" anziché "StringEquals" nel file JSON quando si modifica la relazione di attendibilità.

      Segue la descrizione di arn_aws_create_role_aws_trust_final.png
      Descrizione dell'immagine arn_aws_create_role_aws_trust_final.png

Al termine della configurazione del ruolo ARN, è possibile abilitare l'ARN nell'istanza. Per ulteriori informazioni, vedere Eseguire i prerequisiti di Autonomous Database per utilizzare gli ARN Amazon.

Eseguire i prerequisiti di Autonomous Database per utilizzare gli ARN Amazon

Prima di utilizzare una risorsa AWS con DBMS_CLOUD.CREATE_CREDENTIAL con un parametro ARN, l'utente ADMIN deve abilitare ARN nell'istanza di Autonomous Database.

Per impostazione predefinita, i servizi delle credenziali ARN non sono abilitati in Autonomous Database. L'utente ADMIN esegue la procedura DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH per consentire all'utente ADMIN o ad altri utenti di creare credenziali con parametri ARN.

  1. Abilita l'uso delle credenziali ARN nell'istanza di Autonomous Database.
    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;
    /
    

    Se si desidera che l'utente specificato disponga dei privilegi per abilitare le credenziali ARN per altri utenti, impostare il parametro params grant_option su TRUE.

    Ad esempio:

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

    Dopo aver eseguito questo comando, adb_user dispone dei privilegi per abilitare le credenziali ARN per altri utenti.

    Ad esempio, se si esegue la connessione come adb_user, è possibile eseguire il comando seguente:

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

    Per ulteriori informazioni, vedere ENABLE_PRINCIPAL_AUTH Procedure.

  2. Eseguire una query sulla vista CLOUD_INTEGRATIONS per ottenere l'ARN dell'utente AWS di Oracle.
    SELECT param_value FROM CLOUD_INTEGRATIONS
            WHERE param_name = 'aws_user_arn';
    
    PARAM_VALUE
    --------------------------------------------  
    arn:aws:iam::account-ID:user/username

    La vista CLOUD_INTEGRATIONS è disponibile per l'utente ADMIN o per un utente con privilegi DWROLE.

    L'amministratore AWS utilizza il valore aws_user_arn durante la configurazione della relazione di fiducia del ruolo AWS con il ruolo e i criteri nel sistema AWS. Fornire questo valore concede l'autorizzazione sul lato AWS per DBMS_CLOUD ad accedere alle risorse AWS.

Dopo aver abilitato ARN sull'istanza di Autonomous Database eseguendo DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, la credenziale denominata AWS$ARN è disponibile per l'uso con qualsiasi API DBMS_CLOUD che accetta una credenziale come input. Ad eccezione della credenziale denominata AWS$ARN, puoi anche creare credenziali aggiuntive con parametri ARN per accedere alle risorse AWS. Per ulteriori informazioni, vedere Creare credenziali con parametri ARN per accedere alle risorse AWS.

Creare credenziali con parametri ARN per accedere alle risorse AWS

Dopo che l'uso di ARN è abilitato per l'istanza di Autonomous Database e l'ARN è configurato dall'amministratore AWS, in Autonomous Database è possibile creare un oggetto credenziale con parametri ARN.

Autonomous Database crea e protegge le credenziali principal utilizzate per accedere alle risorse Amazon quando si fornisce l'oggetto credenziale con procedure e funzioni DBMS_CLOUD.

Per utilizzare le risorse Amazon con Autonomous Database, effettuare le operazioni riportate di seguito.

  1. Creare le credenziali utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL con il parametro params per specificare il valore ARN. Ad esempio:
    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;
    /

    Questa operazione crea le credenziali nel database in formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.

    Per informazioni dettagliate sui parametri, vedere CREATE_CREDENTIAL Procedure.

  2. Utilizzare una procedura DBMS_CLOUD per accedere a una risorsa Amazon con le credenziali ARN.

    Ad esempio, utilizzare 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/');

Aggiorna credenziali con parametri ARN per risorse AWS

Le credenziali ARN utilizzate su Autonomous Database funzionano con il servizio di token AWS che consente di utilizzare credenziali temporanee basate su ruoli per accedere alle risorse AWS da Autonomous Database.

Quando un amministratore AWS revoca i criteri, i ruoli o la relazione di fiducia, è necessario aggiornare le credenziali o creare nuove credenziali per accedere alle risorse AWS.

Per aggiornare le credenziali, effettuare le operazioni riportate di seguito.

  1. Utilizzare DBMS_CLOUD.UPDATE_CREDENTIAL per aggiornare una credenziale basata su ARN per fornire un nuovo valore ARN.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'aws_role_arn',
         value => 'new_ARN_value'); 
    END;
    /

    L'attributo aws_role_arn viene aggiornato al nuovo valore new_ARN_value per la credenziale denominata DEF_CRED_ARN.

  2. Utilizzare DBMS_CLOUD.UPDATE_CREDENTIAL per aggiornare una credenziale basata su ARN per aggiornare il valore dell'attributo external_id_type.
    BEGIN
      DBMS_CLOUD.UPDATE_CREDENTIAL(
         credential_name => 'DEF_CRED_ARN',
         attribute => 'external_id_type',
         value => 'compartment_ocid'); 
    END;
    /

    Il valore dell'attributo external_id_type viene aggiornato al valore compartment_ocid.

Per ulteriori informazioni, vedere UPDATE_CREDENTIAL Procedure e CREATE_CREDENTIAL Procedure.