Salta al contenuto

Perché non posso caricare un file di grandi dimensioni su Amazon S3 con la crittografia a chiave AWS KMS?

3 minuti di lettura
0

Voglio 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 AWS Key Management Service (AWS KMS). Tuttavia, ricevo un errore di accesso negato.

Breve descrizione

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

Per file di grandi dimensioni, i comandi s3 aws di alto livello con l'interfaccia dellal inea di comando AWS (AWS CLI), SDK AWS e molti programmi di terze parti eseguono automaticamente un caricamento in più parti. Per utilizzare una chiave AWS KMS per crittografare un caricamento in più parti, devi disporre delle autorizzazioni KMS:GenerateDataKey e kms:Decrypt. L'autorizzazione kms:GenerateDataKey consente di avviare l'upload. L'autorizzazione kms:Decrypt consente di crittografare le parti appena caricate con la chiave che hai usato per le parti precedenti dello stesso oggetto.

Nota: Per eseguire un upload in più parti con crittografia utilizzando una chiave AWS KMS, devi disporre di quanto segue:

  • Autorizzazione alle azioni **kms:Decrypt ** e kms:GenerateDataKey sulla chiave.
  • Autorizzazioni per l'azione kms:GenerateDataKey per l'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 l'upload in più parti sia completato.

Se il tuo utente o ruolo di AWS Identity and Access Management (IAM) si trova nello stesso account AWS della chiave KMS, devi disporre di queste autorizzazioni sulla policy chiave. Se il tuo utente o ruolo IAM appartiene a un account diverso dalla chiave KMS, devi disporre delle autorizzazioni sia sulla policy chiave che sul tuo utente o ruolo IAM.

Risoluzione

Policy della chiave

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

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

Quindi, controlla l'elenco delle azioni consentite dalle istruzioni utente o di ruolo IAM. Per i caricamenti multiparte, l'elenco delle azioni consentite deve includere kms:Decrypt con SSE-KMS.

Ad esempio, la seguente dichiarazione 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 tue autorizzazioni IAM, apri la console IAM, quindi apri il tuo utente o ruolo IAM.

Consulta l'elenco delle policy di autorizzazione applicate al tuo utente o ruolo IAM. Assicurati che sia applicata una policy che ti 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"
    ]
  }
}

Questa istruzione di esempio 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 su come aggiornare le autorizzazioni IAM, consulta Modifica delle autorizzazioni per un utente IAM.

Informazioni correlate

Generatore di policy AWS

Crittografia dei dati in Amazon S3