本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 EMR WAL 服务的客户 KMS 密钥进行静态加密
EMR 预写日志 (WAL) 为客户 KMS 密钥提供支持。 encryption-at-rest以下简要详细介绍了 Amazon EMR WAL 是如何与之集成的: AWS KMS
EMR 预写日志 (WAL) 在以下操作 AWS 期间与之交互:CreateWAL
、、、、、、、、、AppendEdit
ArchiveWALCheckPoint
CompleteWALFlush
DeleteWAL
GetCurrentWALTime
ReplayEdits
、TrimWAL
默认情况下,当调用先前列出的任何操作时,EMR WAL 会Decrypt
根据 KMS 密钥生成和违反 KMS 密钥。EMR_EC2_DefaultRole
GenerateDataKey
注意事项
在 EMR WAL 中使用 AWS KMS 基于基础的加密时,请考虑以下几点:
-
创建 EMR WAL 后,无法更改加密配置。
-
当您对自己的 KMS 密钥使用 KMS 加密时,该密钥必须与您的 Amazon EMR 集群位于同一区域。
-
您有责任维护所有必需的 IAM 权限,建议在 WAL 生命周期内不要撤销所需的权限。否则,它将导致意想不到的故障情况,例如无法删除 EMR WAL,因为关联的加密密钥不存在。
-
使用 AWS KMS 密钥会产生一定的费用。有关更多信息,请参阅AWS Key Management Service 定价
。
所需的 IAM 权限
要使用您的客户 KMS 密钥对静态的 EMR WAL 进行加密,您需要确保为 EMR WAL 客户端角色和 EMR WAL 服务主体设置了适当的权限。emrwal.amazonaws.com
EMR WAL 客户端角色的权限
以下是 EMR WAL 客户端角色所需的 IAM 策略:
{ "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 密钥策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
accountID
:role/EMR_EC2_DefaultRole
" ], "Service": [ "emrwal.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": [ "*" ] } ] }
如果您更改默认角色,则代码段中指定的角色可能会更改。
监控 Amazon EMR WAL 与之的互动 AWS KMS
亚马逊 EMR WAL 加密上下文
加密上下文是一组包含任意非机密数据的密钥值对。当您在加密数据的请求中包含加密上下文时,会以加密 AWS KMS 方式将加密上下文绑定到加密数据。要解密数据,您必须传入相同的加密上下文。
在对的请求GenerateDataKey和解密请求中, AWS KMS Amazon EMR WAL 使用具有一个标识 EMR WAL 名称的名称值对的加密上下文。
"encryptionContext": { "aws:emrwal:walname": "111222333444555-testworkspace-emrwalclustertest-emrwaltestwalname" }
您可以使用加密上下文在审计记录和日志(例如和 Amazon CloudWatch Logs)中识别这些加密操作,并作为策略和授权中的授权条件。 AWS CloudTrail