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)