选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用托管存储对 EKS 日志上的 Amazon EMR 进行加密

聚焦模式
使用托管存储对 EKS 日志上的 Amazon EMR 进行加密 - Amazon EMR

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

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

以下各节介绍如何为日志配置加密。

启用加密

要使用您自己的 KMS 密钥加密托管存储中的日志,请在提交作业运行时使用以下配置。

"monitoringConfiguration": { "managedLogs": { "allowAWSToRetainLogs":"ENABLED", "encryptionKeyArn":"KMS key arn" }, "persistentAppUI": "ENABLED" }

allowAWSToRetainLogs配置 AWS 允许在使用 Native FGAC 运行作业时保留系统命名空间日志。该persistentAppUI配置 AWS 允许保存用于生成 Spark UI 的事件日志。encryptionKeyArn用于指定您要使用的 KMS 密钥 ARN 来加密存储的日志。 AWS

日志加密所需的权限

必须允许提交作业或查看 Spark UI 的用户使用加密密钥执行操作kms:DescribeKeykms:GenerateDataKey、和kms:Decrypt。这些权限用于验证密钥的有效性,并检查用户是否具有读取和写入使用 KMS 密钥加密的日志的必要权限。如果提交任务的用户缺少必要的密钥权限,则 EKS 上的 Amazon EMR 会拒绝提交任务运行。

用于调用的角色的 IAM 策略示例 StartJobRun

{ "Version": "2012-10-17", "Statement": [ { "Action": "emr-containers:StartJobRun", "Resource": "*", "Effect": "Allow" }, { "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "KMS key ARN", "Effect": "Allow" } ] }

您还必须配置 KMS 密钥以允许persistentappui.elasticmapreduce.amazonaws.com.rproxy.goskope.comelasticmapreduce.amazonaws.com服务主体使用kms:GenerateDataKeykms:Decrypt。这允许 EMR 读取使用 KMS 密钥加密的日志并将其写入托管存储。

KMS 密钥策略示例

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.region.amazonaws.com" } } }, { "Effect": "Allow", "Principal": { "AWS": "IAM role ARN used to call StartJobRun" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:viaService": "emr-containers.region.amazonaws.com", "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id" } } }, { "Effect": "Allow", "Principal": { "Service": [ "persistentappui.elasticmapreduce.amazonaws.com", "elasticmapreduce.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:emr-containers:virtualClusterId": "virtual cluster id", "aws:SourceArn": "virtual cluster ARN" } } } ] }

作为安全最佳实践,我们建议您添加kms:viaServicekms:EncryptionContext、和aws:SourceArn条件。这些条件有助于确保密钥仅由 EKS 上的 Amazon EMR 使用,并且仅用于在特定虚拟集群中运行的任务生成的日志。

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。