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

重要:我们已经重新设计了 Amazon QuickSight 分析工作空间。您可能会遇到无法反映 QuickSight 控制台新外观的屏幕截图或程序化文本。我们正在更新屏幕截图和过程文本。

要查找特征或项目,请使用快速搜索栏

有关新外观 QuickSight的更多信息,请参阅在 Amazon 上引入全新的分析体验 QuickSight

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

无法连接到 Amazon Athena

   目标受众:Amazon QuickSight 管理员 

要帮助排查与 Athena 连接的问题,请参阅本节内容。

如果无法连接到 Amazon Athena,您可能会在运行查询时遇到权限不足错误,显示权限未配置。要验证您是否可以将亚马逊连接 QuickSight 到 Athena,请检查以下设置:

  • AmazonAmazon 内部的资源权限 QuickSight

  • Amazon Identity and Access Management (IAM) 策略

  • Amazon S3 位置

  • 查询结果位置

  • Amazon KMS 密钥政策(仅用于加密数据集)

有关详细信息,请参阅以下内容。有关排查 Athena 中其他问题的信息,请参阅 在亚马逊上使用亚马逊 Athena 时出现连接问题 QuickSight

请确保您已授权亚马逊 QuickSight 使用 Athena

   目标受众:Amazon QuickSight 管理员 

使用以下步骤确保您成功授权亚马逊使用 A QuickSight thena。Amazon资源权限适用于所有 Amazon QuickSight 用户。

要执行此操作,您必须是 Amazon QuickSight 管理员。要检查您是否有访问权限,请确认您在右上角的个人资料中打开菜单时看到了 “管理” QuickSight 选项。

授权亚马逊 QuickSight 访问 Athena
  1. 选择自己的个人资料名称(右上角)。选择 “管理” QuickSight,然后选择 “安全和权限”

  2. 在 “QuickSight 访问权限” 下Amazon Web Services,选择 “添加” 或 “删除”。

  3. 在列表中找到 Athena。清除 Athena 旁边的方框,然后再次选中以启用 Athena。

    然后选择 Connect both (连接两者)

  4. 选择您要从 Amazon QuickSight 访问的存储桶。

    您在此处访问的 S3 存储桶的设置与您通过从 Amazon Web Services 列表中选择 Amazon S3 访问的设置相同。请注意,避免无意中禁用其他人使用的存储桶。

  5. 选择完成确认自己的选择。您也可以选择取消,不保存就退出。

  6. 选择 “更新” 以保存您的新设置以供亚马逊 QuickSight 访问Amazon Web Services。您也可以选择取消,不进行任何更改就退出。

  7. 完成后,确保自己使用的是正确的 Amazon Web Services 区域。

    如果您必须在此过程的第一步中更改 Amazon Web Services 区域,请将其更改回之前使用的 Amazon Web Services 区域。

确保 IAM policy 授予了正确的权限

   目标受众:系统管理员 

您的 Amazon Identity and Access Management (IAM) 策略必须为特定操作授予权限。您的 IAM 用户或角色必须能够读取和写入 Athena 用于查询的 S3 存储桶的输入和输出。

如果数据集已加密,则 IAM 用户在指定的 Amazon KMS 密钥政策中需要成为密钥用户。

验证 IAM policy 是否有权对查询使用 S3 存储桶
  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 找到所使用的 IAM 用户或角色。选择用户或角色名称以查看关联的策略。

  3. 验证策略是否具有正确的权限。选择您想要验证的策略,然后选择编辑策略。使用可视化编辑器,该编辑器在默认情况下打开。如果您改为打开 JSON 编辑器,请选择可视化编辑器选项卡。

  4. 在列表中选择 S3 条目以查看其内容。该策略需要授予列出、读取和写入权限。如果 S3 未在列表中,也没有正确的权限,您可以在此处它们。

有关适用于 Amazon 的 IAM 策略的示例 QuickSight,请参阅Amazon 的 IAM 政策示例 QuickSight

确保 IAM 用户具有对您 S3 位置的读/写访问权限

   目标受众:Amazon QuickSight 管理员 

要访问来自 QuickSight亚马逊的 Athena 数据,请先确保 Athena 及其 S3 位置已在 “管理” 屏幕中获得授权。 QuickSight有关更多信息,请参阅 请确保您已授权亚马逊 QuickSight 使用 Athena

接下来,验证相关的 IAM 权限。用于 Athena 连接的 IAM 用户需要具有对 S3 中结果所在的存储位置的读/写访问权限。首先验证 IAM 用户是否有允许访问 Athena 的附加策略,例如 AmazonAthenaFullAccess。让 Athena 使用所需的名称创建存储桶,然后将此存储桶添加到可以访问的存储桶列表中。QuickSight 如果您更改结果存储桶的默认位置 (aws-athena-query-results-*),请确保 IAM 用户有权读取和写入新位置。

确认您未在 S3 URL 中包含 Amazon Web Services 区域 代码。例如,使用 s3://awsexamplebucket/path 而不是 s3://us-east-1.amazonaws.com/awsexamplebucket/path。使用错误的 S3 URL 会导致 Access Denied 错误。

此外,请验证存储桶策略和对象访问控制列表(ACL)是否允许 IAM 用户访问存储桶中的对象。如果 IAM 用户位于不同的 Amazon Web Services 账户,请参阅《Amazon Athena 用户指南》中的跨账户存取

如果数据集已加密,请验证 IAM 用户是否为指定 Amazon KMS 密钥政策中的密钥用户。您可以通过 https://console.aws.amazon.com/kms 在 Amazon KMS 控制台中执行此操作。

设置 Athena 查询结果位置的权限
  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

  2. 确认您已选择想要使用的工作组:

    • 检查顶部的工作组选项。其格式为工作组:group-name。如果组名称是您想要使用的名称,请跳到下一步。

    • 要选择不同的工作组,请选择顶部的工作组。选择想要使用的工作组,然后选择切换工作组

  3. 选择右上角的设置

    (不常见)如果出现未找到工作组的错误,请按照以下步骤进行修复:

    1. 暂时忽略错误消息,转而从设置页面查找工作组:group-name。工作组的名称是一个超链接。打开该链接。

    2. 工作组:<groupname> 页面上,选择左侧的编辑工作组。现在请关闭错误消息。

    3. 查询结果位置附近,通过选择带有文件夹图标的选择按钮打开 S3 位置选择器。

    4. 选择 Athena 的 S3 位置名称末尾的小箭头。名称必须以 aws-athena-query-results 开头。

    5. (可选)通过选中加密存储在 S3 中的结果复选框来加密查询结果。

    6. 选择保存以确认您的选择。

    7. 如果错误没有再次出现,请返回设置

      有时,错误可能会再次出现。如果出现,请按以下步骤操作:

      1. 选择工作组,然后选择查看详细信息

      2. (可选)要保留您的设置,请记下工作组配置或对其截屏。

      3. 选择 Create workgroup (创建工作组)

      4. 将该工作组替换为新工作组。配置正确的 S3 位置和加密选项。记下 S3 位置以供稍后使用。

      5. 选择保存以继续。

      6. 如果不再需要原始工作组,请将其禁用。务必仔细阅读出现的警告,因为警告会告知您禁用原始工作组会丢失的内容。

  4. 如果您在上一步中未通过问题排查获得此值,请选择右上角的设置,并获取显示为查询结果位置的 S3 位置值。

  5. 如果启用了加密查询结果,请检查使用的是 SSE-KMS 还是 CSE-KMS。记下密钥。

  6. 通过 https://console.aws.amazon.com/s3/ 打开 S3 控制台,打开正确的存储桶,然后选择权限选项卡。

  7. 通过查看存储桶策略来检查 IAM 用户是否具有访问权限。

    如果您使用 ACL 管理访问权限,请确保通过查看访问控制列表来设置访问控制列表(ACL)。

  8. 如果数据集已加密(在工作组设置中选中加密查询结果),请确保在该 Amazon KMS 密钥政策中将 IAM 用户或角色添加为密钥用户。您可以通过 https://console.aws.amazon.com/kms 访问 Amazon KMS 设置。

授予对 Athena 使用的 S3 存储桶的访问权限
  1. 打开 Amazon S3 控制台,网址为:https://console.aws.amazon.com/s3/

  2. 查询结果位置中选择 Athena 使用的 S3 存储桶。

  3. Permissions (权限) 选项卡中,验证权限。

有关更多信息,请参阅 Amazon Support 文章:我在运行 Athena 查询时,收到“Access Denied(拒绝访问)”错误