Amazon 的数据保护 WorkMail - Amazon WorkMail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon 的数据保护 WorkMail

分 AWS 担责任模式适用于亚马逊的数据保护 WorkMail。如本模型所述 AWS ,负责保护运行所有内容的全球基础架构 AWS Cloud。您负责维护对托管在此基础架构上的内容的控制。您还负责您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息,请参阅数据隐私常见问题有关欧洲数据保护的信息,请参阅 AWS Security Blog 上的 AWS Shared Responsibility Model and GDPR 博客文章。

出于数据保护目的,我们建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 设置个人用户。这样,每个用户只获得履行其工作职责所需的权限。我们还建议您通过以下方式保护数据:

  • 对每个账户使用多重身份验证(MFA)。

  • 使用 SSL/TLS 与资源通信。 AWS 我们要求使用 TLS 1.2,建议使用 TLS 1.3。

  • 使用设置 API 和用户活动日志 AWS CloudTrail。

  • 使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。

  • 使用高级托管安全服务(例如 Amazon Macie),它有助于发现和保护存储在 Amazon S3 中的敏感数据。

  • 如果您在 AWS 通过命令行界面或 API 进行访问时需要经过 FIPS 140-2 验证的加密模块,请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息,请参阅《美国联邦信息处理标准 (FIPS) 第 140-2 版》

我们强烈建议您切勿将机密信息或敏感信息(如您客户的电子邮件地址)放入标签或自由格式文本字段(如名称字段)。这包括您 AWS 服务 使用控制台、API WorkMail 或 AWS SDK 与 Amazon 或其他机构合作的情况。 AWS CLI在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供网址,强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

亚马逊如何 WorkMail 使用 AWS KMS

在将邮件写入磁盘之前,Amazon 会对所有亚马逊 WorkMail 组织邮箱中的所有邮件进行 WorkMail 透明加密,并在用户访问邮件时透明地解密这些邮件。您不能禁用加密。为了保护保护消息的加密密钥,Amazon 集成 WorkMail 了 AWS Key Management Service (AWS KMS)。

Amazon WorkMail 还提供了允许用户发送签名或加密电子邮件的选项。此加密功能不使用 AWS KMS。有关更多信息,请参阅 启用已签名或已加密的电子邮件

亚马逊 WorkMail 加密

在 Amazon 中 WorkMail,每个组织可以包含多个邮箱,组织中的每个用户对应一个邮箱。所有消息(包括电子邮件和日历项)都存储在用户的邮箱中。

为了保护您的 Amazon WorkMail 组织中的邮箱内容,Amazon 会在将所有邮箱邮件写入磁盘之前对其进行 WorkMail 加密。任何客户提供的信息均为明文形式存储。

每条消息都使用唯一的数据加密密钥进行加密。邮件密钥受邮箱密钥保护,邮箱密钥是仅用于该邮箱的唯一加密密钥。邮箱密钥使用 AWS KMS 客户主密钥 (CMK) 进行加密,该密钥永远不会处于 AWS KMS 未加密状态。下图显示了 AWS KMS中加密消息、加密消息密钥、加密邮箱密钥和组织中 CMK 之间的关系。

加密您的 Amazon 邮箱 WorkMail

为组织设置 CMK

创建 Amazon WorkMail 组织时,您可以选择为该组织选择 AWS KMS 客户主密钥 (CMK)。此 CMK 保护该组织中的所有邮箱密钥。

您可以为 Amazon 选择默认的 AWS 托管 CMK WorkMail,也可以选择自己拥有和管理的现有客户托管 CMK。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的客户主密钥 (CMKs)您可以为每个组织选择相同的 CMK 或不同的 CMK,但一旦选择 CMK,就无法更改它。

重要

Amazon 仅 WorkMail 支持对称 CMK。您不能使用非对称 CMK。要获取确定 CMK 是对称还是非对称密钥的帮助,请参阅《AWS Key Management Service 开发人员指南》中的识别对称和非对称 CMK

要查找贵组织的 CMK,请使用记录呼叫的 AWS CloudTrail 日志条目。 AWS KMS

每个邮箱的唯一加密密钥

当您创建邮箱时,Amazon WorkMail 会为其外部的邮箱生成一个唯一的 256 位高级加密标准 (AES) 对称加密密钥,称为邮箱密钥。 AWS KMS Amazon WorkMail 使用邮箱密钥来保护邮箱中每封邮件的加密密钥。

为了保护邮箱密钥,Amazon WorkMail 要求 AWS KMS 对组织的 CMK 下的邮箱密钥进行加密。然后,它将加密的邮箱密钥存储在邮箱元数据中。

注意

Amazon WorkMail 使用对称邮箱加密密钥来保护消息密钥。以前,Amazon 使用非对称密钥对 WorkMail保护每个邮箱。它使用公有密钥加密每个消息密钥,并使用私有密钥解密该密钥。私有邮箱密钥受组织的 CMK 保护。较旧的邮箱可能使用非对称邮箱密钥对。此更改不会影响邮箱或其消息的安全。

加密每封邮件

当用户向邮箱添加邮件时,Amazon WorkMail 会为邮箱之外的邮件生成一个唯一的 256 位 AES 对称加密密钥。 AWS KMS它使用这个消息密钥对消息进行加密。Amazon WorkMail 对邮箱密钥下的消息密钥进行加密,并将加密的消息密钥与邮件一起存储。然后,它使用组织的 CMK 加密邮箱密钥。

创建新邮箱

Amazon WorkMail 创建邮箱时,会使用以下过程来准备用于存放加密邮件的邮箱。

  • 亚马逊为 AWS KMS 之外的邮箱 WorkMail 生成唯一的 256 位 AES 对称加密密钥。

  • 亚马逊 WorkMail 称之为 “ AWS KMS 加密” 操作。它传入组织的邮箱密钥和客户主密钥 (CMK) 的标识符。 AWS KMS 返回在 CMK 下加密的邮箱密钥的密文。

  • Amazon 将加密的邮箱密钥与邮箱元数据一起 WorkMail 存储。

加密邮箱消息

要对消息进行加密,Amazon WorkMail 使用以下流程。

  1. 亚马逊 WorkMail 为消息生成一个唯一的 256 位 AES 对称密钥。它使用纯文本消息密钥和高级加密标准 (AES) 算法对外部的消息进行加密。 AWS KMS

  2. 为了保护邮箱密钥下的消息密钥,Amazon WorkMail 需要解密邮箱密钥,该密钥始终以加密形式存储。

    Amazon WorkMail 调用 “ AWS KMS 解密” 操作并传入加密的邮箱密钥。 AWS KMS 使用组织的 CMK 解密邮箱密钥,并将纯文本邮箱密钥返回给 Amazon。 WorkMail

  3. Amazon WorkMail 使用纯文本邮箱密钥和高级加密标准 (AES) 算法对外部的邮件密钥进行加密。 AWS KMS

  4. Amazon 将加密消息密钥 WorkMail 存储在加密消息的元数据中,以便可以对其进行解密。

解密邮箱消息

要解密消息,Amazon WorkMail 使用以下流程。

  1. Amazon WorkMail 调用 “ AWS KMS 解密” 操作并传入加密的邮箱密钥。 AWS KMS 使用组织的 CMK 解密邮箱密钥,并将纯文本邮箱密钥返回给 Amazon。 WorkMail

  2. Amazon WorkMail 使用纯文本邮箱密钥和高级加密标准 (AES) 算法来解密外部的加密邮件密钥。 AWS KMS

  3. Amazon WorkMail 使用纯文本消息密钥来解密加密的消息。

缓存邮箱密钥

为了提高性能并最大限度地减少对的呼叫 AWS KMS,Amazon 在本地 WorkMail 缓存每个客户端的每个纯文本邮箱密钥最多一分钟。在缓存期结束时,将删除邮箱密钥。如果在缓存期间需要该客户端的邮箱密钥,Amazon WorkMail 可以从缓存中获取该密钥,而不必调用 AWS KMS。邮箱密钥在缓存中受保护,并且永远不会以明文形式写入磁盘中。

授权使用 CMK

当 Amazon 在加密操作中 WorkMail 使用客户主密钥 (CMK) 时,它代表邮箱管理员行事。

要代表您使用 AWS KMS 客户主密钥 (CMK) 获取密钥,管理员必须具有以下权限。您可以在 IAM 策略或密钥策略中指定这些所需的权限。

  • kms:Encrypt

  • kms:Decrypt

  • kms:CreateGrant

要允许 CMK 仅用于源自亚马逊的请求 WorkMail,您可以将 kms: ViaService 条件键与值一起使用。workmail.<region>.amazonaws.com

您还可以在加密上下文中将密钥或值用作将 CMK 用于加密操作的条件。例如,可在 IAM 或密钥策略文档中使用字符串条件运算符,或在授权中使用授权约束。

AWS 托管 CMK 的密钥策略

只有当亚马逊代表用户提出请求时,Amazon AWS WorkMail 托管 CMK 的密钥策略才允许用户使用 CMK 进行指定操作。 WorkMail 密钥策略不允许任何用户直接使用 CMK。

此密钥策略与所有 AWS 托管密钥的策略类似,均由该服务来建立。您无法更改密钥策略,但可以随时查看。有关详细信息,请参阅《AWS Key Management Service 开发人员指南》中的查看密钥策略

密钥策略中的策略语句具有以下影响:

  • 允许账户和地区的用户使用 CMK 进行加密操作和创建授权,但前提是亚马逊 WorkMail 代表他们发出请求。kms:ViaService 条件密钥可强制实施此限制。

  • 允许该 AWS 账户创建 IAM 策略,允许用户查看 CMK 属性和撤消授权。

以下是 Amazon AWS WorkMail 托管 CMK 示例的关键策略。

{ "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" : "*" } ] }

使用赠款来授权 Amazon WorkMail

除了密钥策略外,Amazon 还 WorkMail 使用授权为每个组织添加对 CMK 的权限。要查看您账户中 CMK 的授权,请使用ListGrants操作。

Amazon WorkMail 使用授权向该组织的 CMK 添加以下权限。

  • 添加kms:Encrypt允许 Amazon WorkMail 加密邮箱密钥的权限。

  • 添加kms:Decrypt允许 Amazon WorkMail 使用 CMK 解密邮箱密钥的权限。Amazon 在授权中 WorkMail 需要此权限,因为阅读邮箱消息的请求使用的是正在阅读邮件的用户的安全上下文。该请求不使用 AWS 账户的证书。当您为组织选择一个 CMK 时,Amazon 就会 WorkMail 创建此授权。

为了创建授权,Amaz CreateGranton 代表创建该组织的用户致 WorkMail 电。用于创建授权的权限来自密钥策略。当亚马逊 WorkMail 代表授权用户提出请求时,该政策允许账户用户调用CreateGrant组织的 CMK。

密钥策略还允许账户 root 撤销对 AWS 托管密钥的授权。但是,如果您撤销授权,Amazon 将 WorkMail 无法解密您邮箱中的加密数据。

Amazon WorkMail 加密环境

加密上下文是一组包含任意非机密数据的键值对。当您在加密数据的请求中包含加密上下文时,会以加密 AWS KMS 方式将加密上下文绑定到加密数据。要解密数据,您必须传入相同的加密上下文。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的加密内容

Amazon 在所有加密操作中 WorkMail 使用相同的 AWS KMS 加密上下文格式。您可以使用加密上下文在审计记录和日志中标识加密操作(例如 AWS CloudTrail),并将加密上下文用作在策略和授权中进行授权的条件。

在对的加密解密请求中, AWS KMS Amazon WorkMail 使用加密环境,其中密钥为aws:workmail:arn,值为组织的亚马逊资源名称 (ARN)。

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

例如,以下加密上下文将示例组织 ARN 包含在欧洲地区(爱尔兰) (eu-west-1) 区域中。

"aws:workmail:arn":"arn:aws:workmail:eu-west-1:111122223333:organization/m-a123b4c5de678fg9h0ij1k2lm234no56"

监控亚马逊与之的 WorkMail 互动 AWS KMS

您可以使用 AWS CloudTrail 和 Amaz CloudWatch on Logs 来跟踪亚马逊 AWS KMS 代表您 WorkMail 发送的请求。

Encrypt

当您创建邮箱时,Amazon WorkMail 会生成邮箱密钥并调用 AWS KMS 对邮箱密钥进行加密。亚马逊 WorkMail 向发送加密请求, AWS KMS 其中包含明文邮箱密钥和亚马逊组织的 CMK 标识符。 WorkMail

记录 Encrypt 操作的事件与以下示例事件类似。用户是 Amazon WorkMail 服务。这些参数包括 CMK ID (keyId) 和亚马逊 WorkMail 组织的加密上下文。Amazon WorkMail 还会传入邮箱密钥,但该密钥不会记录在 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-a123b4c5de678fg9h0ij1k2lm234no56" }, "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

当您添加、查看或删除邮箱消息时,Amazon WorkMail 会要求 AWS KMS 解密邮箱密钥。亚马逊 WorkMail 向发送解密请求,其中包含加密 AWS KMS 的邮箱密钥和亚马逊组织的 CMK 标识符。 WorkMail

记录 Decrypt 操作的事件与以下示例事件类似。用户是 Amazon WorkMail 服务。这些参数包括未记录在日志中的加密邮箱密钥(作为密文 blob)和 Amazon 组织的加密上下文。 WorkMail AWS KMS 从密文中获取 CMK 的 ID。

{ "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-a123b4c5de678fg9h0ij1k2lm234no56" } }, "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" }