Perché ricevo un messaggio di errore di Accesso negato quando carico file nel mio bucket Amazon S3 con crittografia predefinita di AWS KMS?

4 minuti di lettura
0

Il mio bucket Amazon Simple Storage Service (Amazon S3) utilizza la crittografia predefinita di Servizio di gestione delle chiavi AWS (AWS KMS). Sto cercando di caricare file nel bucket, ma Amazon S3 restituisce un messaggio di errore di Accesso negato. Come posso risolvere questo problema?

Risoluzione

Innanzitutto, verifica quanto segue:

  • l'utente o il ruolo di AWS Identity and Access Management (IAM) dispone dell'autorizzazione s3:PutObject sul bucket.
  • La tua chiave AWS KMS non dispone di un alias "aws/s3". Questo alias non può essere utilizzato per la crittografia dei bucket predefinita se gli oggetti sono caricati da principali IAM su più account. Per ulteriori informazioni sulle chiavi AWS KMS e sulla gestione delle policy, consulta Protecting data using server-side encryption with AWS Key Management Service (SSE-KMS).

Quindi, aggiorna le autorizzazioni AWS KMS del tuo utente o ruolo IAM in base al messaggio di errore che ricevi.

Importante:

  • se la chiave AWS KMS e il ruolo IAM appartengono a diversi account AWS, è necessario aggiornare la policy IAM e la policy della chiave KMS. Assicurati di aggiungere le autorizzazioni KMS sia alla policy IAM che alla policy della chiave KMS.
  • Per utilizzare una policy IAM per controllare l'accesso a una chiave KMS, la policy della chiave per la chiave KMS deve consentire all'account di utilizzare le policy IAM.

"Si è verificato un errore (AccessDenied) durante la chiamata all'operazione PutObject: Accesso negato"

Questo messaggio di errore indica che l'utente o il ruolo IAM necessita dell'autorizzazione per l'azione kms:GenerateDataKey.

Segui questi passaggi per aggiungere l'autorizzazione per kms:GenerateDataKey:

1.    Apri la console IAM.

2.    Scegli l'utente o il ruolo IAM che stai utilizzando per caricare i file nel bucket Amazon S3.

3.    Nella scheda Autorizzazioni, espandi ogni policy per visualizzare il documento relativo alla policy JSON.

4.    Nei documenti relativi alle policy JSON, cerca le policy relative all'accesso ad AWS KMS. Rivedi le istruzioni con “Effetto”: "Consenti" per verificare se l'utente o il ruolo dispone delle autorizzazioni per l'azione kms:GenerateDataKey sulla chiave AWS KMS del bucket.

5.    Se questa autorizzazione è mancante, aggiungila alla policy appropriata. Per istruzioni, consulta Aggiungere autorizzazioni a un utente (console) o Modificare una policy sulle autorizzazioni dei ruoli (console).

6.    Nei documenti di policy JSON, cerca le istruzioni con “Effetto”: "Nega". Verifica che queste istruzioni non neghino l'azione s3:PutObject sul bucket. Le istruzioni non devono negare all'utente o al ruolo IAM l'accesso all'azione kms:GenerateDataKey sulla chiave utilizzata per crittografare il bucket. Inoltre, le autorizzazioni KMS e S3 richieste non devono essere limitate quando si utilizzano policy di endpoint VPC, policy di controllo dei servizi, limiti delle autorizzazioni o policy di sessione.

"Si è verificato un errore (AccessDenied) durante la chiamata all'operazione CreateMultipartUpload: Accesso negato"

Questo messaggio di errore indica che l'utente o il ruolo IAM ha bisogno dell'autorizzazione per le azioni kms:GenerateDataKey e kms:Decrypt.

Segui questi passaggi per aggiungere le autorizzazioni per kms:GenerateDataKey e kms:Decrypt:

1.    Apri la console IAM.

2.    Scegli l'utente o il ruolo IAM che stai utilizzando per caricare i file nel bucket Amazon S3.

3.    Nella scheda Autorizzazioni, espandi ogni policy per visualizzare il documento relativo alla policy JSON.

4.    Nei documenti relativi alle policy JSON, cerca le policy relative all'accesso ad AWS KMS. Rivedi le istruzioni con “Effetto”: “Consenti” per verificare se il ruolo dispone delle autorizzazioni per kms:GenerateDataKey e kms:Decrypt sulla chiave AWS KMS del bucket.

5.    Se mancano queste autorizzazioni, aggiungile alla politica appropriata. Per istruzioni, consulta Aggiungere autorizzazioni a un utente (console) o Modificare una policy sulle autorizzazioni dei ruoli (console).

6.    Nei documenti di policy JSON, cerca le istruzioni con “Effetto”: "Nega". Quindi, verifica che tali istruzioni non neghino l'azione s3:PutObject sul bucket. Le istruzioni non devono negare all'utente o al ruolo IAM l'accesso alle azioni kms:GenerateDataKey e kms:Decrypt sulla chiave utilizzata per crittografare il bucket. Inoltre, le autorizzazioni KMS e S3 richieste non devono essere limitate quando si utilizzano policy di endpoint VPC, policy di controllo dei servizi, limiti delle autorizzazioni o policy di sessione.


Informazioni correlate

Impostazione del comportamento di crittografia predefinito lato server per i bucket Amazon S3

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa