Devo specificare la chiave AWS KMS quando scarico un oggetto crittografato con KMS da Amazon S3?

3 minuti di lettura
0

Voglio scaricare oggetti archiviati da Amazon Simple Storage Service (Amazon S3) che utilizzano la crittografia lato server con chiavi gestite da AWS Key Management Service (SSE-KMS).

Risoluzione

Non è necessario specificare l'ID chiave di AWS Key Management Service (AWS KMS) quando scarichi un oggetto crittografato con SSE-KMS da un bucket S3. È invece necessaria l'autorizzazione per decrittografare la chiave AWS KMS.

Quando un utente invia una richiesta GET, Amazon S3 deve verificare l'autorizzazione appropriata. Amazon S3 verifica se l'utente o il ruolo AWS Identity and Access Management (IAM) che ha inviato la richiesta è autorizzato a decrittografare la chiave dell'oggetto. Se l'utente o il ruolo e la chiave IAM appartengono allo stesso account AWS, è necessarioconcedere le autorizzazioni di decrittografia sulla policy chiave.

**Nota:**Quando l'utente o il ruolo IAM e la chiave KMS si trovano nello stesso account, puoi utilizzare le politiche IAM per controllare l'accesso alla chiave. Tuttavia, è necessario modificare la politica chiave per attivare esplicitamente le politiche IAM per consentire l'accesso alla chiave. Per ulteriori informazioni, consultaUtilizzo delle policy IAM con AWS KMS.

Se l'utente o il ruolo e la chiave IAM appartengono a account diversi, è necessario concedere le autorizzazioni di decrittografia sulla policy dell'utente IAM e sulla politica della chiave.

Di seguito è riportato un esempio di policy IAM che consente all'utente sia di decrittografare la chiave AWS KMS sia di scaricarla dal bucket S3:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:kms:example-region-1:123456789012:key/example-key-id",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

Di seguito è riportato un esempio di dichiarazione policy chiave che consente all'utente di decrittografare la chiave:

{
  "Sid": "Allow decryption of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::123456789012:user/Bob"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}

Nota:Per gli utenti o i ruoli IAM che appartengono a un account diverso dal bucket, la policy del bucket deve inoltre concedere all'utente l'accesso agli oggetti. Ad esempio, se l'utente deve effettuare il download dal bucket, deve disporre dell'autorizzazione all'azione S3:getObjectnella policy del bucket.

Dopo aver ottenuto l'autorizzazione per decrittografare la chiave, puoi scaricare gli oggetti S3 crittografati con la chiave utilizzando l'interfaccia a riga di comando di AWS (AWS CLI). Esegui un comando simile al seguente:

aws s3api get-object --bucket DOC-EXAMPLE-BUCKET --key dir/example-object-name example-object-name

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia a riga di comando di AWS, assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Informazioni correlate

GetObject

get-object

Protezione dei dati tramite crittografia lato server con CMK archiviati in AWS Key Management Service (SSE-KMS)

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa