本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
加密日志
使用托管存储加密 EMR Serverless 日志
要使用您自己的 KMS 密钥加密托管存储中的日志,请在提交作业运行时使用 managedPersistenceMonitoringConfiguration 配置。
{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration" : { "encryptionKeyArn": "key-arn" } } }
使用 Amazon S3 存储桶加密 EMR Serverless 日志
要使用您自己的 KMS 密钥加密 Amazon S3 存储桶中的日志,请在提交作业运行时使用 s3MonitoringConfiguration 配置。
{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/", "encryptionKeyArn": "key-arn" } } }
使用 Amazon 加密 EMR 无服务器日志 CloudWatch
要使用您自己的 KMS 密钥加密 Amazon CloudWatch 中的日志,请在提交任务运行时使用该cloudWatchLoggingConfiguration配置。
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, "encryptionKeyArn": "key-arn" } } }
日志加密所需的权限
所需的用户权限
提交作业、查看日志或应用程序的用户 UIs 必须具有使用密钥的权限。您可以在 KMS 密钥政策或 IAM 策略中为用户、组或角色指定权限。如果提交作业的用户没有 KMS 密钥权限,EMR Serverless 会拒绝提交作业运行。
示例密钥政策
以下密钥政策提供了对 kms:GenerateDataKey 和 kms:Decrypt 的权限:
{ "Effect": "Allow", "Principal":{ "AWS": "arn:aws:iam::111122223333:user/user-name" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }
示例 IAM policy
以下 IAM 策略提供了对 kms:GenerateDataKey 和 kms:Decrypt 的权限:
要启动 Spark 或 Tez 用户界面,请按如下方式向您的用户、群组或角色授予访问该 emr-serverless:GetDashboardForJobRun API 的权限:
Amazon S3 和托管存储的加密密钥权限
在托管存储或 S3 存储桶中使用自己的加密密钥加密日志时,请按如下方式配置 KMS 密钥权限。
在 KMS 密钥政策中,emr-serverless.amazonaws.com 主体必须具有以下权限:
{ "Effect": "Allow", "Principal":{ "Service": "emr-serverless.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:emr-serverless:region:aws-account-id:/applications/application-id" } } }
作为最佳安全实践,我们建议您在 KMS 密钥策略中添加aws:SourceArn条件密钥。IAM 全局条件键 aws:SourceArn 可确保 EMR Serverless 仅将 KMS 密钥用于应用程序 ARN。
作业运行时角色必须在其 IAM 策略中具有以下权限:
Amazon 的加密密钥权限 CloudWatch
要将 KMS 密钥 ARN 关联到日志组,请对作业运行时角色使用以下 IAM 策略。
配置 KMS 密钥策略以向 Amazon 授予 KMS 权限 CloudWatch: