为什么我在附加了实施 SSE-KMS 加密的策略的 S3 存储桶中看不到 Amazon EMR 集群日志?

1 分钟阅读
0

我的 Amazon EMR 集群日志未归档到我指定的 Amazon Simple Storage Service (Amazon S3) 存储桶中。S3 存储桶具有一个附加策略,该策略使用 AWS Key Management Service (SSE-KMS) 实施服务器端加密。日志写入失败,出现类似于以下内容的 403 错误: 2020-01-15 04:01:25,247 INFO logspusher-6: Failed to upload 126 logs: USE: /emr/instance-state/instance-state.log-2020-01-14-20-15.gz reason: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 8B99FE94D1678AAB)

简短描述

启用 Amazon EMR 集群的日志记录时,LogPusher 服务将集群日志归档到指定的 S3 存储桶中。LogPusher 使用 AES-256 加密而不是 SSE-KMS 写入日志。要将日志写入具有 SSE-KMS 加密策略的 S3 存储桶中,请使用 sync 命令手动上传文件。

注意:如果在运行 AWS CLI 命令时遇到错误,请确保您使用的是最新版本的 AWS CLI

解决方法

**注意:**使用 Amazon EMR 5.30.0 及更高版本(Amazon EMR 6.0.0 除外)时,您可以使用 AWS KMS 客户托管密钥加密存储在 Amazon S3 中的日志文件

1.    使用 SSH 连接到主节点

2.    查找您希望复制的日志文件。例如,步骤日志存储在主节点上的 /mnt/var/log/hadoop/steps 处。

3.    要将日志文件复制到 S3 存储桶中,请运行带有 --sse-kms-key-id 字段的 sync 命令。示例:

aws s3 sync /mnt/var/log/hadoop/steps/ s3://awsexamplebucket/elasticmapreduce/${cluster_id}/steps/ --sse aws:kms --sse-kms-key-id 17246c74-6ff4-4adb-86e5-76f7f1603f00

您可以使用 cron 作业自动化 sync 命令。要配置 cron 作业,请在您启动 Amazon EMR 集群时在所有节点上运行自定义引导操作


相关信息

使用 AWS Key Management Service 中存储的 AWS KMS 密钥进行服务器端加密以保护数据

当我使用 AWS KMS 在 Amazon S3 存储桶上启用默认加密时,新的或现有的对象会怎样?

AWS 官方
AWS 官方已更新 3 年前