加密日志
使用托管存储加密 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 CloudWatch 加密 EMR Serverless 日志
要使用您自己的 KMS 密钥加密 Amazon CloudWatch 中的日志,请在提交作业运行时使用 cloudWatchLoggingConfiguration
配置。
{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, "encryptionKeyArn": "key-arn" } } }
日志加密所需的权限
所需的用户权限
提交作业、查看日志或应用程序 UI 的用户必须具有使用密钥的权限。您可以在 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
的权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "
key-arn
" } }
要启动 Spark 或 Tez UI,您必须授予用户、组或角色访问 emr-serverless:GetDashboardForJobRun
API 的权限,如下所示:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "emr-serverless:GetDashboardForJobRun" ] } }
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 策略中具有以下权限:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "
key-arn
" } }
Amazon CloudWatch 的加密密钥权限
要将 KMS 密钥 ARN 关联到日志组,请对作业运行时角色使用以下 IAM 策略。
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "logs:AssociateKmsKey" ], "Resource": [ "arn:aws:logs:
AWS 区域
:111122223333
:log-group:my-log-group-name
:*" ] } }
配置 KMS 密钥政策以向 Amazon CloudWatch 授予 KMS 权限:
{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.
AWS 区域
.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:AWS 区域
:111122223333
:*" } } } }