Configurazione delle autorizzazioni IAM per l'integrazione di RDS per Oracle con Amazon S3 - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle autorizzazioni IAM per l'integrazione di RDS per Oracle con Amazon S3

Affinché RDS per Oracle si integri con Amazon S3, l'istanza database avere accesso a un bucket Amazon S3. Il Amazon VPC utilizzato dall'istanza database non deve fornire accesso agli endpoint Amazon S3.

RDS per Oracle supporta il trasferimento di file tra un'istanza DB in un account e un bucket Amazon S3 in un account diverso. Se sono necessari ulteriori passaggi, vengono annotati nelle sezioni seguenti.

Fase 3: creazione di una policy IAM per il ruolo di Amazon RDS

In questo passaggio, crei una policy AWS Identity and Access Management (IAM) con le autorizzazioni necessarie per trasferire file tra il bucket Amazon S3 e l'istanza DB RDS. Questo passaggio presuppone che tu abbia già creato un bucket S3.

Prima di creare la policy, prendi nota delle seguenti informazioni:

  • L'Amazon Resource Name (ARN) del bucket

  • L'ARN per la tua AWS KMS chiave, se il bucket utilizza la crittografia SSE-KMS o SSE-S3

    Nota

    Un'istanza database RDS per Oracle non può accedere ai bucket Amazon S3 crittografati con SSE-C.

Per ulteriori informazioni, consulta Protezione dei dati con la crittografia lato server nella Guida per l'utente di Amazon Simple Storage Service.

Per creare una policy IAM per consentire ad Amazon RDS l'accesso a un bucket Amazon S3
  1. Aprire la console di gestione IAM.

  2. In Gestione accessi scegli Policy.

  3. Scegliere Create Policy (Crea policy).

  4. Nella scheda Visual editor (Editor visivo) selezionare Choose a service (Scegli un servizio) e quindi S3.

  5. Per Operazioni, seleziona Espandi tutto, quindi sceglie le autorizzazioni del bucket e dell’oggetto necessarie per trasferire i file da un bucket Amazon S3 a Amazon RDS. Ad esempio, completa le seguenti operazioni:

    • Espandi Elenco, ListBucketquindi seleziona.

    • Espandi Leggi, quindi seleziona GetObject.

    • Espandi Scrittura, quindi seleziona PutObjecte DeleteObject.

    • Espandi Gestione delle autorizzazioni, quindi seleziona PutObjectAcl. Questa autorizzazione è necessaria se si prevede di caricare file in un bucket di proprietà di un account diverso e questo account ha bisogno del pieno controllo del contenuto del bucket.

    Le autorizzazioni oggetto sono autorizzazioni per operazioni sugli oggetti in Amazon S3. Devi concedere queste autorizzazioni agli oggetti presenti nel bucket e non al bucket stesso. Per ulteriori informazioni, consulta la pagina Autorizzazioni per le operazioni sugli oggetti.

  6. Scegli Aggiungi regola, quindi effettua le seguenti operazioni:

    1. Scegli Specifiche.

    2. In Bucket, scegli Aggiungi ARN. Inserisci l'ARN del bucket. Il nome del bucket viene inserito automaticamente. Quindi scegliere Add (Aggiungi).

    3. Se viene visualizzata la risorsa oggetto, scegli Aggiungi ARN per aggiungere risorse manualmente o scegli Qualsiasi.

      Nota

      È possibile impostare Amazon Resource Name (ARN) su un valore dell'ARN più specifico in modo da consentire ad Amazon RDS di accedere solo a specifici file o cartelle presenti in un bucket Amazon S3. Per ulteriori informazioni su come definire una policy di accesso per Amazon S3, consulta Gestione delle autorizzazioni di accesso alle risorse Amazon S3.

  7. (Facoltativo) Scegli Aggiungi autorizzazioni aggiuntive per aggiungere risorse alla policy. Ad esempio, completa le seguenti operazioni:

    1. Se il bucket è crittografato con una chiave KMS personalizzata, seleziona KMS per il servizio.

    2. In Operazioni manuali, seleziona quanto segue:

      • Encrypt

      • ReEncrypt da e per ReEncrypt

      • Decrypt

      • DescribeKey

      • GenerateDataKey

    3. In Risorse, scegli Specifiche.

    4. In Chiave, scegli Aggiungi ARN. Specifica l'ARN della chiave personalizzata come risorsa, quindi scegli Aggiungi.

      Per ulteriori informazioni, consulta Protezione dei dati utilizzando la crittografia lato server con chiavi KMS archiviate in AWS Key Management Service (SSE-KMS) nella Guida per l'utente di Amazon Simple Storage Service.

    5. Se desideri che Amazon RDS acceda per accedere ad altri bucket, aggiungi ARNs i relativi bucket. Facoltativamente, è anche possibile concedere l'accesso a tutti i bucket e gli oggetti in Amazon S3.

  8. Scegliere Next: Tags (Successivo: Tag) e Next: Review (Successivo: Verifica).

  9. Per Name (Nome), immettere un nome per la policy IAM, ad esempio rds-s3-integration-policy. Questo nome viene utilizzato quando si crea un ruolo IAM e lo si associa all'istanza database. È anche possibile aggiungere un valore Description (Descrizione) facoltativo.

  10. Seleziona Create Policy (Crea policy).

Crea una policy AWS Identity and Access Management (IAM) che conceda ad Amazon RDS l'accesso a un bucket Amazon S3. Dopo aver creato la policy, prendere nota del relativo ARN. L'ARN servirà in una fase successiva.

Includi le azioni appropriate nella policy in base al tipo di accesso richiesto:

  • GetObject – È necessario trasferire i file da un bucket Amazon S3 a Amazon RDS.

  • ListBucket – È necessario trasferire i file da un bucket Amazon S3 a Amazon RDS.

  • PutObject – È necessario trasferire i file da un bucket Amazon RDS a un bucket Amazon S3.

Il AWS CLI comando seguente crea una policy IAM denominata rds-s3-integration-policy con queste opzioni. Concede l'accesso a un bucket denominato amzn-s3-demo-bucket.

Esempio

Per LinuxmacOS, oUnix:

aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'

Nell'esempio seguente sono incluse le autorizzazioni per le chiavi KMS personalizzate.

aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:kms:::your-kms-arn" ] } ] }'

Per Windows:

aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }'

Nell'esempio seguente sono incluse le autorizzazioni per le chiavi KMS personalizzate.

aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "s3integration", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:PutObject", "kms:Decrypt", "kms:Encrypt", "kms:ReEncrypt", "kms:GenerateDataKey", "kms:DescribeKey", ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:kms:::your-kms-arn" ] } ] }'

Fase 2: (facoltativo) creazione di una policy IAM per il bucket Amazon S3

Questo passaggio è necessario solo nelle seguenti condizioni:

  • Prevedi di caricare i file su un bucket Amazon S3 da un account (account A) e di accedervi da un altro account (account B).

  • L'account B possiede il bucket.

  • L'account B necessita del pieno controllo degli oggetti caricati nel bucket.

Se le condizioni precedenti non si applicano al tuo scenario, passa a Fase 3: creazione di un ruolo IAM per l'istanza database e collegamento della policy.

Per creare la policy per il bucket, assicurati di disporre di quanto segue:

  • L'ID account dell'account A.

  • Il nome utente dell'account A

  • Il valore ARN per il bucket Amazon S3 nell'account B

Per creare o modificare una policy del bucket
  1. Accedi AWS Management Console e apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Nell'elenco Buckets (Bucket) scegliere il nome del bucket per il quale si desidera creare o modificare una policy di bucket.

  3. Seleziona Autorizzazioni.

  4. In Policy del bucket, scegli Modifica. Verrà visualizzata la pagina Modifica policy del bucket.

  5. Nella pagina Edit bucket policy (Modifica policy del bucket) vai negli Esempi di policy della Guida per l'utente di Amazon S3 e scegli Policy generator (Generatore di policy) per generare automaticamente una policy o modificare il JSON nella sezione Policy.

    Se scegli Policy generator, il AWS Policy Generator si apre in una nuova finestra:

    1. Nella pagina Generatore di policy di AWS , all'opzione Seleziona tipo di Policy, scegli Policy del bucket S3.

    2. Aggiungi un'istruzione inserendo le informazioni nei campi forniti, quindi scegli Aggiungi istruzione. Ripetere per tutte le istruzioni che si desidera aggiungere. Per ulteriori informazioni su questi campi, consulta Riferimento agli elementi delle policy IAM JSON nella Guida per l'utente IAM.

      Nota

      Per comodità, la pagina Modifica policy del bucket mostra l'ARN (Amazon Resource Name) del bucket corrente sopra il campo di testo della Policy. Puoi copiare questo ARN per utilizzarlo nelle istruzioni alla pagina Generatore di policy di AWS .

    3. Dopo aver aggiunto le istruzioni, scegli Genera policy.

    4. Copia il testo della policy generata, scegli Chiudi e torna alla pagina Modifica policy del bucket nella console di Amazon S3.

  6. Nella casella Policy, modificare la policy esistente o incollare la policy del bucket dal generatore di policy. Assicurati di risolvere gli avvisi di sicurezza, gli errori, gli avvisi generali e i suggerimenti prima di salvare la policy.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Example permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-A-ID:account-A-user" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket", "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] } ] }
  7. Scegli Salva le modifiche, che ti riporterà alla pagina Autorizzazioni bucket.

Fase 3: creazione di un ruolo IAM per l'istanza database e collegamento della policy

Questo passaggio presuppone che tu abbia creato la policy IAM in Fase 3: creazione di una policy IAM per il ruolo di Amazon RDS. In questo passaggio, si crea un ruolo per l'istanza database RDS per Oracle e quindi si collega la policy al ruolo.

Per creare un ruolo IAM per consentire ad Amazon RDS l'accesso a un bucket Amazon S3
  1. Aprire la console di gestione IAM.

  2. Nel pannello di navigazione, seleziona Roles (Ruoli).

  3. Selezionare Create role (Crea ruolo).

  4. Scegli un servizio in Servizio AWS .

  5. Per i casi d'uso per altri AWS servizi:, scegli RDS e poi RDS — Aggiungi ruolo al database. Quindi scegli Successivo.

  6. In Cerca, in Policy di autorizzazione, inserisci il nome della policy IAM creata in Fase 3: creazione di una policy IAM per il ruolo di Amazon RDS e seleziona la policy quando viene visualizzata nell'elenco. Quindi scegli Successivo.

  7. In Nome ruolo, specifica un nome per il ruolo IAM, ad esempio rds-s3-integration-role. È anche possibile aggiungere un valore Description (Descrizione) facoltativo.

  8. Scegliere Crea ruolo.

Per creare un ruolo e collegarvi una policy
  1. Creare un ruolo IAM che Amazon RDS può assumere per conto dell'utente per accedere ai bucket Amazon S3.

    Si consiglia di utilizzare le chiavi di contesto delle condizioni globali aws:SourceArn e aws:SourceAccount nelle relazioni di trust basate sulle risorse per limitare le autorizzazioni del servizio relative a una risorsa specifica. Questo è il modo più efficace per proteggersi dal problema di deputy confused.

    Puoi usare le chiavi di contesto delle condizioni globali e avere il valore aws:SourceArn che contiene l'ID dell'account. In questo caso, il valore aws:SourceAccount e l'account nel valore aws:SourceArn deve utilizzare lo stesso ID account quando viene utilizzato nella stessa istruzione.

    • Utilizzare aws:SourceArn se si desidera un accesso cross-service per una singola risorsa.

    • Utilizzare aws:SourceAccount se si desidera consentire l'associazione di qualsiasi risorsa in tale account all'uso cross-service.

    Nella relazione di trust, assicurati di utilizzare la chiave di contesto della condizione globale aws:SourceArn con l'Amazon Resource Name (ARN) completo delle risorse che accedono al ruolo.

    Il AWS CLI comando seguente crea il ruolo denominato rds-s3-integration-role per questo scopo.

    Esempio

    Per LinuxmacOS, oUnix:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "my_account_ID", "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname" } } } ] }'

    Per Windows:

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "my_account_ID", "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname" } } } ] }'

    Per ulteriori informazioni, consulta la pagina relativa alla creazione di un ruolo per delegare le autorizzazioni a un utente IAM nella Guida per l'utente IAM.

  2. Una volta creato il ruolo, annota l'ARN del ruolo. L'ARN servirà in una fase successiva.

  3. Collega la policy creata al ruolo creato.

    Il AWS CLI comando seguente associa la policy al ruolo denominatords-s3-integration-role.

    Esempio

    Per LinuxmacOS, oUnix:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    Per Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role

    Sostituire your-policy-arn con l'ARN della policy annotato nel passaggio precedente.

Fase 4: associazione del ruolo IAM all'istanza database RDS per Oracle

L'ultimo passaggio per configurare le autorizzazioni per l'integrazione di Amazon S3 prevede l'associazione del ruolo IAM all'istanza database. Si notino i requisiti seguenti:

  • Devi disporre dell'accesso a un ruolo a cui sono collegate le policy di autorizzazione di Amazon S3.

  • È possibile associare un solo ruolo IAM alla volta all'istanza RDS per Oracle.

  • Lo stato dell'istanza database deve essere Disponibile.

Per associare il ruolo IAM all'istanza database RDS per Oracle
  1. Accedi a AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel pannello di navigazione seleziona Database.

  3. Scegli il nome dell'istanza database RDS per Oracle per visualizzarne i dettagli.

  4. Sulla scheda Connettività e sicurezza, scorri verso il basso fino alla sezione Gestisci i ruoli IAM in fondo alla pagina.

  5. Per Aggiungi i ruoli IAM a questa istanza, scegli il ruolo creato in Fase 3: creazione di un ruolo IAM per l'istanza database e collegamento della policy.

  6. Per Feature (Caratteristica), selezionare S3_INTEGRATION.

    Aggiungi ruolo S3_INTEGRATION
  7. Scegliere Add role (Aggiungi ruolo).

Il AWS CLI comando seguente aggiunge il ruolo a un'istanza Oracle DB denominatamydbinstance.

Esempio

Per LinuxmacOS, oUnix:

aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

Per Windows:

aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

Sostituire your-role-arn con il ruolo ARN annotato nel passaggio precedente. S3_INTEGRATION deve essere specificato per l'opzione --feature-name.