Como o Amazon WorkMail usa o AWS KMS - AWS Key Management Service

Como o Amazon WorkMail usa o AWS KMS

Este tópico discute como o Amazon WorkMail usa o AWS KMS para criptografar mensagens de e-mail.

Visão geral do Amazon WorkMail

O Amazon WorkMail é um serviço gerenciado de e-mail e calendário comerciais seguro com suporte a clientes de e-mail móveis e de desktop existentes. Você pode criar uma organização do Amazon WorkMail e atribuí-la a um ou mais domínios de e-mail que você possui. Você pode criar caixas de correio para os usuários e grupos de distribuição de e-mail na organização.

O Amazon WorkMail criptografa de forma transparente todas as mensagens nas caixas de correio de todas as organizações do Amazon WorkMail antes que as mensagens sejam gravadas em disco, descriptografando-as de forma transparente quando os usuários as acessam. Não há nenhuma opção para desabilitar a criptografia. Para proteger as chaves de criptografia que protegem as mensagens, o Amazon WorkMail está integrado ao AWS Key Management Service (AWS KMS).

O Amazon WorkMail também fornece uma opção para permitir que os usuários enviem e-mails assinados ou criptografados. Este recurso de criptografia não usa o AWS KMS.

Criptografia do Amazon WorkMail

No Amazon WorkMail, cada organização pode ter várias caixas de correio, uma para cada usuário na organização. Todas as mensagens, incluindo e-mail, calendário e itens são armazenados na caixa de correio do usuário.

Para proteger o conteúdo das caixas de correio em suas organizações do Amazon WorkMail, o Amazon WorkMail criptografa todas as mensagens de correio antes que elas sejam gravadas em disco. Nenhuma informação fornecidas pelo cliente é armazenada em texto simples.

Cada mensagem é criptografada em uma chave de criptografia dos dados exclusiva. A chave da mensagem é protegida por uma chave de caixa de correio, que é uma chave exclusiva usada apenas para essa caixa de correio. A chave de caixa de correio é criptografada em uma AWS KMS key para a organização que nunca deixa o AWS KMS em estado sem criptografia. O diagrama a seguir mostra a relação das mensagens criptografadas, das chaves de mensagens criptografadas, da chave de caixa de correio criptografada e da chave do KMS para a organização no AWS KMS.


        Criptografar suas caixas de correio do Amazon WorkMail

Uma chave do KMS para a organização

Ao criar uma organização do Amazon WorkMail, você pode selecionar uma AWS KMS key para a organização. Essa chave do KMS protege todas as chaves de caixa de correio nessa organização.

Se você usar o procedimento de Configuração rápida para criar sua organização, o Amazon WorkMail usará a Chave gerenciada pela AWS para o Amazon WorkMail (aws/workmail) na sua Conta da AWS. Se você usar a Configuração padrão, poderá selecionar a Chave gerenciada pela AWS para o Amazon WorkMail ou uma chave gerenciada pelo cliente que você possui e gerencia. É possível selecionar a mesma chave do KMS ou uma chave do KMS diferente para cada uma das suas organizações, mas não é possível alterar a chave do KMS depois de selecioná-la.

Importante

O Amazon WorkMail só é compatível com chaves do KMS de criptografia simétrica. Não é possível usar uma chave do KMS assimétrica para criptografar dados no Amazon WorkMail. Para obter ajuda para determinar se uma chave do KMS é simétrica ou assimétrica, consulte Identificar chaves do KMS assimétricas.

Para localizar a chave do KMS da sua organização, use a entrada de log do AWS CloudTrail que registra chamadas para o AWS KMS.

Uma chave de criptografia exclusiva para cada caixa de correio

Quando você cria uma nova caixa de correio, o Amazon WorkMail gera uma chave de criptografia simétrica Advanced Encryption Standard (AES) de 256 bits exclusiva para essa caixa de correio, conhecida como chave de caixa de correio, fora do AWS KMS. O Amazon WorkMail usa essa chave de caixa de correio para proteger as chaves de criptografia de cada mensagem na caixa de correio.

Para proteger a chave de caixa de correio, o Amazon WorkMail chama o AWS KMS para criptografá-la na chave do KMS para a organização. Ele armazena a chave de caixa de correio criptografada nos metadados da caixa de correio.

nota

O Amazon WorkMail usa uma chave de criptografia de caixa de correio simétrica para proteger chaves de mensagens. Anteriormente, o Amazon WorkMail protegia cada caixa de correio com um par de chaves assimétricas. Ele usava a chave pública para criptografar cada chave de mensagem e a chave privada para descriptografá-la. A chave de caixa correio privada era protegida pela chave do KMS para a organização. As caixas de correio existentes ainda podem usar um par de chaves de caixa de correio assimétricas. Essa alteração não afeta a segurança da caixa de correio ou suas mensagens.

Uma chave de criptografia exclusiva para cada mensagem

Quando uma mensagem é adicionada à caixa de correio, o Amazon WorkMail gera uma chave de criptografia exclusiva simétrica AES de 256 bits para a mensagem fora do AWS KMS. Ele usa essa chave de mensagem para criptografar a mensagem. O Amazon WorkMail criptografa a chave de mensagem na chave de caixa de correio e armazena a chave de mensagem criptografada com a mensagem. Em seguida, ele criptografa a chave de caixa de correio na chave do KMS para a organização.

Criar uma caixa de correio

Quando o Amazon WorkMail cria uma nova caixa de correio, ele usa o processo a seguir para preparar a caixa de correio para armazenar mensagens criptografadas.

  • O Amazon WorkMail gera uma chave de criptografia simétrica exclusiva AES de 256 bits para a caixa de correio fora do AWS KMS.

  • O Amazon WorkMail chama a operação do AWS KMS Encrypt. Ela é transmitida na chave de caixa de correio e no identificador da AWS KMS key para a organização. O AWS KMS retorna um texto cifrado da chave de caixa de correio criptografada na chave do KMS.

  • O Amazon WorkMail armazena a chave de caixa de correio criptografada com a chave de metadados.

Criptografar uma mensagem de caixa de correio

Para criptografar uma mensagem, o Amazon WorkMail usa o processo a seguir.

  1. O Amazon WorkMail gera uma chave simétrica exclusiva do AES de 256 bits para a mensagem. Ele usa a chave de dados de texto simples e o algoritmo AES (Advanced Encryption Standard) para criptografar a mensagem fora do AWS KMS.

  2. Para proteger a chave de mensagem na chave de caixa de correio, o Amazon WorkMail precisa descriptografar a chave de caixa de correio, que é sempre armazenada de forma criptografada.

    O Amazon WorkMail chama a operação do AWS KMS Decrypt e a transmite na chave de caixa de correio criptografada. O AWS KMS usa a chave do KMS para a organização para descriptografar a chave de caixa de correio e retorna a chave de caixa de correio de texto simples ao Amazon WorkMail.

  3. O Amazon WorkMail usa a chave de dados em texto simples e o algoritmo AES (Advanced Encryption Standard) para criptografar a chave de mensagem fora do AWS KMS.

  4. O Amazon WorkMail armazena a chave de mensagem criptografada nos metadados da mensagem criptografada e, portanto, ela fica disponível para descriptografar essa mensagem.

Descriptografar uma mensagem de caixa de correio

Para descriptografar uma mensagem, o Amazon WorkMail usa o processo a seguir.

  1. O Amazon WorkMail chama a operação do AWS KMS Decrypt e a transmite na chave de caixa de correio criptografada. O AWS KMS usa a chave do KMS para a organização para descriptografar a chave de caixa de correio e retorna a chave de caixa de correio de texto simples ao Amazon WorkMail.

  2. O Amazon WorkMail usa a chave de dados em texto simples e o algoritmo AES (Advanced Encryption Standard) para descriptografar a chave de mensagem criptografada fora do AWS KMS.

  3. O Amazon WorkMail usa a chave de mensagem em texto simples para descriptografar a mensagem criptografada.

Armazenar chaves de caixa de correio em cache

Para melhorar a performance e minimizar as chamadas para o AWS KMS, o Amazon WorkMail armazena em cache cada chave de caixa de correio de texto simples para cada cliente localmente por até um minuto. No final do período de cache, a chave de caixa de correio é removida. Se a chave de caixa de correio para esse cliente for necessária durante o período de cache, o Amazon WorkMail pode obtê-la do cache em vez de chamar o AWS KMS. A chave de caixa de correio está protegida no cache e nunca é gravada em disco em texto simples.

Autorizar o uso da chave do KMS

Quando o Amazon WorkMail usa uma AWS KMS key em operações de criptografia, ele age em nome do administrador da caixa de correio.

Para usar a AWS KMS key para um segredo em seu nome, o administrador deve ter as permissões a seguir. Você pode especificar essas permissões necessárias em uma política do IAM ou uma política de chaves.

  • kms:Encrypt

  • kms:Decrypt

  • kms:CreateGrant

Para permitir que a chave do KMS seja usada apenas para solicitações provenientes do Amazon WorkMail, você pode usar a chave de condição kms:ViaService com o valor workmail.<region>.amazonaws.com.

Você também pode usar as chaves ou valores no contexto de criptografia como uma condição para usar a chave do KMS para operações de criptografia. Por exemplo, você pode usar um operador de condição de string em um documento do IAM ou de uma política de chaves, ou usar uma restrição de concessão em uma concessão.

Política de chaves para as Chave gerenciada pela AWS

A política de chaves da Chave gerenciada pela AWS para o Amazon WorkMail concede aos usuários permissão para usar a chave do KMS para operações especificadas somente quando o WorkMail faz a solicitação em nome do usuário. A política de chaves não permite que os usuários utilizem a chave do KMS diretamente.

Essa política de chaves, como as políticas de todas as Chaves gerenciadas pela AWS, é estabelecida pelo serviço. Não é possível alterar a política de chaves, mas é possível visualizá-la a qualquer momento. Para obter mais detalhes, consulte Visualizar uma política de chaves.

As declarações de política na política de chaves têm os seguintes efeitos:

  • Permitem que os usuários na conta e região usem a chave do KMS para operações de criptografia e criem concessões, mas somente quando a solicitação provém do Amazon WorkMail em seu nome. A chave de condição kms:ViaService impõe essa restrição.

  • Permite que a Conta da AWS crie políticas do IAM que permitem que os usuários visualizem as propriedades da chave do KMS e revoguem concessões.

Veja a seguir uma política de chaves de um exemplo de Chave gerenciada pela AWS para o Amazon WorkMail.

{ "Version" : "2012-10-17", "Id" : "auto-workmail-1", "Statement" : [ { "Sid" : "Allow access through WorkMail for all principals in the account that are authorized to use WorkMail", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Decrypt", "kms:CreateGrant", "kms:ReEncrypt*", "kms:DescribeKey", "kms:Encrypt" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "workmail.us-east-1.amazonaws.com", "kms:CallerAccount" : "111122223333" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:List*", "kms:Get*", "kms:RevokeGrant" ], "Resource" : "*" } ] }

Usar concessões para autorizar o Amazon WorkMail

Além de políticas de chaves, o Amazon WorkMail usa concessões para adicionar permissões à chave do KMS para cada organização. Para visualizar as concessões na chave do KMS na sua conta, use a operação ListGrants.

O Amazon WorkMail usa concessões para adicionar as seguintes permissões à chave do KMS para a organização.

  • Adicione a permissão kms:Encrypt para permitir que o Amazon WorkMail criptografe a chave de caixa de correio.

  • Adicione a permissão kms:Decrypt para permitir que o Amazon WorkMail use a chave do KMS para descriptografar a chave de caixa de correio. O Amazon WorkMail requer essa permissão em uma concessão porque a solicitação para ler mensagens de caixa de correio usa o contexto de segurança do usuário que está lendo a mensagem. A solicitação não usa as credenciais da Conta da AWS. O Amazon WorkMail cria essa concessão quando você seleciona uma chave do KMS para a organização.

Para criar as concessões, o Amazon WorkMail chama CreateGrant em nome do usuário que criou a organização. A permissão para criar a concessão vem de política de chaves. Essa política permite que os usuários da conta chamem CreateGrant na chave do KMS para a organização quando o Amazon WorkMail faz a solicitação em nome de um usuário autorizado.

A política de chaves também permite que a conta raiz revogue a concessão na Chave gerenciada pela AWS. No entanto, se você revogar a concessão, o Amazon WorkMail não poderá descriptografar os dados criptografados em suas caixas de correio.

Contexto de criptografia do Amazon WorkMail

Um contexto de criptografia é um conjunto de pares de chave-valor que contêm dados arbitrários não secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Para descriptografar os dados, você deve passar o mesmo contexto de criptografia.

O Amazon WorkMail usa o mesmo formato de contexto de criptografia em todas as operações de criptografia do AWS KMS. É possível usar o contexto de criptografia para identificar uma operação criptográfica em logs e registros de auditoria, como o AWS CloudTrail, e como uma condição para a autorização em políticas e concessões.

Em suas solicitações Encrypt e Decrypt para o AWS KMS, o Amazon WorkMail usa um contexto de criptografia em que a chave é aws:workmail:arn e o valor é o Amazon Resource Name (ARN) da organização.

"aws:workmail:arn":"arn:aws:workmail:region:account ID:organization/organization ID"

Por exemplo, o seguinte contexto de criptografia inclui um ARN da organização de exemplo na região Leste dos EUA (Ohio) (us-east-2)

"aws:workmail:arn":"arn:aws:workmail:us-east-2:111122223333:organization/m-68755160c4cb4e29a2b2f8fb58f359d7"

Monitorar a interação do Amazon WorkMail com o AWS KMS

Você pode usar o AWS CloudTraile o Amazon CloudWatch Logs para rastrear as solicitações que o Amazon WorkMail envia ao AWS KMS em seu nome.

Encrypt

Quando você cria uma nova caixa de correio, o Amazon WorkMail gera uma chave de caixa de correio e chama o AWS KMS para criptografar a chave de caixa de correio. O Amazon WorkMail envia uma solicitação Encrypt ao AWS KMScom a chave de caixa de correio em texto simples e um identificador para a chave do KMS da organização do Amazon WorkMail.

O evento que registra a operação Encrypt é semelhante ao evento de exemplo a seguir. O usuário é o serviço Amazon WorkMail. Os parâmetros incluem o ID da chave do KMS (keyId) e o contexto de criptografia para a organização do Amazon WorkMail. O Amazon WorkMail também transmite a chave de caixa de correio, mas isso não é registrado no log do CloudTrail.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "workmail.eu-west-1.amazonaws.com" }, "eventTime": "2019-02-19T10:01:09Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "eu-west-1", "sourceIPAddress": "workmail.eu-west-1.amazonaws.com", "userAgent": "workmail.eu-west-1.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:workmail:arn": "arn:aws:workmail:eu-west-1:111122223333:organization/m-c6981ff7642446fa8772ba99c690e455" }, "keyId": "arn:aws:kms:eu-west-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, "responseElements": null, "requestID": "76e96b96-7e24-4faf-a2d6-08ded2eaf63c", "eventID": "d5a59c18-128a-4082-aa5b-729f7734626a", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:eu-west-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "d08e60f1-097e-4a00-b7e9-10bc3872d50c" }

Decrypt

Quando você adiciona, visualiza ou exclui uma mensagem de caixa de correio, o Amazon WorkMail pede ao AWS KMS para descriptografar a chave de caixa de correio. O Amazon WorkMail envia uma solicitação Decrypt ao AWS KMScom a chave de caixa de correio criptografada e um identificador para a chave do KMS da organização do Amazon WorkMail.

O evento que registra a operação Decrypt é semelhante ao evento de exemplo a seguir. O usuário é o serviço Amazon WorkMail. Os parâmetros incluem a chave de caixa de correio criptografada (como um blob de texto cifrado), que não é registrada no log, e o contexto de criptografia para a organização do Amazon WorkMail. O AWS KMS cria o ID da chave do KMS a partir do texto cifrado.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "workmail.eu-west-1.amazonaws.com" }, "eventTime": "2019-02-20T11:51:10Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-west-1", "sourceIPAddress": "workmail.eu-west-1.amazonaws.com", "userAgent": "workmail.eu-west-1.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:workmail:arn": "arn:aws:workmail:eu-west-1:111122223333:organization/m-c6981ff7642446fa8772ba99c690e455" } }, "responseElements": null, "requestID": "4a32dda1-34d9-4100-9718-674b8e0782c9", "eventID": "ea9fd966-98e9-4b7b-b377-6e5a397a71de", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:eu-west-1:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "241e1e5b-ff64-427a-a5b3-7949164d0214" }