我想创建具有 Amazon Elastic Block Store (Amazon EBS) 加密功能的 EMR 集群。或者,我想使用 AWS Key Management Service (AWS KMS) 密钥来加密附加到 EMR 集群上的 EBS 卷。
简短描述
Amazon EBS 加密与 AWS KMS 集成,可提供加密密钥来保护您的数据。在 Amazon EMR 版本 5.24.0 及更高版本中,您可以启用 Amazon EBS 加密。Amazon EBS 加密选项可对 Amazon EBS 根设备卷和附加存储卷进行加密。有关更多信息,请参阅本地磁盘加密。
要加密 EMR 集群上的 EBS 卷,请在账户级别默认启用 EBS 卷的加密功能。或者,创建 KMS 密钥和 Amazon EMR 安全配置,以便为特定 EMR 集群加密 EBS 卷。
解决方法
在账户级别默认启用 EBS 卷的加密功能
有关更多信息,请参阅默认启用 Amazon EBS 加密。
创建 AWS KMS 密钥和 Amazon EMR 安全配置,以便为特定 EMR 集群加密 EBS 卷
创建 KMS 密钥
要创建新的 KMS 密钥,请完成以下步骤:
- 打开 AWS KMS 控制台。
- 在导航窗格中,选择 Customer managed keys(客户管理型密钥)。
- 选择 Create key(创建密钥)。
- 对于 Key type(密钥类型),选择 Symmetric(对称)。
- 对于 Key usage(密钥使用),选择 Encrypt and decrypt(加密和解密)。
- 选择 Next(下一步)。
- 对于 Alias(别名),输入密钥的别名。
- 选择 Next(下一步)。
- 对于 Key administrator(密钥管理员),选择密钥管理员。
- 选择 Next(下一步)。
- 选择 Amazon EMR 服务角色。默认角色是 EMR_DefaultRole。
- 选择 Amazon Elastic Compute Cloud (Amazon EC2) 实例配置文件角色。实例配置文件的默认角色是 EMR_EC2_DefaultRole。
- 选择 Next(下一步)。
- 选择 Finish(完成)。
如果您使用自定义 Amazon EMR 服务角色,请在预置 EMR 集群之前向该角色添加以下策略。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey",
"kms:CreateGrant",
"kms:ListGrants"
],
"Resource": [
"arn:aws:kms:region:account-id:key/########-####-####-####-############"
]
}
]
}
创建和配置 Amazon EMR 安全配置
完成以下步骤:
- 打开 Amazon EMR 控制台。
- 在导航窗格中的 EMR on EC2(EC2 上的 EMR)下,选择 Security configurations(安全配置)。
- 选择 Create(创建)。
- 输入您的 Security configuration name(安全配置名称),然后选择 Choose custom settings(选择自定义设置)。
- 在 Encryption(加密)下,选择 Turn on at-rest encryption for local disk(开启本地磁盘静态加密)。
- 对于 Encryption mode(加密模式),选择 AWS KMS。
- 对于 Choose your AWS KMS key(选择您的 AWS KMS 密钥),选择您的 KMS 密钥的密钥 ARN。
- 在 EBS Volumes Encryption(EBS 卷加密)下,选择 Encrypt EBS volumes with EBS encryption(使用 EBS 加密为 EBS 卷加密)。
- 选择 Next(下一步),然后选择 Create(创建)。
使用安全配置来预置 EMR 集群
如果您使用 Amazon EMR 控制台创建 EMR 集群,则在 **Security configuration(安全配置)**中选择您在上述部分中创建的安全配置。
当您通过其他方法创建 EMR 集群时,请使用刚才创建的配置来指定安全配置。