授权连接到 Amazon Athena - Amazon QuickSight
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

授权连接到 Amazon Athena

如果您需要将 Amazon QuickSight 与 Amazon Athena 或 Amazon Athena 联合查询一起使用,则首先需要授权连接到 Athena 以及 Amazon Simple Storage Service(Amazon S3)中的相关存储桶。Amazon Athena 是一种交互式查询服务,方便使用标准 SQL 分析 Amazon S3 的数据。Athena 联合查询通过使用 Amazon Lambda 提供对更多类型数据的访问权限。通过从 QuickSight 连接到 Athena,您可以编写 SQL 查询,以便查询存储在关系数据来源、非关系数据来源、对象数据来源和自定义数据来源中的数据。有关更多信息,请参阅《Amazon Athena 用户指南》中的使用 Athena 联合查询

在设置从 QuickSight 对 Athena 进行的访问时,请查看以下注意事项:

  • Athena 将来自 QuickSight 的查询结果存储在存储桶中。默认情况下,此存储桶的名称类似于 aws-athena-query-results-AWSREGION-AWSACCOUNTID,例如 aws-athena-query-results-us-east-2-111111111111。因此,请务必确保 QuickSight 有权访问 Athena 当前正在使用的存储桶。

  • 如果数据文件是使用 Amazon KMS 密钥加密的,请为 Amazon QuickSight IAM 角色授予解密密钥的权限。执行该操作的最简单方法是使用 Amazon CLI。

    您可以在 Amazon CLI 中运行 KMS create-grant API 操作来执行此操作。

    aws kms create-grant --key-id <KMS_KEY_ARN> / --grantee-principal <QS_ROLE_ARN> --operations Decrypt

    Amazon QuickSight 角色的 Amazon 资源名称(ARN)采用 arn:aws:iam::<account id>:role/service-role/aws-quicksight-s3-consumers-role-v<version number> 格式,并且可以从 IAM 控制台中进行访问。要查找您的 KMS 密钥 ARN,请使用 S3 控制台。转到包含数据文件的存储桶,然后选择概述选项卡。密钥位于 KMS 密钥 ID 旁边。

  • 对于 Amazon Athena、Amazon S3 和 Athena Query Federation 连接,QuickSight 默认使用以下 IAM 角色:

    arn:aws:iam::AWS-ACCOUNT-ID:role/service-role/aws-quicksight-s3-consumers-role-v0

    如果不存在 aws-quicksight-s3-consumers-role-v0,则 QuickSight 会使用:

    arn:aws:iam::AWS-ACCOUNT-ID:role/service-role/aws-quicksight-service-role-v0
  • 如果您为用户分配了范围缩小策略,请验证这些策略是否包含 lambda:InvokeFunction 权限。如果没有此权限,您的用户将无法访问 Athena 联合查询。有关在 QuickSight 中为您的用户分配 IAM 策略的更多信息,请参阅 通过 IAM 设置对 Amazon 服务的精细访问权限。有关 lambda:InvokeFunction 权限的更多信息,请参阅《IAM 用户指南》中的 Amazon Lambda 的操作、资源和条件键

授权 QuickSight 以连接到 Athena 或 Athena 联合数据来源
  1. (可选)如果您将 Amazon Lake Formation 与 Athena 一同使用,则还需要启用 Lake Formation。有关更多信息,请参阅 通过 Amazon Lake Formation 授权连接

  2. 打开右上角的配置文件菜单,然后选择管理 QuickSight。您必须是 QuickSight 管理员才能执行此操作。如果您在配置文件菜单上看不到管理 QuickSight,则说明您没有足够的权限。

  3. 选择安全和权限添加或删除

  4. 选择 Amazon Athena 附近的方框,单击下一步

    如果它已经启用,则可能需要双击它。即使 Amazon Athena 已启用,也要执行此操作,这样您就可以查看设置了。在此过程结束且选择更新之前,不会保存任何更改。

  5. 启用您要访问的 S3 存储桶。

  6. (可选)要启用 Athena 联合查询,请选择要使用的 Lambda 函数。

    注意

    您只能在 QuickSight 的同一区域中查看 Athena 目录的 Lambda 函数。

  7. 确认您所做的更改,选择完成

    要取消,请选择取消

  8. 要保存对安全和权限的更改,选择更新

测试连接授权设置
  1. 在 QuickSight 起始页上,选择数据集新数据集

  2. 选择 Athena 卡。

  3. 按照屏幕上的提示,使用您需要连接的资源创建新的 Athena 数据来源。选择验证连接以测试连接。

  4. 如果连接有效,则表示您已成功配置了 Athena 或 Athena 联合查询连接。

    如果您没有足够的权限连接到 Athena 数据集或运行 Athena 查询,则会显示一条错误消息,引导您联系 QuickSight 管理员。此错误意味着需要重新检查您的连接授权设置以发现差异。

  5. 成功连接后,您或您的 QuickSight 作者可以创建数据来源连接并与其他 QuickSight 作者共享。然后,作者可以通过连接创建多个数据集,以在 QuickSight 控制面板中使用。

    有关 Athena 问题排查的更多信息,请参阅 在 Amazon QuickSight 中使用 Amazon Athena 时出现的连接问题