本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon 的数据保护 WorkMail
分 AWS 担责任模式
出于数据保护目的,我们建议您保护 AWS 账户 凭据并使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 设置个人用户。这样,每个用户只获得履行其工作职责所需的权限。我们还建议您通过以下方式保护数据:
-
对每个账户使用多重身份验证 (MFA)。
-
使用SSL/TLS与 AWS 资源通信。我们需要 TLS 1.2,建议使用 TLS 1.3。
-
使用API进行设置和用户活动记录 AWS CloudTrail。有关使用 CloudTrail 跟踪捕获 AWS 活动的信息,请参阅AWS CloudTrail 用户指南中的使用跟 CloudTrail 踪。
-
使用 AWS 加密解决方案以及其中的所有默认安全控件 AWS 服务。
-
使用高级托管安全服务(例如 Amazon Macie),它有助于发现和保护存储在 Amazon S3 中的敏感数据。
-
如果您在 AWS 通过命令行界面或访问时需要 FIPS 140-3 经过验证的加密模块API,请使用端点。FIPS有关可用FIPS端点的更多信息,请参阅联邦信息处理标准 (FIPS) 140-3
。
我们强烈建议您切勿将机密信息或敏感信息(如您客户的电子邮件地址)放入标签或自由格式文本字段(如名称字段)。这包括您 AWS 服务 使用控制台、API、 WorkMail AWS CLI或与 Amazon 或其他人合作的情况 AWS SDKs。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您URL向外部服务器提供,我们强烈建议您不要在中包含凭据信息,URL以验证您对该服务器的请求。
亚马逊如何 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 未加密状态。下图显示了加密邮件、加密邮件密钥、加密邮箱密钥和中CMK组织的关系 AWS KMS。
CMK为组织设置
创建 Amazon WorkMail 组织时,您可以选择为该组织选择 AWS KMS 客户主密钥 (CMK)。这样CMK可以保护该组织中的所有邮箱密钥。
您可以选择默认CMK的 Amazon AWS 托管 WorkMail,也可以选择自己拥有和管理CMK的现有客户托管。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的客户主密钥 (CMKs)。您可以CMK为每个组织选择相同CMK或不同的组织,但是CMK一旦选择就无法更改。
重要
Amazon 仅 WorkMail 支持对称CMKs。你不能使用非对称CMK的。要帮助确定CMK是对称还是非对称,请参阅《开发人员指南》CMKs中的识别对称和非对称。AWS Key Management Service
要查找贵组织CMK的,请使用记录呼叫的 AWS CloudTrail 日志条目 AWS KMS。
每个邮箱的唯一加密密钥
当您创建邮箱时,Amazon WorkMail 会为其外部的邮箱生成一个唯一的 256 位高级加密标准
为了保护邮箱密钥,Amazon WorkMail 要求 AWS KMS 对组织下的邮箱密钥进行加密。CMK然后,它将加密的邮箱密钥存储在邮箱元数据中。
注意
Amazon WorkMail 使用对称邮箱加密密钥来保护消息密钥。以前,Amazon 使用非对称密钥对 WorkMail保护每个邮箱。它使用公有密钥加密每个消息密钥,并使用私有密钥解密该密钥。该组织的私人邮箱密钥受CMK到了保护。较旧的邮箱可能使用非对称邮箱密钥对。此更改不会影响邮箱或其消息的安全。
加密每封邮件
当用户向邮箱添加邮件时,Amazon WorkMail 会为邮箱之外的邮件生成唯一的 256 位AES对称加密密钥。 AWS KMS它使用这个消息密钥对消息进行加密。Amazon WorkMail 对邮箱密钥下的消息密钥进行加密,并将加密的消息密钥与邮件一起存储。然后,它会加密组织下方的CMK邮箱密钥。
创建新邮箱
Amazon WorkMail 创建邮箱时,会使用以下过程来准备用于存放加密邮件的邮箱。
-
Amazon 为外部的邮箱 WorkMail 生成唯一的 256 位AES对称加密密钥。AWS KMS
-
亚马逊 WorkMail 称之为 “ AWS KMS 加密” 操作。它传入组织的邮箱密钥和客户主密钥的标识符 (CMK)。 AWS KMS 返回在. 下加密的邮箱密钥的密文。CMK
-
Amazon 将加密的邮箱密钥与邮箱元数据一起 WorkMail 存储。
加密邮箱消息
要对消息进行加密,Amazon WorkMail 使用以下流程。
-
Amazon 为消息 WorkMail 生成一个唯一的 256 位AES对称密钥。它使用纯文本消息密钥和高级加密标准 (AES) 算法对外部的消息进行加密。 AWS KMS
-
为了保护邮箱密钥下的消息密钥,Amazon WorkMail 需要解密邮箱密钥,该密钥始终以加密形式存储。
Amazon WorkMail 调用 “ AWS KMS 解密” 操作并传入加密的邮箱密钥。 AWS KMS 使用组织解CMK密邮箱密钥,并将纯文本邮箱密钥返回给 Amazon。 WorkMail
-
Amazon WorkMail 使用纯文本邮箱密钥和高级加密标准 (AES) 算法对外部的邮件密钥进行加密。 AWS KMS
-
Amazon 将加密消息密钥 WorkMail 存储在加密消息的元数据中,以便可以对其进行解密。
解密邮箱消息
要解密消息,Amazon WorkMail 使用以下流程。
-
Amazon WorkMail 调用 “ AWS KMS 解密” 操作并传入加密的邮箱密钥。 AWS KMS 使用组织解CMK密邮箱密钥,并将纯文本邮箱密钥返回给 Amazon。 WorkMail
-
Amazon WorkMail 使用纯文本邮箱密钥和高级加密标准 (AES) 算法来解密外部的加密邮件密钥。 AWS KMS
-
Amazon WorkMail 使用明文消息密钥来解密加密的消息。
缓存邮箱密钥
为了提高性能并最大限度地减少对的呼叫 AWS KMS,Amazon 在本地 WorkMail 缓存每个客户端的每个纯文本邮箱密钥最多一分钟。在缓存期结束时,将删除邮箱密钥。如果在缓存期间需要该客户端的邮箱密钥,Amazon WorkMail 可以从缓存中获取该密钥,而不必调用 AWS KMS。邮箱密钥在缓存中受保护,并且永远不会以明文形式写入磁盘中。
授权使用 CMK
当 Amazon 在加密操作中 WorkMail 使用客户主密钥 (CMK) 时,它代表邮箱管理员行事。
要代表您使用 AWS KMS 客户主密钥 (CMK) 获取密钥,管理员必须具有以下权限。您可以在 IAM 策略或密钥策略中指定这些所需的权限。
-
kms:Encrypt
-
kms:Decrypt
-
kms:CreateGrant
要允许仅用于来自亚马逊的请求 WorkMail,您可以将 kms: ViaService 条件键与workmail.
值一起使用。CMK<region>
.amazonaws.com
您也可以使用加密上下文中的密钥或值作为使用加密操作CMK的条件。例如,可在 IAM 或密钥策略文档中使用字符串条件运算符,或在授权中使用授权约束。
AWS托管的密钥策略 CMK
只有当亚马逊 WorkMail 代表用户提出请求时,Amazon AWS 托管CMKCMK的密钥策略才允许用户使用 WorkMail 它进行指定操作。密钥策略不允许任何用户CMK直接使用。
此密钥策略与所有 AWS 托管密钥的策略类似,均由该服务来建立。您无法更改密钥策略,但可以随时查看。有关详细信息,请参阅《AWS Key Management Service 开发人员指南》中的查看密钥策略。
密钥策略中的策略语句具有以下影响:
-
允许账户和地区的用户使用CMK进行加密操作和创建授权,但前提是亚马逊 WorkMail 代表他们发出请求。
kms:ViaService
条件密钥可强制实施此限制。 -
允许该 AWS 账户创建允许用户查看CMK属性和撤消授权的IAM策略。
以下是针对 Amazon AWS 托管的示例CMK的关键策略 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" : "*" } ] }
使用赠款来授权 Amazon WorkMail
除了关键策略外,Amazon 还 WorkMail 使用授予来CMK为每个组织添加权限。要查看您账户CMK中的授权,请使用ListGrants操作。
Amazon WorkMail 使用授权CMK为该组织添加以下权限。
-
添加
kms:Encrypt
允许 Amazon WorkMail 加密邮箱密钥的权限。 -
添加
kms:Decrypt
允许 Amazon WorkMail 使用解密邮箱密钥的权限。CMKAmazon 在授权中 WorkMail 需要此权限,因为阅读邮箱消息的请求使用的是正在阅读邮件的用户的安全上下文。该请求不使用该 AWS 账户的证书。当您 WorkMail 为该组织选择一项CMK时,Amazon 就会创建此补助金。
为了创建授权,Amaz CreateGranton 代表创建该组织的用户致 WorkMail 电。用于创建授权的权限来自密钥策略。该政策允许账户用户CreateGrant
在 Amazon 代表授权用户 WorkMail 提出请求时致电该组织。CMK
密钥策略还允许账户 root 撤销对 AWS 托管密钥的授权。但是,如果您撤销授权,Amazon 将 WorkMail 无法解密您邮箱中的加密数据。
Amazon WorkMail 加密环境
加密上下文是一组包含任意非机密数据的键值对。当您在加密数据的请求中包含加密上下文时,会以加密 AWS KMS 方式将加密上下文绑定到加密数据。要解密数据,您必须传入相同的加密上下文。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的加密内容。
Amazon 在所有加密操作中 WorkMail 使用相同的 AWS KMS 加密上下文格式。您可以使用加密上下文在审计记录和日志中标识加密操作(例如 AWS CloudTrail),并将加密上下文用作在策略和授权中进行授权的条件。
在对的加密和解密请求中,A AWS KMS mazon WorkMail 使用加密环境,其中密钥为aws:workmail:arn
,值为组织的亚马逊资源名称 (ARN)。
"aws:workmail:arn":"arn:aws:workmail:region
:account ID
:organization/organization-ID
"
例如,以下加密上下文包括欧洲(爱尔兰)(eu-west-1
) 地区的示例组织ARN。
"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 服务。参数包括亚马逊 WorkMail 组织的 CMK ID (keyId
) 和加密上下文。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" }