无法连接到 Amazon Athena - Amazon QuickSight

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

无法连接到 Amazon Athena

   目标受众:Amazon QuickSight 管理员 

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

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

  • AWS Amazon 内部的资源权限 QuickSight

  • AWS Identity and Access Management (IAM) 政策

  • Amazon S3 位置

  • 查询结果位置

  • AWS KMS 密钥策略(仅适用于加密数据集)

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

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

   目标受众:Amazon QuickSight 管理员 

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

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

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

  2. 在 “QuickSight 访问权限” 下 AWS 服务,选择 “添加” 或 “删除”。

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

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

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

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

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

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

  7. 完成后,请确保您使用的是正确 AWS 区域 的。

    如果您必须在此过程的第一步中进行更改,请将其更改回之前 AWS 区域 使用的版本。 AWS 区域

确保您的IAM策略授予了正确的权限

   目标受众:系统管理员 

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

如果数据集已加密,则IAM用户必须是指定密钥策略中的 AWS KMS 密钥用户。

验证您的IAM策略是否有权使用 S3 存储桶进行查询
  1. 从 IAM 打开 https://console.aws.amazon.com/iam/ 控制台。

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

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

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

有关适用于 Amazon 的IAM政策示例 QuickSight,请参阅IAMAmazon 的政策示例 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 中包含该 AWS 区域 代码URL。例如,使用 s3://awsexamplebucket/path 而不是 s3://us-east-1.amazonaws.com/awsexamplebucket/path。使用错误的 S3 URL 会导致Access Denied错误。

还要验证存储桶策略和对象访问控制列表 (ACLs) 是否允许IAM用户访问存储桶中的对象。如果IAM用户处于其他位置 AWS 账户,请参阅 A mazon Athena 用户指南中的跨账户访问权限

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

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

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

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

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

  3. 选择右上角的设置

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

    1. 暂时忽略错误消息,改为找到 Workgroup: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. 在打开 S3 控制台 https://console.aws.amazon.com/s3/,打开正确的存储桶,然后选择权限选项卡。

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

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

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

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

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

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

有关更多信息,请参阅 Supp AWS ort 文章当我运行 Athena 查询时,我收到 “访问被拒绝” 错误。