As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como o Amazon Simple Email Service (Amazon SES) usa o AWS KMS
Você pode usar o Amazon Simple Email Service (Amazon SES) para receber e-mails e (opcionalmente) para criptografar as mensagens de e-email recebidas antes de armazená-las em um bucket do Amazon Simple Storage Service (Amazon S3) de sua escolha. Ao configurar o Amazon SES para criptografar mensagens de e-mail, você deve escolher a AWS KMS key do AWS KMS com a qual o Amazon SES criptografa as mensagens. É possível escolher a Chave gerenciada pela AWS para o Amazon SES (seu alias é aws/ses
), ou você pode escolher uma chave simétrica gerenciada pelo cliente criada no AWS KMS.
Importante
O Amazon SES oferece suporte somente para chaves simétricas do KMS. Não é possível usar uma chave do KMS assimétrica para criptografar mensagens de e-mail do Amazon SES. Para obter ajuda para determinar se uma chave do KMS é simétrica ou assimétrica, consulte Identificar chaves do KMS assimétricas.
Para obter mais informações sobre o recebimento de e-mails usando o Amazon SES, acesse Receber e-mails no Amazon SES, no Guia do desenvolvedor do Amazon Simple Email Service.
Tópicos
Visão geral da criptografia do Amazon SES usando o AWS KMS
Quando você configura o Amazon SES para receber e-mail e criptografar as mensagens de e-mail antes de salvá-las em seu bucket do S3, o processo funciona da seguinte forma:
-
Você cria uma regra de recebimento para o Amazon SES, especificando a ação do S3, um bucket do S3 para armazenamento e uma AWS KMS key para criptografia.
-
O Amazon SES recebe uma mensagem de e-mail que está em conformidade com a sua regra de recebimento.
-
O Amazon SES solicita uma chave de dados exclusiva criptografada com a chave do KMS que você especificou na regra de recebimento aplicável.
-
AWS KMSO cria uma nova chave de dados, criptografa-a com a chave do KMS especificada e envia as cópias de texto criptografado e não criptografado da chave de dados ao Amazon SES.
-
O Amazon SES usa a chave de dados de texto não criptografado para criptografar a mensagem de e-mail e remove a chave de dados de texto não criptografado da memória, assim que possível, após o uso.
-
O Amazon SES coloca a mensagem de e-mail criptografada e a chave de dados criptografada no bucket do S3 especificado. A chave de dados criptografada é armazenada como metadados com a mensagem de e-email criptografada.
Para realizar Passo 3 por meio de Passo 6, o Amazon SES usa o cliente de criptografia do Amazon S3 fornecido pelo AWS. Use o mesmo cliente para recuperar suas mensagens de e-mail criptografadas do Amazon S3 e as descriptografe. Para obter mais informações, consulte Obter e descriptografar mensagens de e-mail.
Contexto de criptografia do Amazon SES
Quando o Amazon SES solicita que uma chave de dados criptografe suas mensagens de e-mail recebidas (Passo 3 no Visão geral da criptografia do Amazon SES usando o AWS KMS), ele inclui um contexto de criptografia na solicitação. O contexto de criptografia fornece dados autenticados adicionais (AAD) que o AWS KMS usa para garantir a integridade dos dados. O contexto de criptografia também é gravado em seus arquivos de log do AWS CloudTrail, o que pode ajudar você a entender por que uma determinada AWS KMS key (chave do KMS) foi usada. O Amazon SES usa o seguinte como contexto de criptografia:
-
O ID da Conta da AWS na qual você configurou o Amazon SES para receber mensagens de e-mail
-
O nome da regra do Amazon SES que invocou a ação do S3 na mensagem de e-mail
-
O ID da mensagem do Amazon SES para a mensagem de e-mail
O exemplo a seguir mostra uma representação JSON do contexto de criptografia usado pelo Amazon SES:
{
"aws:ses:source-account": "111122223333
",
"aws:ses:rule-name": "example-receipt-rule-name
",
"aws:ses:message-id": "d6iitobk75ur44p8kdnnp7g2n800
"
}
Conceder permissão ao Amazon SES para usar sua AWS KMS key
Para criptografar suas mensagens de e-mail, você pode usar a Chave gerenciada pela AWS na sua conta para o Amazon SES (aws/ses
) ou pode usar uma chave gerenciada pelo cliente criada por você. O Amazon SES já tem permissão para usar a Chave gerenciada pela AWS em seu nome. No entanto, se você especificar uma chave gerenciada pelo cliente ao adicionar a ação do S3 à sua regra de recebimento do Amazon SES, será necessário conceder permissão ao Amazon SES para usar a chave do KMS com o objetivo de criptografar suas mensagens de e-mail.
Para conceder ao Amazon SES permissão para usar a sua chave gerenciada pelo cliente, adicione a seguinte instrução à política de chaves dessa chave do 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
"} } }
Substitua
pelo ID de 12 dígitos da Conta da AWS na qual você configurou o Amazon SES para receber mensagens de e-mail. Essa instrução de política permite que o Amazon SES criptografe os dados com essa chave do KMS somente sob estas condições:ACCOUNT-ID-WITHOUT-HYPHENS
-
O Amazon SES deve especificar
aws:ses:rule-name
eaws:ses:message-id
noEncryptionContext
de suas solicitações da API do AWS KMS. -
O Amazon SES deve especificar
EncryptionContext
no AWS KMS das solicitações de API doaws:ses:source-account
, e o valor de Conta da AWS deve corresponder ao ID daaws:ses:source-account
especificado na política de chaves.
Para obter mais informações sobre o contexto de criptografia usado pelo Amazon SES ao criptografar suas mensagens de e-mail, consulte Contexto de criptografia do Amazon SES. Para obter informações gerais sobre como o AWS KMS usa o contexto de criptografia, consulte contexto de criptografia.
Obter e descriptografar mensagens de e-mail
O Amazon SES não tem permissão para descriptografar suas mensagens de e-mail criptografadas e não pode descriptografá-las para você. Você deve escrever o código para obter suas mensagens de e-mail do Amazon S3 e descriptografá-las. Para tornar isso mais fácil, use o cliente de criptografia do Amazon S3. Os AWS SDKs a seguir incluem o cliente de criptografia do Amazon S3:
-
AWS SDK for Java
– Consulte AmazonS3EncryptionClient e AmazonS3EncryptionClientV2 na Referência de APIs do AWS SDK for Java. -
AWS SDK for Ruby
– Consulte Aws::S3::Encryption::Client na Referência de APIs do AWS SDK for Ruby. -
AWS SDK for .NET
– Consulte AmazonS3EncryptionClient na Referência de APIs do AWS SDK for .NET. -
AWS SDK for Go
– Consulte s3crypto na Referência de APIs do AWS SDK for Go.
O cliente de criptografia do Amazon S3 simplifica o trabalho de construção das solicitações necessárias para o Amazon S3 recuperar a mensagem de e-mail criptografada e o AWS KMS descriptografar a chave de dados criptografada da mensagem, e descriptografar a mensagem de e-mail. Por exemplo, para descriptografar com êxito a chave de dados criptografada, você deve passar o mesmo contexto de criptografia que o Amazon SES passou ao solicitar a chave de dados do AWS KMS (Passo 3 na Visão geral da criptografia do Amazon SES usando o AWS KMS). O cliente de criptografia do Amazon S3 lida com isso, e muito mais das outras tarefas, para você.
Para o código de exemplo que usa o cliente de criptografia do Amazon S3 no AWS SDK for Java para fazer a descriptografia do lado do cliente, consulte o seguinte:
-
Uso de uma chave do KMS armazenada no AWS KMS no Guia do usuário do Amazon Simple Storage Service.
-
Criptografia do Amazon S3 com o AWS Key Management Service
no blog de desenvolvedores da AWS.