Come Amazon Simple Email Service (Amazon SES) usa AWS KMS - AWS Key Management Service

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à.

Come Amazon Simple Email Service (Amazon SES) usa AWS KMS

È possibile usare Amazon Simple Email Service (Amazon SES) per ricevere e-mail, e (facoltativamente) per crittografare i messaggi delle e-mail ricevuti prima di archiviarli nel bucket di Amazon Simple Storage Service (Amazon S3) che hai scelto. Quando si configura Amazon SES per crittografare i messaggi delle e-mail, è necessario scegliere la AWS KMS key AWS KMS nella quale Amazon SES crittografa i messaggi. È possibile scegliere la Chiave gestita da AWS per Amazon SES (il suo alias è aws/ses), oppure scegliere una chiave gestita da un cliente creata in AWS KMS.

Importante

Amazon SES supporta solo chiavi simmetriche KMS. Non è possibile utilizzare una chiave asimmetrica KMS per crittografare i tuoi messaggi della e-mail di Amazon SES. Per informazioni su come determinare se una chiave KMS è simmetrica o asimmetrica, consulta Individuazione di chiavi KMS asimmetriche.

Per ulteriori informazioni sulla ricezione di e-mail tramite Amazon SES, consulta nelle e-mail ricevute con Amazon SES nella Guida dello Sviluppatore di Amazon Simple Email Service.

Panoramica della crittografia di Amazon SES usando AWS KMS

Quando si configura Amazon SES per la ricezione di e-mail e la crittografia di messaggi e-mail prima di salvarli nel bucket S3, il processo funziona in questo modo:

  1. Puoi creare una regola di ricezione per Amazon SES, specificando l'operazione S3, un bucket S3 per lo storage e una AWS KMS key per la crittografia.

  2. Amazon SES riceve un messaggio e-mail che soddisfa la regola di ricezione.

  3. Amazon SES richiede una chiave di dati univoca crittografata con la chiave KMS specificata nella regola di ricezione applicabile.

  4. AWS KMS crea una nuova chiave di dati, esegue la crittografia utilizzando la chiave KMS specificata e invia le copie crittografate e in testo normale della chiave di dati ad Amazon SES.

  5. Amazon SES utilizza la chiave di dati in testo normale per crittografare il messaggio e-mail, quindi rimuove il prima possibile la chiave di dati in testo normale dalla memoria dopo l'utilizzo.

  6. Amazon SES mette il messaggio e-mail crittografato e la chiave di dati crittografati nel bucket S3 specificato. La chiave di dati crittografata viene archiviata come metadati con il messaggio e-mail crittografato.

Per realizzare Passo 3 attraverso Passo 6, Amazon SES utilizza il AWS-client di crittografia Amazon S3 fornito. Utilizza lo stesso client per recuperare i tuoi messaggi e-mail crittografati da Amazon S3 e decrittografarli. Per ulteriori informazioni, consulta Ricezione e decrittografia di messaggi e-mail.

Contesto di crittografia di Amazon SES

Quando Amazon SES richiede una chiave di dati per crittografare i messaggi e-mail ricevuti (Passo 3 in Panoramica della crittografia di Amazon SES usando AWS KMS), include nella richiesta un contesto di crittografia. Il contesto di crittografia fornisce dati autenticati supplementari (AAD) utilizzati da AWS KMS per garantire l'integrità dei dati. Il contesto di crittografia viene scritto anche nei file di log AWS CloudTrail per aiutarti a comprendere perché è stata utilizzata una determinata AWS KMS key (chiave KMS). Amazon SES utilizza il seguente contesto di crittografia:

  • L'ID dell'Account AWS in cui hai configurato Amazon SES per ricevere messaggi e-mail

  • Il nome della regola di ricezione di Amazon SES che ha invocato l'azione S3 nel messaggio e-mail

  • L'ID del messaggio di Amazon SES per il messaggio delle e-mail

L'esempio seguente mostra una rappresentazione JSON del contesto di crittografia che Amazon SES utilizza:

{ "aws:ses:source-account": "111122223333", "aws:ses:rule-name": "example-receipt-rule-name", "aws:ses:message-id": "d6iitobk75ur44p8kdnnp7g2n800" }

Concessione ad Amazon SES l'autorizzazione a utilizzare la tua chiave AWS KMS key

Per crittografare i messaggi e-mail, è possibile utilizzare la Chiave gestita da AWS nel proprio account per Amazon SES (aws/ses) oppure usare una chiave gestita dal cliente creata dall'utente. Amazon SES ha già l'autorizzazione di utilizzare la Chiave gestita da AWS nel tuo conto. Tuttavia, per specificare una chiave gestita dal cliente quando aggiungi l'operazione S3 alla regola di ricezione Amazon SES, devi accertarti che Amazon SES abbia l'autorizzazione a utilizzare la chiave KMS per crittografare i messaggi e-mail.

Per offrire ad Amazon SES l'autorizzazione a utilizzare la tua chiave gestita dal cliente, aggiungi la seguente istruzione alla policy delle chiavi della tua KMS:

{ "Sid": "Allow SES to encrypt messages using this KMS key", "Effect": "Allow", "Principal": {"Service": "ses.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:ses:rule-name": false, "kms:EncryptionContext:aws:ses:message-id": false }, "StringEquals": {"kms:EncryptionContext:aws:ses:source-account": "ACCOUNT-ID-WITHOUT-HYPHENS"} } }

Sostituisci ACCOUNT-ID-WITHOUT-HYPHENS con l'ID di 12 cifre dell'Account AWS in cui hai configurato Amazon SES per ricevere i messaggi e-mail. Questa istruzione di policy consente ad Amazon SES di crittografare i dati con questa chiave KMS solo in queste condizioni:

  • Amazon SES deve specificare aws:ses:rule-name e aws:ses:message-id nel EncryptionContext delle richieste API AWS KMS.

  • Amazon SES deve specificare aws:ses:source-account nel EncryptionContext delle richieste API AWS KMS e il valore per aws:ses:source-account deve corrispondere all' ID Account AWS specificato nella policy delle chiavi.

Per ulteriori informazioni sul contesto di crittografia che Amazon SES utilizza per crittografare i messaggi e-mail, consulta Contesto di crittografia di Amazon SES. Per informazioni generali su come AWS KMS usa il contesto di crittografia, consulta contesto di crittografia.

Ricezione e decrittografia di messaggi e-mail

Amazon SES non dispone di autorizzazioni per decrittare i messaggi e-mail crittografati e non è in grado di decrittografarli per te. È necessario scrivere codice per ricevere messaggi e-mail da Amazon S3 e decrittografarli. Per rendere questa operazione più semplice, utilizza il client di crittografia di Amazon S3. I seguenti SDK di AWS includono il client di crittografia di Amazon S3:

Il client di crittografia Amazon S3 semplifica il lavoro di formulare le richieste necessarie ad Amazon S3 per recuperare il messaggio e-mail crittografato e a AWS KMS per decrittografare la chiave di dati crittografata del messaggio e di decrittografare il messaggio e-mail. Ad esempio, per decrittografare la chiave di dati crittografati correttamente è necessario superare lo stesso contesto di crittografia superato da Amazon SES quando richiede la chiave di dati da AWS KMS (Passo 3 nella Panoramica della crittografia di Amazon SES usando AWS KMS). Il client di crittografia di Amazon S3 gestisce questa operazione e molto altro lavoro per te.

Per un codice di esempio che utilizza il client di crittografia di Amazon S3 in AWS SDK for Java per eseguire la decrittografia, consulta quanto segue: