本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
无法连接到 Amazon Athena
目标受众:Amazon QuickSight 管理员 |
要帮助排查与 Athena 连接的问题,请参阅本节内容。
如果无法连接到 Amazon Athena,您可能会在运行查询时遇到权限不足错误,显示权限未配置。要验证是否可以将 Amazon QuickSight 连接到 Athena,请检查以下设置:
Amazon QuickSight 内部的 AWS 资源权限
AWS Identity and Access Management (IAM) 策略
Amazon S3 位置
查询结果位置
AWS KMS 密钥政策(仅用于加密数据集)
有关详细信息,请参阅以下内容。有关排查 Athena 中其他问题的信息,请参阅 在 Amazon QuickSight 中使用 Amazon Athena 时出现的连接问题。
确保已授权 Amazon QuickSight 使用 Athena
目标受众:Amazon QuickSight 管理员 |
要确保自己已成功授权 Amazon QuickSight 使用 Athena,请按照以下过程操作。AWS 资源权限适用于所有 Amazon QuickSight 用户。
要执行此操作,您必须是 Amazon QuickSight 管理员。要检查自己是否有访问权限,请验证从右上角的个人资料中打开菜单时是否能看到管理 QuickSight 选项。
授权 Amazon QuickSight 访问 Athena
-
选择自己的个人资料名称(右上角)。选择 Manage QuickSight (管理 QuickSight),然后选择 Security & permissions (安全性和权限)。
-
在 QuickSight 访问 AWS 服务 的权限下,选择添加或删除。
-
在列表中找到 Athena。清除 Athena 旁边的方框,然后再次选中以启用 Athena。
然后选择 Connect both (连接两者)。
-
选择要从 Amazon QuickSight 访问的存储桶。
您在此处访问的 S3 存储桶的设置与您通过从 AWS 服务 列表中选择 Amazon S3 访问的设置相同。请注意,避免无意中禁用其他人使用的存储桶。
-
选择完成确认自己的选择。您也可以选择取消,不保存就退出。
-
选择更新保存对 Amazon QuickSight 访问 AWS 服务 的权限所作的新设置。您也可以选择取消,不进行任何更改就退出。
-
完成后,确保自己使用的是正确的 AWS 区域。
如果您必须在此过程的第一步中更改 AWS 区域,请将其更改回之前使用的 AWS 区域。
确保 IAM policy 授予了正确的权限
目标受众:系统管理员 |
您的 AWS Identity and Access Management (IAM) 策略必须为特定操作授予权限。您的 IAM 用户或角色必须能够读取和写入 Athena 用于查询的 S3 存储桶的输入和输出。
如果数据集已加密,则 IAM 用户在指定的 AWS KMS 密钥政策中需要成为密钥用户。
验证 IAM policy 是否有权对查询使用 S3 存储桶
-
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
找到所使用的 IAM 用户或角色。选择用户或角色名称以查看关联的策略。
-
验证策略是否具有正确的权限。选择您想要验证的策略,然后选择编辑策略。使用可视化编辑器,该编辑器在默认情况下打开。如果您改为打开 JSON 编辑器,请选择可视化编辑器选项卡。
-
在列表中选择 S3 条目以查看其内容。该策略需要授予列出、读取和写入权限。如果 S3 未在列表中,也没有正确的权限,您可以在此处它们。
有关适用于 Amazon QuickSight 的 IAM policy 的示例,请参阅 Amazon 的 IAM 政策示例 QuickSight。
确保 IAM 用户具有对您 S3 位置的读/写访问权限
目标受众:Amazon QuickSight 管理员 |
要从 Amazon QuickSight 访问 Athena 数据,请首先确保 Athena 及其 S3 位置在管理 QuickSight 屏幕中获得授权。有关更多信息,请参阅 确保已授权 Amazon QuickSight 使用 Athena。
接下来,验证相关的 IAM 权限。用于 Athena 连接的 IAM 用户需要具有对 S3 中结果所在的存储位置的读/写访问权限。首先验证 IAM 用户是否有允许访问 Athena 的附加策略,例如 AmazonAthenaFullAccess
。让 Athena 使用其需要的名称创建存储桶,然后将该存储桶添加到 QuickSight 可访问的存储桶列表中。如果您更改结果存储桶的默认位置 (aws-athena-query-results-*
),请确保 IAM 用户有权读取和写入新位置。
确认您未在 S3 URL 中包含 AWS 区域 代码。例如,使用 s3://awsexamplebucket/path
而不是 s3://us-east-1.amazonaws.com/awsexamplebucket/path
。使用错误的 S3 URL 会导致 Access Denied
错误。
此外,请验证存储桶策略和对象访问控制列表(ACL)是否允许 IAM 用户访问存储桶中的对象。如果 IAM 用户位于不同的 AWS 账户,请参阅《Amazon Athena 用户指南》中的跨账户存取。
如果数据集已加密,请验证 IAM 用户是否为指定 AWS KMS 密钥政策中的密钥用户。您可以通过 https://console.aws.amazon.com/kms
设置 Athena 查询结果位置的权限
-
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 -
确认您已选择想要使用的工作组:
检查顶部的工作组选项。其格式为工作组:
group-name
。如果组名称是您想要使用的名称,请跳到下一步。要选择不同的工作组,请选择顶部的工作组。选择想要使用的工作组,然后选择切换工作组。
-
选择右上角的设置。
(不常见)如果出现未找到工作组的错误,请按照以下步骤进行修复:
-
暂时忽略错误消息,转而从设置页面查找工作组:
group-name
。工作组的名称是一个超链接。打开该链接。 -
在工作组:
<groupname>
页面上,选择左侧的编辑工作组。现在请关闭错误消息。 -
在查询结果位置附近,通过选择带有文件夹图标的选择按钮打开 S3 位置选择器。
-
选择 Athena 的 S3 位置名称末尾的小箭头。名称必须以
aws-athena-query-results
开头。 -
(可选)通过选中加密存储在 S3 中的结果复选框来加密查询结果。
-
选择保存以确认您的选择。
-
如果错误没有再次出现,请返回设置。
有时,错误可能会再次出现。如果出现,请按以下步骤操作:
-
选择工作组,然后选择查看详细信息。
-
(可选)要保留您的设置,请记下工作组配置或对其截屏。
选择 Create workgroup (创建工作组)。
-
将该工作组替换为新工作组。配置正确的 S3 位置和加密选项。记下 S3 位置以供稍后使用。
-
选择保存以继续。
-
如果不再需要原始工作组,请将其禁用。务必仔细阅读出现的警告,因为警告会告知您禁用原始工作组会丢失的内容。
-
-
-
如果您在上一步中未通过问题排查获得此值,请选择右上角的设置,并获取显示为查询结果位置的 S3 位置值。
-
如果启用了加密查询结果,请检查使用的是 SSE-KMS 还是 CSE-KMS。记下密钥。
-
通过 https://console.aws.amazon.com/s3/
打开 S3 控制台,打开正确的存储桶,然后选择权限选项卡。 -
通过查看存储桶策略来检查 IAM 用户是否具有访问权限。
如果您使用 ACL 管理访问权限,请确保通过查看访问控制列表来设置访问控制列表(ACL)。
-
如果数据集已加密(在工作组设置中选中加密查询结果),请确保在该 AWS KMS 密钥政策中将 IAM 用户或角色添加为密钥用户。您可以通过 https://console.aws.amazon.com/kms
访问 AWS KMS 设置。
授予对 Athena 使用的 S3 存储桶的访问权限
通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/
。 -
在查询结果位置中选择 Athena 使用的 S3 存储桶。
-
在 Permissions (权限) 选项卡中,验证权限。
有关更多信息,请参阅 AWS Support 文章:我在运行 Athena 查询时,收到“Access Denied(拒绝访问)”错误