Salta al contenuto

Come posso concedere alla mia istanza EC2 l'accesso a un bucket S3?

4 minuti di lettura
0

Non riesco ad accedere a un bucket Amazon Simple Storage Service (Amazon S3) dalla mia istanza Amazon Elastic Compute Cloud (Amazon EC2).

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Crea un profilo dell'istanza IAM che conceda l'accesso ad Amazon S3

Completa i seguenti passaggi:

  1. Apri la console AWS Identity and Access Management (AWS IAM).
  2. Nel pannello di navigazione, scegli Ruoli in Gestione degli accessi.
  3. Scegli Crea ruolo.
  4. Per Tipo di entità attendibile, scegli Servizio AWS. Per Servizio o caso d'uso, scegli EC2. Per Caso d'uso, scegli ** EC2**.
    Nota: quando utilizzi la console IAM per creare un ruolo IAM e scegli EC2 come entità attendibile, viene creato automaticamente un profilo dell'istanza IAM. Il profilo dell'istanza IAM appena creato ha lo stesso nome del ruolo. Se invece utilizzi AWS CLI o un'API per creare il ruolo, non viene creato automaticamente un profilo dell'istanza. Per ulteriori informazioni, consulta Ho creato un ruolo IAM, ma il ruolo non viene visualizzato nell'elenco a discesa quando avvio un'istanza. Cosa devo fare?
  5. Scegli Avanti.
  6. Crea una policy personalizzata che fornisca le autorizzazioni minime richieste per accedere al bucket S3.
    Nota: per questioni di sicurezza, è consigliabile creare una policy con le autorizzazioni minime richieste. Tuttavia, per concedere a EC2 l'accesso a tutti i bucket Amazon S3, utilizza la policy IAM gestita AmazonS3ReadOnlyAccess o AmazonS3FullAccess.
  7. Seleziona la policy richiesta, quindi scegli Avanti.
  8. Inserisci un nome per il ruolo, quindi scegli Crea ruolo.

Collega il profilo dell'istanza IAM all'istanza EC2

Completa i seguenti passaggi:

  1. Apri la console Amazon EC2.
  2. Nel pannello di navigazione, scegli Istanze.
  3. Seleziona l'istanza a cui vuoi collegare il ruolo IAM.
  4. Scegli Operazioni, quindi seleziona Sicurezza.
  5. Scegli Modifica il ruolo IAM.
  6. Seleziona il ruolo IAM che hai appena creato, quindi scegli Salva. Il ruolo IAM viene assegnato all'istanza EC2.

Convalida le autorizzazioni sul bucket S3

Completa i seguenti passaggi:

  1. Apri la console di Amazon S3.
  2. Seleziona il bucket S3 per il quale vuoi verificare la policy.
  3. Scegli la scheda Autorizzazioni.
  4. Nella sezione Policy del bucket, cerca le istruzioni che contengono Effect: Deny.
  5. Modifica la policy IAM per rimuovere qualsiasi istruzione Effect: Deny che neghi al profilo dell'istanza IAM l'accesso al bucket.

Verifica la connettività di rete dall'istanza EC2 ad Amazon S3

Prerequisiti

  • Istanza EC2 con un indirizzo IP pubblico e una voce nella tabella di routing con la route predefinita che punta verso un gateway Internet.
  • Istanza EC2 privata con una route predefinita tramite un gateway NAT.
  • Istanza EC2 privata con connettività ad Amazon S3 tramite un endpoint VPC (Virtual Private Cloud) gateway.

Per risolvere i problemi di connettività tra un'istanza EC2 privata e un bucket S3, consulta Come posso risolvere i problemi di connettività relativi agli endpoint Amazon VPC gateway?

Verifica l'accesso ai bucket S3

Completa i seguenti passaggi:

  1. Installa AWS CLI sull'istanza EC2.
  2. Verifica l'accesso ai bucket S3 eseguendo questo comando:
    aws s3 ls s3://DOC-EXAMPLE-BUCKET
    Nota: sostituisci DOC-EXAMPLE-BUCKET con il nome del tuo bucket S3.

Per gli oggetti S3 crittografati con una chiave del Servizio AWS di gestione delle chiavi (AWS KMS), concedi le autorizzazioni kms: Decrypt nel ruolo IAM e nella policy della chiave KMS. Se non concedi le autorizzazioni kms:Decrypt, non puoi copiare o scaricare gli oggetti S3.

Informazioni correlate

Identity and Access Management per Amazon S3

Come posso risolvere i problemi di connettività quando uso endpoint VPC di interfaccia per connettermi al mio bucket Amazon S3?