Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Importante
Amazon S3 ora applica la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) come livello di base della crittografia per ogni bucket di Amazon S3. A partire dal 5 gennaio 2023, tutti i caricamenti di nuovi oggetti su Amazon S3 vengono crittografati automaticamente senza costi aggiuntivi e senza alcun impatto sulle prestazioni. Lo stato di crittografia automatico per la configurazione di crittografia predefinita del bucket S3 e per il caricamento di nuovi oggetti è disponibile nei AWS CloudTrail log, in S3 Inventory, S3 Storage Lens, nella console Amazon S3 e come intestazione di risposta dell'API Amazon S3 aggiuntiva nella e. AWS Command Line Interface AWS SDKs Per ulteriori informazioni, consulta Domande frequenti sulla crittografia predefinita.
La crittografia lato server è la crittografia dei dati nella posizione di destinazione eseguita dall'applicazione o dal servizio che li riceve.
Amazon S3 abilita automaticamente la crittografia lato server con le chiavi gestite da Amazon S3 (SSE-S3) per il caricamento di nuovi oggetti.
Salvo diversa indicazione, per crittografare gli oggetti i bucket utilizzano SSE-S3 per impostazione predefinita. Tuttavia, puoi scegliere di configurare i bucket per utilizzare invece la crittografia lato server con () chiavi (SSE-KMS). AWS Key Management Service AWS KMS Per ulteriori informazioni, consulta Specifica della crittografia lato server con AWS KMS (SSE-KMS).
AWS KMS è un servizio che combina hardware e software sicuri e ad alta disponibilità per fornire un sistema di gestione delle chiavi scalabile per il cloud. Amazon S3 utilizza la crittografia lato server con AWS KMS (SSE-KMS) per crittografare i dati degli oggetti S3. Inoltre, quando SSE-KMS viene richiesto per l'oggetto, il checksum S3 (come parte dei metadati dell'oggetto) viene memorizzato in forma criptata. Per ulteriori informazioni sui checksum, consulta Verifica dell'integrità degli oggetti in Amazon S3.
Se utilizzi le chiavi KMS, puoi utilizzarle AWS KMS tramite l'API o per effettuare le seguenti operazioni: AWS Management Console
-
Creare, visualizzare, modificare, monitorare, abilitare o disabilitare, ruotare e pianificare l'eliminazione delle chiavi KMS in modo centralizzato.
-
Definire le policy che controllano come e da chi possono essere utilizzate le chiavi KMS.
-
Verificare il loro utilizzo per dimostrare che sono state utilizzate correttamente. Il controllo è supportato dall'API AWS KMS, ma non dalla AWS Management ConsoleAWS KMS
.
I controlli di sicurezza inclusi AWS KMS possono aiutarti a soddisfare i requisiti di conformità relativi alla crittografia. Puoi utilizzare queste chiavi KMS per proteggere i dati nei bucket Amazon S3. Quando utilizzi la crittografia SSE-KMS con un bucket S3, AWS KMS keys deve trovarsi nella stessa regione del bucket.
Sono previsti costi aggiuntivi per l'utilizzo. AWS KMS keys Per ulteriori informazioni, consulta la sezione Concetti di AWS KMS key nella Guida per gli sviluppatori di AWS Key Management Service e i Prezzi di AWS KMS
Autorizzazioni
Per effettuare correttamente una PutObject
richiesta di crittografia di un oggetto con una AWS KMS chiave per Amazon S3, sono kms:GenerateDataKey
necessarie le autorizzazioni sulla chiave. Per scaricare un oggetto crittografato con un AWS KMS key, sono necessarie le kms:Decrypt
autorizzazioni per la chiave. Per eseguire un caricamento in più parti per crittografare un oggetto con un AWS KMS key, è necessario disporre delle kms:Decrypt
autorizzazioni kms:GenerateDataKey
e relative alla chiave.
Importante
Esamina attentamente le autorizzazioni concesse nelle policy delle chiavi KMS. Limita sempre le autorizzazioni relative alle policy chiave KMS gestite dal cliente solo ai responsabili e ai AWS servizi IAM che devono accedere all'azione chiave pertinente. AWS KMS Per ulteriori informazioni, consulta la sezione Politiche chiave in. AWS KMS
Argomenti
AWS KMS keys
Quando utilizzi la crittografia lato server con AWS KMS (SSE-KMS), puoi utilizzare la chiave AWS gestita predefinita oppure puoi specificare una chiave gestita dal cliente che hai già creato. AWS KMS supporta la crittografia delle buste. S3 utilizza le AWS KMS funzionalità di crittografia delle buste per proteggere ulteriormente i dati. La crittografia delle buste è la pratica di crittografare i dati di testo semplice con una chiave dati e quindi di crittografare tale chiave dati con una chiave KMS. Per ulteriori informazioni sulla crittografia envelope, consulta Crittografia envelope nella Guida per sviluppatori di AWS Key Management Service .
Se non specifichi una chiave gestita dal cliente, Amazon S3 ne crea automaticamente una per Account AWS la prima volta che aggiungi un Chiave gestita da AWS oggetto crittografato con SSE-KMS a un bucket. Per impostazione predefinita, Amazon S3 utilizza questa chiave KMS per SSE-KMS.
Nota
Gli oggetti crittografati mediante SSE-KMS con Chiavi gestite da AWS non possono essere condivisi tra più account. Se devi condividere i dati SSE-KMS tra più account, devi utilizzare una chiave gestita dal cliente da. AWS KMS
Se desideri utilizzare una chiave gestita dal cliente per SSE-KMS, crea una chiave di crittografia simmetrica gestita dal cliente prima di configurare SSE-KMS. Quindi, quando configuri SSE-KMS per il bucket, potrai specificare la chiave gestita dal cliente esistente. Per ulteriori informazioni sulla chiave di crittografia simmetrica, consulta Chiavi KMS di crittografia simmetrica nella Guida per gli sviluppatori di AWS Key Management Service .
La creazione di una chiave gestita dal cliente offre maggiore flessibilità e controllo. Ad esempio, puoi creare, ruotare e disabilitare le chiavi gestite dal cliente. Puoi anche definire controlli di accesso e controllare le chiavi gestite dal cliente utilizzate per proteggere i dati. Per ulteriori informazioni sulle chiavi gestite e AWS gestite dal cliente, consulta Customer keys and AWS keys nella Developer Guide.AWS Key Management Service
Nota
Quando utilizzi la crittografia lato server con una chiave gestita dal cliente archiviata in un archivio di chiavi esterno, a differenza delle chiavi KMS standard, hai la responsabilità di garantire la disponibilità e la durata del materiale chiave. Per ulteriori informazioni sugli archivi di chiavi esterni e sul loro impatto sul modello di responsabilità condivisa, vedi Archivi di chiavi esterni nella Guida per gli sviluppatori di AWS Key Management Service .
Utilizzo della crittografia SSE-KMS per operazioni multi-account
Quando si utilizza la crittografia per operazioni multi-account, tieni presente quanto segue:
-
Se non viene fornito un AWS KMS key Amazon Resource Name (ARN) o un alias al momento della richiesta o tramite la configurazione di crittografia predefinita del bucket, viene utilizzata la Chiave gestita da AWS ()
aws/s3
. -
Se stai caricando o accedendo a oggetti S3 utilizzando principi AWS Identity and Access Management (IAM) che sono gli stessi Account AWS della tua chiave KMS, puoi usare il (). Chiave gestita da AWS
aws/s3
-
Se desideri concedere l'accesso multi-account agli oggetti S3, utilizza una chiave gestita dal cliente. È possibile configurare la policy di una chiave gestita dal cliente per consentire l'accesso da un altro account.
-
Se si specifica una chiave KMS gestita dal cliente, si consiglia di utilizzare un ARN della chiave KMS completamente qualificato. Se invece utilizzi un alias di chiave KMS, AWS KMS risolve la chiave all'interno dell'account del richiedente. Ciò potrebbe comportare la crittografia dei dati con una chiave KMS di proprietà del richiedente e non del proprietario del bucket.
-
È necessario specificare una chiave per cui il richiedente ha ottenuto l'autorizzazione
Encrypt
. Per ulteriori informazioni, consulta l'argomento relativo all'autorizzazione concessa agli utenti delle chiavi di utilizzare una chiave KMS per le operazioni di crittografia nella Guida per gli sviluppatori di AWS Key Management Service .
Per ulteriori informazioni su quando utilizzare le chiavi gestite dal cliente e le chiavi KMS AWS gestite, consulta Devo usare una chiave Chiave gestita da AWS o una chiave gestita dal cliente per crittografare i miei oggetti in Amazon S3
Flusso di lavoro della crittografia SSE-KMS
Se scegli di crittografare i tuoi dati utilizzando una chiave Chiave gestita da AWS o una chiave gestita dal cliente AWS KMS e Amazon S3 esegue le seguenti azioni di crittografia della busta:
-
Amazon S3 richiede una chiave di dati in testo non formattato e una copia della chiave crittografata con la chiave KMS specificata.
-
AWS KMS genera una chiave dati, la crittografa con la chiave KMS e invia sia la chiave dati in testo semplice che la chiave dati crittografata ad Amazon S3.
-
Amazon S3 crittografa i dati utilizzando la chiave di dati ed eliminando appena possibile la chiave di testo normale dalla memoria dopo l'utilizzo.
-
Amazon S3 archivia la chiave di dati crittografata come metadati con i dati crittografati.
Quando richiedi che i tuoi dati vengano decrittografati, usa Amazon S3 AWS KMS ed esegui le seguenti azioni:
-
Amazon S3 invia la chiave dati crittografata AWS KMS a una
Decrypt
richiesta. -
AWS KMS decrittografa la chiave dati crittografata utilizzando la stessa chiave KMS e restituisce la chiave dati in testo semplice ad Amazon S3.
-
Amazon S3 utilizza la chiave di dati non crittografati per decrittografare i dati crittografati, quindi rimuove il prima possibile la chiave di dati non crittografati dalla memoria.
Importante
Quando utilizzi una AWS KMS key crittografia lato server in Amazon S3, devi scegliere una chiave KMS di crittografia simmetrica. Amazon S3 supporta solo chiavi KMS di crittografia simmetrica. Per ulteriori informazioni sulle chiavi, consulta Chiavi KMS di crittografia simmetrica nella Guida per gli sviluppatori di AWS Key Management Service .
Verifica della crittografia SSE-KMS
Per identificare le richieste che specificano SSE-KMS, puoi utilizzare i parametri All SSE-KMS requests (Tutte le richieste SSE-KMS) e % all SSE-KMS requests (% tutte le richieste SSE-KMS) nei parametri di Amazon S3 Storage Lens. S3 Storage Lens è una funzionalità di analisi dell'archiviazione su cloud che puoi utilizzare per avere una panoramica completa a livello di organizzazione sull'utilizzo e sulle attività relative all'archiviazione di oggetti. È inoltre possibile utilizzare il conteggio dei bucket abilitati SSE-KMS e la % di bucket abilitati SSE-KMS per capire il conteggio dei bucket che (SSE-KMS) per la crittografia predefinita dei bucket. Per ulteriori informazioni, consulta Valutazione dell'attività e dell'utilizzo dello storage con S3 Storage Lens. Per un elenco completo dei parametri, consulta Glossario dei parametri di S3 Storage.
Per verificare l'utilizzo delle AWS KMS chiavi per i dati crittografati SSE-KMS, puoi utilizzare i log. AWS CloudTrail Puoi ottenere informazioni dettagliate sulle tue operazioni crittografiche, ad esempio GenerateDataKey e Decrypt. CloudTrail supporta numerosi valori di attributo per filtrare la ricerca, tra cui il nome dell'evento, il nome utente e l'origine dell'evento.
Chiavi bucket Amazon S3
Quando configuri la crittografia lato server utilizzando AWS KMS (SSE-KMS), puoi configurare i bucket per utilizzare S3 Bucket Keys per SSE-KMS. L'utilizzo di una chiave a livello di bucket per SSE-KMS può ridurre i costi delle AWS KMS richieste fino al 99 percento diminuendo il traffico delle richieste da Amazon S3 a. AWS KMS
Quando si configura il bucket per utilizzare una chiave di bucket S3 per SSE-KMS su nuovi oggetti, AWS KMS genera una chiave a livello di bucket che viene utilizzata per creare chiavi di dati univoche per gli oggetti nel bucket. Questa S3 Bucket Key viene utilizzata per un periodo di tempo limitato all'interno di Amazon S3, riducendo ulteriormente la necessità per Amazon S3 di effettuare richieste per completare le operazioni di crittografia. AWS KMS Per ulteriori informazioni sull'utilizzo delle chiavi del bucket S3, consulta la sezione Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3.
Richiesta della crittografia lato server
Per richiedere la crittografia lato server di tutti gli oggetti in uno specifico bucket Amazon S3, è possibile utilizzare una policy di bucket. Ad esempio, la seguente policy di bucket rifiuta a chiunque l'autorizzazione al caricamento dell'oggetto (s3:PutObject
) se la richiesta non include un'intestazione x-amz-server-side-encryption-aws-kms-key-id
che richiede la crittografia lato server con SSE-KMS.
{ "Version":"2012-10-17", "Id":"PutObjectPolicy", "Statement":[{ "Sid":"DenyObjectsThatAreNotSSEKMS", "Effect":"Deny", "Principal":"*", "Action":"s3:PutObject", "Resource":"arn:aws:s3:::
amzn-s3-demo-bucket1
/*", "Condition":{ "Null":{ "s3:x-amz-server-side-encryption-aws-kms-key-id":"true" } } } ] }
Per richiedere che un particolare AWS KMS key venga utilizzato per crittografare gli oggetti in un bucket, puoi usare la chiave condition. s3:x-amz-server-side-encryption-aws-kms-key-id
Per specificare la chiave KMS, devi utilizzare una chiave Amazon Resource Name (ARN) nel arn:aws:kms:
formato. AWS Identity and Access Management non convalida se la stringa for esiste. region
:acct-id
:key/key-id
s3:x-amz-server-side-encryption-aws-kms-key-id
Nota
Quando si carica un oggetto, è possibile specificare la chiave KMS utilizzando l'intestazione x-amz-server-side-encryption-aws-kms-key-id
o affidarsi alla configurazione predefinita della crittografia del bucket. Se la tua PutObject richiesta è specificata aws:kms
nell'x-amz-server-side-encryption
intestazione, ma non specifica l'x-amz-server-side-encryption-aws-kms-key-id
intestazione, Amazon S3 presume che tu voglia utilizzare il. Chiave gestita da AWS Indipendentemente da ciò, l'ID della AWS KMS chiave utilizzato da Amazon S3 per la crittografia degli oggetti deve corrispondere all'ID della AWS KMS chiave nella policy, altrimenti Amazon S3 nega la richiesta.
Per un elenco completo delle chiavi di condizione specifiche per Amazon S3, consulta Chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio.
Contesto di crittografia
Un contesto di crittografia è un set di coppie chiave-valore che contiene ulteriori informazioni contestuali sui dati. Il contesto di crittografia non è crittografato. Quando viene specificato un contesto di crittografia per un'operazione di crittografia, Amazon S3 deve specificare lo stesso contesto di crittografia per l'operazione di decrittografia. In caso contrario, la decrittografia non riesce. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi (AAD) per supportare la crittografia autenticata. Per ulteriori informazioni sul contesto di crittografia, consulta il Contesto di crittografia nella Guida per gli sviluppatori di AWS Key Management Service .
Per impostazione predefinita, Amazon S3 utilizza il nome della risorsa Amazon (ARN) dell'oggetto o del bucket come coppia di contesto di crittografia:
-
Se utilizzi SSE-KMS senza abilitare una chiave bucket S3, l'ARN del oggetto viene utilizzato come contesto di crittografia.
arn:aws:s3:::
object_ARN
-
Se utilizzi SSE-KMS e abiliti una chiave di bucket S3, l'ARN del bucket viene utilizzato come contesto di crittografia. Per ulteriori informazioni sui bucket S3, consulta la sezione Riduzione del costo di SSE-KMS con le chiavi bucket Amazon S3.
arn:aws:s3:::
bucket_ARN
Facoltativamente, puoi fornire una coppia di contesti di crittografia aggiuntiva utilizzando l'x-amz-server-side-encryption-context
intestazione in una richiesta s3:. PutObject Tuttavia, poiché il contesto di crittografia non è crittografato, assicurati che non includa informazioni sensibili. Amazon S3 archivia questa coppia di chiavi aggiuntiva insieme al contesto di crittografia predefinito. Quando elabora la tua richiesta PUT
, Amazon S3 aggiunge il contesto di crittografia predefinito di aws:s3:arn
a quello che fornisci.
È possibile utilizzare il contesto di crittografia per identificare e categorizzare le operazioni di crittografia. Puoi anche utilizzare il valore ARN del contesto di crittografia predefinito per tenere traccia delle richieste pertinenti AWS CloudTrail visualizzando quale ARN Amazon S3 è stato utilizzato con quale chiave di crittografia.
Nel requestParameters
campo di un file di CloudTrail registro, il contesto di crittografia è simile al seguente.
"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::
" }
amzn-s3-demo-bucket1
/file_name
Quando utilizzi SSE-KMS con la funzione opzionale chiavi bucket S3, il valore di contesto di crittografia è l'ARN del bucket.
"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::
" }
amzn-s3-demo-bucket1
Invio di richieste per oggetti AWS KMS crittografati
Importante
Tutte GET
le PUT
richieste di oggetti AWS KMS crittografati devono essere effettuate utilizzando Secure Sockets Layer (SSL) o Transport Layer Security (TLS). Le richieste devono inoltre essere firmate utilizzando credenziali valide, come AWS Signature Version 4 (o AWS Signature Version 2).
AWS Signature Version 4 è il processo di aggiunta di informazioni di autenticazione alle AWS richieste inviate tramite HTTP. Per motivi di sicurezza, la maggior parte delle richieste AWS deve essere firmata con una chiave di accesso, che consiste in un ID della chiave di accesso e una chiave di accesso segreta. Queste due chiavi in genere vengono definite come le tue credenziali di sicurezza. Per ulteriori informazioni, consulta le sezioni Autenticazione delle richieste (AWS Signature Version 4) e Processo di firma Signature Version 4.
Importante
Se l'oggetto utilizza SSE-KMS, non inviare intestazioni di richiesta di crittografia per le richieste GET
e HEAD
. In caso contrario, riceverai un errore HTTP 400 Bad Request
(HTTP 400 - Richiesta non valida).