使用 EMR WAL 服务的客户 KMS 密钥进行静态加密 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 EMR WAL 服务的客户 KMS 密钥进行静态加密

EMR 预写日志 (WAL) 为客户 KMS 密钥提供支持。 encryption-at-rest以下简要详细介绍了 Amazon EMR WAL 是如何与之集成的: Amazon KMS

EMR 预写日志 (WAL) 在以下操作 Amazon 期间与之交互:CreateWAL、、、、、、、、AppendEditArchiveWALCheckPointCompleteWALFlushDeleteWALGetCurrentWALTimeReplayEditsTrimWAL默认情况下,当调用先前列出的任何操作时,EMR WAL 会Decrypt根据 KMS 密钥生成和违反 KMS 密钥。EMR_EC2_DefaultRole GenerateDataKey

注意事项

在 EMR WAL 中使用 Amazon KMS 基于基础的加密时,请考虑以下几点:

  • 创建 EMR WAL 后,无法更改加密配置。

  • 当您对自己的 KMS 密钥使用 KMS 加密时,该密钥必须与您的 Amazon EMR 集群位于同一区域。

  • 您有责任维护所有必需的 IAM 权限,建议在 WAL 生命周期内不要撤销所需的权限。否则,它将导致意想不到的故障情况,例如无法删除 EMR WAL,因为关联的加密密钥不存在。

  • 使用 Amazon KMS 密钥会产生一定的费用。有关更多信息,请参阅Amazon Key Management Service 定价

所需的 IAM 权限

要使用您的客户 KMS 密钥对静态的 EMR WAL 进行加密,您需要确保为 EMR WAL 客户端角色和 EMR WAL 服务主体设置了适当的权限。emrwal.amazonaws.com

EMR WAL 客户端角色的权限

以下是 EMR WAL 客户端角色所需的 IAM 策略:

JSON
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" } }

默认情况下,EMR 集群上的 EMR WAL 客户端将使用。EMR_EC2_DefaultRole如果您在 EMR 集群中为实例配置文件使用不同的角色,请确保每个角色都有相应的权限。

有关管理角色策略的更多信息,请参阅添加和删除 IAM 身份权限

KMS 密钥策略的权限

你需要在 KMS 策略中授予 EMR WAL 客户端角色和 EMR WAL Decrypt 服务和GenerateDataKey*权限。有关密钥策略管理的更多信息,请参阅 KMS 密钥策略

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/EMR_EC2_DefaultRole" ], "Service": [ "emrwal.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": [ "*" ] } ] }

如果您更改默认角色,则代码段中指定的角色可能会更改。

监控 Amazon EMR WAL 与之的互动 Amazon KMS

亚马逊 EMR WAL 加密上下文

加密上下文是一组包含任意非机密数据的密钥值对。当您在加密数据的请求中包含加密上下文时,会以加密 Amazon KMS 方式将加密上下文绑定到加密数据。要解密数据,您必须传入相同的加密上下文。

在对的请求GenerateDataKey解密请求中, Amazon KMS Amazon EMR WAL 使用具有一个标识 EMR WAL 名称的名称值对的加密上下文。

"encryptionContext": { "aws:emrwal:walname": "111222333444555-testworkspace-emrwalclustertest-emrwaltestwalname" }

您可以使用加密上下文在审计记录和日志(例如和 Amazon CloudWatch Logs)中识别这些加密操作,并作为策略和授权中的授权条件。 Amazon CloudTrail