Criptografia de dados em repouso para o Amazon SES - Amazon Simple Email Service

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

Criptografia de dados em repouso para o Amazon SES

Por padrão, o Amazon SES criptografa todos os dados em repouso. Por padrão, a criptografia ajuda a reduzir a sobrecarga operacional e a complexidade envolvidas na proteção de dados. A criptografia também permite que você crie arquivos do Mail Manager que atendam aos rigorosos requisitos regulatórios e de conformidade de criptografia.

O SES fornece as seguintes opções de criptografia:

  • Chaves de propriedade da AWS: o SES as usa por padrão. Você não pode visualizar, gerenciar ou usar chaves de propriedade da AWS, tampouco auditar seu uso. No entanto, você não precisa fazer nada e nem alterar qualquer programa para proteger as chaves que criptografam seus dados. Para obter mais informações, consulte chaves de propriedade da AWS no Guia do desenvolvedor do AWS Key Management Service.

  • Chaves gerenciadas pelo cliente: o SES oferece suporte ao uso de chaves simétricas gerenciadas pelo cliente que você cria, possui e gerencia. Uma vez que você tem controle total da criptografia, é possível realizar tarefas como:

    • Estabelecer e manter as políticas de chave

    • Estabelecer e manter subsídios e IAM policies

    • Habilitar e desabilitar políticas de chaves

    • Alternar os materiais de criptografia de chave

    • Adicionar etiquetas

    • Criar réplicas de chaves

    • Programar chaves para exclusão

    Para usar sua própria chave, escolha uma chave gerenciada pelo cliente ao criar os recursos do SES.

    Para obter mais informação, consulte Chaves gerenciadas pelo cliente no Guia do desenvolvedor do AWS Key Management Service.

nota

O SES ativa automaticamente a criptografia em repouso usando chaves de propriedade da AWS sem nenhum custo.

No entanto, cobranças da AWS KMS se aplicam ao uso de uma chave gerenciada pelo cliente. Para obter mais informações sobre preços, consulte definição de preços da AWS Key Management Service.

Criar uma chave gerenciada pelo cliente

Você pode criar uma chave simétrica gerenciada pelo cliente usando o AWS Management Console ou as APIs do AWS KMS.

Para criar uma chave simétrica gerenciada pelo cliente

Siga as etapas para Criar chaves do KMS de criptografia simétrica no Guia do desenvolvedor do AWS Key Management Service.

nota

Para o arquivamento, sua chave deve atender aos seguintes requisitos:

  • A chave deve ser simétrica.

  • A origem do material da chave deve ser AWS_KMS.

  • O uso da chave deve ser ENCRYPT_DECRYPT.

Política de chave

As políticas de chaves controlam o acesso à chave gerenciada pelo seu cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, você pode especificar uma política de chaves. Para obter mais informações, consulte Managing access to customer managed keys (Administrando o acesso a chaves gerenciadas pelo cliente) no Guia do desenvolvedor do AWS Key Management Service.

Para usar sua chave gerenciada pelo cliente com o arquivamento do Mail Manager, sua política de chave deve permitir as seguintes operações de API:

  • kms:DescribeKey: fornece os detalhes da chave gerenciada pelo cliente que permitem ao SES validar a chave.

  • kms:GenerateDataKey: permite que o SES gere uma chave de dados para criptografar dados em repouso.

  • kms:Decrypt: permite que o SES descriptografe os dados armazenados antes de devolvê-los aos clientes da API.

O exemplo a seguir mostra uma política de chave típica:

{ "Sid": "Allow SES to encrypt/decrypt", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" },

Para obter mais informações, consulte especificação de permissões em uma política, no Guia do desenvolvedor do AWS Key Management Service.

Para obter mais informações sobre solução de problemas, consulte solucionar problemas de acesso à chave no Guia do desenvolvedor do AWS Key Management Service.

Especificar uma chave gerenciada pelo cliente para o arquivamento do Mail Manager

Você pode especificar uma chave gerenciada pelo cliente como alternativa ao uso de chaves de propriedade da AWS. Ao criar um arquivo, você pode especificar a chave de dados inserindo o ARN da chave KMS, que o arquivamento do Mail Manager usa para criptografar todos os dados do cliente no arquivo.

  • kmsKeyArn: um identificador de chave para uma chave gerenciada pelo cliente da AWS KMS. Insira uma ID de chave, um ARN de chave, um nome de alias ou um ARN de alias.

Contexto de criptografia do Amazon SES

Um contexto de criptografia é um conjunto opcional de pares chave-valor que pode conter informações contextuais adicionais sobre os dados.

O AWS KMS usa o contexto de criptografia como dados autenticados adicionais para viabilizar a criptografia autenticada. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto da criptografia aos dados criptografados. Para descriptografar os dados, você inclui o mesmo contexto de criptografia na solicitação.

nota

O Amazon SES não oferece suporte a contextos de criptografia para criação de arquivos. Em vez disso, é usada uma política IAM ou KMS. Para ver exemplos de políticas, consulte Políticas de criação de arquivos mais adiante nesta seção.

Contexto de criptografia do Amazon SES

O SES usa o mesmo contexto de criptografia em todas as operações de AWS KMS criptográficas, onde a chave está aws:ses:arn e o valor é o nome do recurso da Amazon (ARN).

"encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }

Uso do contexto de criptografia para monitoramento

Ao usar uma chave simétrica gerenciada pelo cliente para criptografar o recurso do SES, você também pode utilizar o contexto de criptografia em registros de auditoria e logs para identificar como a chave gerenciada pelo cliente está sendo utilizada. O contexto de criptografia também aparece nos logs gerados pelo AWS CloudTrail ou por Amazon CloudWatch Logs.

Uso do contexto de criptografia para controlar o acesso à chave gerenciada pelo cliente

Você pode usar o contexto de criptografia nas políticas de chaves e políticas do IAM como conditions e controlar o acesso à sua chave simétrica gerenciada pelo cliente. Você também pode usar restrições no contexto de criptografia em uma concessão.

O SES utiliza uma restrição ao contexto de criptografia em concessões para controlar o acesso à chave gerenciada pelo cliente na sua conta ou região. A restrição da concessão exige que as operações permitidas pela concessão usem o contexto de criptografia especificado.

Veja a seguir exemplos de declarações de políticas de chave para conceder acesso a uma chave gerenciada pelo cliente para um contexto de criptografia específico. A condição nesta declaração de política exige que as concessões tenham uma restrição de contexto de criptografia que especifique o contexto de criptografia.

{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Enable CreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" } } }

Políticas de criação de arquivos

O exemplo de políticas a seguir mostra como habilitar a criação de arquivos. As políticas funcionam em todos os ativos.

Política do IAM

{ "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ses:CreateArchive", "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "ses.us-east-1.amazonaws.com", "kms:CallerAccount": "012345678910" } } }

Política de AWS KMS

{ "Sid": "Allow SES to encrypt/decrypt", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" },

Monitorar suas chaves de criptografia para o Amazon SES

Ao usar uma chave gerenciada pelo cliente do AWS KMS com seus recursos do Amazon SES, você poderá usar o AWS CloudTrail ou o Amazon CloudWatch Logs para rastrear as solicitações que o SES envia ao AWS KMS.

Os exemplos a seguir são eventos do AWS CloudTrail para GenerateDataKey, Decrypt e DescribeKey que monitoram as operações do KMS chamadas pelo SES para acessar dados criptografados pela chave gerenciada pelo cliente:

GenerateDataKey

Ao habilitar uma chave gerenciada pelo cliente do AWS KMS para o seu recurso, o SES cria uma chave de tabela exclusiva. Ele envia uma solicitação GenerateDataKey para o AWS KMS que especifica a chave gerenciada pelo cliente AWS KMS para o recurso.

Ao habilitar uma chave gerenciada pelo cliente do AWS KMS para seu recurso de arquivamento do Mail Manager, ele usará GenerateDataKey ao criptografar dados de arquivamento em repouso.

O evento de exemplo a seguir registra a operação GenerateDataKey:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "57f5dbee-16da-413e-979f-2c4c6663475e" }
Decrypt

Quando você acessa um recurso criptografado, o SES chama a operação Decrypt para usar a chave de dados criptografados armazenada para acessar os dados criptografados.

O evento de exemplo a seguir registra a operação Decrypt:

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:10:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "encryptionContext": { "aws:ses:arn": "arn:aws:ses:us-west-2:111122223333:ExampleResourceName/ExampleResourceID" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333", "sharedEventID": "dc129381-1d94-49bd-b522-f56a3482d088" }
DescribeKey

O SES usa a operação DescribeKey para verificar se a chave gerenciada pelo cliente do AWS KMS associada ao seu recurso existe na conta e na região.

O evento de exemplo a seguir registra a operação DescribeKey:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "mfaAuthenticated": "false", "creationDate": "2021-04-22T17:02:00Z" } }, "invokedBy": "ses.amazonaws.com" }, "eventTime": "2021-04-22T17:07:02Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "keyId": "00dd0db0-0000-0000-ac00-b0c000SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "eventCategory": "Management", "recipientAccountId": "111122223333" }

Saiba mais

Os recursos a seguir fornecem mais informações sobre a criptografia de dados em pausa.