带有加密 S3 数据的 AWS Quicksight Athena 导入错误

问题描述

我在 S3 中存储了一个加密数据湖,但未在 AWS Quicksight 中使用 Athena 正确导入。在尝试此导入之前,已启用 S3 的权限(以及此特定存储桶)。并且此数据导入由管理员执行,并拥有 AWS 账户的根凭证。 Quicksight 和 S3 存储桶位于同一区域 (NA-east-1)。

我还要注意的是,我可以从 AWS 账户成功使用 Athena 正确查询数据湖。

这是尝试使用 Athena 导入数据时发生的特定错误

Simba]AthenaJDBC 一个错误已从 AWS 抛出 雅典娜客户。 com.amazonaws.services.s3.model.AmazonS3Exception: 访问被拒绝(服务:Amazon S3;状态代码:403;错误代码: 拒绝访问;请求编号:71A7EB19AFD8F60D; S3 扩展请求 ID: YBWXhPd9674G+Hmmfggp+QavpmFNF/0GjB2ODy0oN9zGDlQKSLfjwfQ4cLTyvCwRxMfR0GfheyM=),S3 扩展请求 ID: YBWXhPd9674G+Hmmfggp+QavpmFNF/0GjB2ODy0oN9zGDlQKSLfjwfQ4cLTyvCwRxMfR0GfheyM= (小路: s3://data-storage-gamma-us-east-1/year=2020/month=12/day=21/DataSource-2-2020-12-21-05-45-56-9926f1e6-3569-4877- a798-ca10bfefa432) [执行 ID:e981d25b-148e-4d8e-881e-9d7ff0a461c5]

解决方法

我最终能够解决这个问题。根本原因是数据湖中的数据是使用 KMS 密钥加密的。 Quicksight 能够访问数据但不能解密它......因此导致上面列出的错误消息。解决方案是让 Quicksight 角色访问 KMS 密钥,以便它可以解密数据。

这可以通过 IAM 控制台完成。 Quicksight 的默认角色(应该已经存在于您的帐户中)是:

aws-quicksight-service-role-v0

向该角色添加允许其使用 KMS 密钥的策略。您还可以通过 IAM 控制台创建策略来执行此操作。