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'uso 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 tutta sicurezza alle risorse AWS senza creare e salvare credenziali basate su chiavi di accesso IAM AWS a lungo termine.

Ad esempio, potresti voler caricare i dati da un bucket S3 AWS in Autonomous Database, eseguire alcune operazioni sui dati e quindi scrivere di nuovo i dati modificati nel bucket S3. Puoi farlo senza utilizzare un ARN se disponi delle credenziali utente AWS per accedere al bucket S3. Tuttavia, l'uso degli ARN basati sui ruoli per accedere alle risorse AWS da Autonomous Database ha i seguenti vantaggi:

  • Puoi creare l'accesso basato sui ruoli, con criteri diversi per utenti o schemi diversi che devono accedere 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 Assume Role di AWS.

Passi per configurare l'uso 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 consenta di accedere alle risorse AWS, ad esempio un bucket S3. Per impostazione predefinita, i servizi di credenziali ARN non sono abilitati in Autonomous Database. L'utente ADMIN abilita le credenziali ARN per l'utente necessario, consentendogli 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 i ruoli assunti. L'amministratore AWS configura l'ID esterno come uno dei seguenti, in base all'istanza di Autonomous Database:

  • L'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

Per la sicurezza è necessario impostare l'ID esterno.

La figura seguente mostra 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 i 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 utilizzato 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 trust per il ruolo.

    Per ulteriori informazioni, vedere Eseguire i prerequisiti di gestione AWS per l'utilizzo dei 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 affinché utilizzi le credenziali con i parametri ARN per accedere alle risorse AWS.

    Per ulteriori informazioni, consulta la sezione relativa all'esecuzione dei prerequisiti di Autonomous Database per l'utilizzo degli ARN di Amazon.

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

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

  4. Utilizzare l'oggetto delle credenziali creato nel passo precedente con una procedura o una funzione DBMS_CLOUD che utilizza un parametro delle credenziali, 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 le API, crea un utente AWS, un ruolo, criteri e una relazione di fiducia. Eseguire questi passi prima di utilizzare DBMS_CLOUD.CREATE_CREDENTIAL per creare una credenziale con un parametro ARN su Autonomous Database.

Per utilizzare un ARN per accedere alle risorse AWS, l'amministratore AWS definisce le policy e un principal che consente di accedere alle risorse AWS. Ad esempio, durante l'uso di Autonomous Database potrebbe essere necessario accedere ai dati da un bucket S3, eseguire un'operazione sui dati e quindi scrivere di nuovo 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 un nuovo 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 trust in modo da includere i dettagli nel Passo 3. Allo stesso modo, se si dispone già di un ruolo con la relazione sicura 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 del compartimento o l'OCID della 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 l'accesso alle risorse AWS, ad esempio i bucket S3.
  2. Creare un ruolo e associare il criterio al ruolo.
    1. Accedi alla console di gestione AWS e scegli Identity and Access Management (IAM).
    2. Fare clic su Crea ruolo.
    3. Selezionare Un altro account AWS.
    4. Immettere l'ID account.
      Questo valore viene utilizzato come valore temporaneo. Successivamente, sostituiscilo 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 successivi e applicare o creare le tag in base alle esigenze per il ruolo.
    8. Fare clic su Revisione successiva e aggiungere un nome ruolo e una descrizione ruolo.
    9. Fare clic su Crea ruolo.

    L'ARN del ruolo viene utilizzato 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 sicura 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 di trust per specificare il parametro Principal AWS.

      Questo ARN dell'utente AWS è disponibile nella vista CLOUD_INTEGRATIONS. Per ulteriori informazioni, consulta la sezione relativa all'esecuzione dei prerequisiti di Autonomous Database per l'utilizzo degli ARN di Amazon.

    5. Modificare la relazione trust per specificare l'ID esterno.

      In Autonomous Database quando si crea una credenziale ARN AWS con DBMS_CLOUD.CREATE_CREDENTIAL o quando si abilita ARN AWS 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 del database come ID esterno, la relazione di fiducia del criterio considera attendibile solo l'istanza di Autonomous Database specificata con l'OCID. Se si utilizza un OCID compartimento, la relazione sicura del criterio considera attendibili tutte le istanze di Autonomous Database nel compartimento ed è possibile utilizzare lo stesso ARN ruolo per concedere l'accesso alle risorse AWS a qualsiasi Autonomous Database nel compartimento specificato. Allo stesso modo, se utilizzi l'OCID della tenancy, puoi utilizzare lo stesso ARN di ruolo 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 fiducia sul valore temporaneo 0000.

      In AWS è possibile configurare il valore dell'ID esterno della relazione di fiducia 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 come OCID del database.

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

        SELECT cloud_identity FROM v$pdbs;

        Per ulteriori informazioni, vedere Ottieni dettagli tenancy.

      • Quando il tipo external_id_type è compartment_ocid, in AWS è possibile configurare l'ID esterno della relazione di fiducia del ruolo come OCID del compartimento.

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

      • Quando il tipo external_id_type è tenant_ocid, in AWS è possibile configurare l'ID esterno della relazione di fiducia 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, nel menu di navigazione a sinistra di Oracle Cloud Infrastructure fare clic su Governance e amministrazione, quindi selezionare Dettagli tenancy. La scheda Informazioni sulla tenancy mostra l'OCID della 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" nella notazione JSON quando si modifica la relazione di sicurezza.

      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 ARN nell'istanza. Per ulteriori informazioni, consulta la sezione relativa all'esecuzione dei prerequisiti di Autonomous Database per l'utilizzo degli ARN di Amazon.

Esegui i prerequisiti di Autonomous Database per utilizzare gli ARN di Amazon

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

Per impostazione predefinita, i servizi di 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 i 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 seguente comando:

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

    Per ulteriori informazioni, vedere ENABLE_PRINCIPAL_AUTH Procedura.

  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 quando configura la relazione di fiducia del ruolo AWS con il ruolo e le policy nel sistema AWS. Fornire questo valore consente a DBMS_CLOUD di accedere alle risorse AWS sul lato AWS.

Dopo aver abilitato ARN nell'istanza di Autonomous Database eseguendo DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH, la credenziale denominata AWS$ARN è disponibile per l'uso con qualsiasi interfaccia 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 Crea credenziali con parametri ARN per accedere alle risorse AWS.

Crea credenziali con parametri ARN per accedere alle risorse AWS

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

Autonomous Database crea e protegge le credenziali principali utilizzate per accedere alle risorse Amazon quando si fornisce l'oggetto credenziali 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 Procedura.

  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 in Autonomous Database funzionano con il servizio 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, eseguire le operazioni riportate di seguito.

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

    In questo modo l'attributo aws_role_arn viene aggiornato con il 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 con il valore compartment_ocid.

Per ulteriori informazioni, vedere UPDATE_CREDENTIAL Procedura e Procedura CREATE_CREDENTIAL.