Salta al contenuto

Perché non riesco a caricare un file di grandi dimensioni in Amazon S3 utilizzando la crittografia con una chiave AWS KMS?

3 minuti di lettura
0

Desidero caricare un file di grandi dimensioni nel mio bucket Amazon Simple Storage Service (Amazon S3). Nella mia richiesta di caricamento, includo informazioni di crittografia con una chiave del Servizio AWS di gestione delle chiavi (AWS KMS). Tuttavia, ricevo un errore Access Denied.

Breve descrizione

Verifica di avere l'autorizzazione per eseguire azioni kms:Decrypt sulla chiave AWS KMS che utilizzi per crittografare l'oggetto.

Per file di grandi dimensioni, i comandi aws s3 di alto livello con l'Interfaccia della linea di comando AWS (AWS CLI), gli AWS SDK e molti programmi di terze parti eseguono automaticamente un caricamento in più parti. Per crittografare un caricamento in più parti utilizzando una chiave AWS KMS, devi avere le autorizzazioni kms:GenerateDataKey e kms:Decrypt. L'autorizzazione kms:GenerateDataKey consente di avviare il caricamento. L'autorizzazione kms:Decrypt consente di crittografare le parti appena caricate con la chiave utilizzata per le parti precedenti dello stesso oggetto.

Nota: per eseguire un caricamento in più parti utilizzando la crittografia con una chiave AWS KMS, devi avere le seguenti autorizzazioni:

  • Autorizzazione per le azioni kms:Decrypt e kms:GenerateDataKey sulla chiave.
  • Autorizzazioni per l'azione kms:GenerateDataKey sull'API CreateMultipartUpload.
  • Autorizzazioni per l'azione kms:Decrypt sulle API UploadPart e UploadPartCopy. Queste autorizzazioni sono necessarie perché Amazon S3 deve decrittografare e leggere i dati dalle parti del file crittografate prima che il caricamento in più parti sia completato.

Se l'utente o il ruolo AWS Identity and Access Management (AWS IAM) si trova nello stesso account AWS della chiave KMS, devi avere queste autorizzazioni nella policy della chiave. Se l'utente o ruolo IAM appartiene a un account diverso da quello della chiave KMS, devi avere le autorizzazioni sia nella policy della chiave che nell'utente o nel ruolo IAM.

Risoluzione

Policy della chiave

Rivedi la policy della chiave AWS KMS nella visualizzazione delle policy della Console di gestione AWS.

Nella policy della chiave, cerca le istruzioni in cui il numero della risorsa Amazon (ARN) dell'utente o del ruolo IAM figura come principale AWS. L'ARN è nel seguente formato: arn:aws:iam::111122223333:user/john.

Quindi controlla l'elenco delle azioni consentite dalle istruzioni per l'utente o per il ruolo IAM. Per i caricamenti in più parti, l'elenco delle azioni consentite deve includere kms:Decrypt con SSE-KMS.

Ad esempio, la seguente istruzione in una policy della chiave consente all'utente John di eseguire le azioni kms:Decrypt e kms:GenerateDataKey:

{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:user/john"
  },
  "Action": [
    "kms:Decrypt",
    "kms:GenerateDataKey"
  ],
  "Resource": "*"
}

Autorizzazioni IAM

Per rivedere le autorizzazioni IAM, apri la console IAM e scegli l'utente o il ruolo IAM.

Consulta l'elenco delle policy di autorizzazione applicate all'utente o al ruolo IAM. Assicurati che sia applicata una policy che consenta di eseguire l'azione kms:Decrypt sulla chiave utilizzata per crittografare l'oggetto:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}

Questo esempio di istruzione concede all'utente IAM l'accesso per eseguire kms:Decrypt e kms:GenerateDataKey sulla chiave arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd.

Per istruzioni sull'aggiornamento delle autorizzazioni IAM, consulta Modificare le autorizzazioni per un utente IAM.

Informazioni correlate

AWS Policy Generator (Generatore di policy AWS)

Protezione e crittografia dei dati

AWS UFFICIALEAggiornata 2 anni fa