本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
无法连接到 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
-
选择自己的个人资料名称(右上角)。选择 “管理” QuickSight,然后选择 “安全和权限”。
-
在 “QuickSight 访问权限” 下 AWS 服务,选择 “添加” 或 “删除”。
-
在列表中找到 Athena。清除 Athena 旁边的方框,然后再次选中以启用 Athena。
然后选择 Connect both (连接两者)。
-
选择您要从 Amazon QuickSight 访问的存储桶。
您在此处访问的 S3 存储桶的设置与您通过从列表中选择 Amazon S3 访问的 AWS 服务设置相同。请注意,避免无意中禁用其他人使用的存储桶。
-
选择完成确认自己的选择。您也可以选择取消,不保存就退出。
-
选择 “更新” 以保存您的新设置以供亚马逊 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 的 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 网址中包含该 AWS 区域 代码。例如,使用 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 查询结果位置的权限
-
从 https://console.aws.amazon.com/athena/
打开 Athena 控制台。 -
确认您已选择想要使用的工作组:
检查顶部的工作组选项。它的格式为 “工作组:
group-name
”。如果组名称是您想要使用的名称,请跳到下一步。要选择不同的工作组,请选择顶部的工作组。选择想要使用的工作组,然后选择切换工作组。
-
选择右上角的设置。
(不常见)如果出现未找到工作组的错误,请按照以下步骤进行修复:
-
暂时忽略错误消息,改为在 “设置” 页面
group-name
上找到 Workgroup:。工作组的名称是一个超链接。打开该链接。 -
在 Workgroup:
<groupname>
页面上,选择左边的编辑工作组。现在请关闭错误消息。 -
在查询结果位置附近,通过选择带有文件夹图标的选择按钮打开 S3 位置选择器。
-
选择 Athena 的 S3 位置名称末尾的小箭头。名称必须以
aws-athena-query-results
开头。 -
(可选)通过选中加密存储在 S3 中的结果复选框来加密查询结果。
-
选择保存以确认您的选择。
-
如果错误没有再次出现,请返回设置。
有时,错误可能会再次出现。如果出现,请按以下步骤操作:
-
选择工作组,然后选择查看详细信息。
-
(可选)要保留您的设置,请记下工作组配置或对其截屏。
选择 Create workgroup (创建工作组)。
-
将该工作组替换为新工作组。配置正确的 S3 位置和加密选项。记下 S3 位置以供稍后使用。
-
选择保存以继续。
-
如果不再需要原始工作组,请将其禁用。务必仔细阅读出现的警告,因为警告会告知您禁用原始工作组会丢失的内容。
-
-
-
如果您在上一步中未通过问题排查获得此值,请选择右上角的设置,并获取显示为查询结果位置的 S3 位置值。
-
如果启用了加密查询结果,请检查使用的是 SSE-KMS 还是 CSE-KMS。记下密钥。
-
在打开 S3 控制台 https://console.aws.amazon.com/s3/
,打开正确的存储桶,然后选择权限选项卡。 -
通过查看存储桶策略来检查 IAM 用户是否具有访问权限。
如果您使用管理访问权限 ACLs,请确保通过查看访问控制列表来设置访问控制列表 (ACLs)。
-
如果您的数据集已加密(在工作组设置中选择 “加密查询结果”),请确保将 IAM 用户或角色添加为该密钥策略中的 AWS KMS 密钥用户。您可以通过 https://console.aws.amazon.com/km
s 访问 AWS KMS 设置。
授予对 Athena 使用的 S3 存储桶的访问权限
打开 Amazon S3 控制台,网址为 https://console.aws.amazon.com/s3/
。 -
在查询结果位置中选择 Athena 使用的 S3 存储桶。
-
在 Permissions (权限) 选项卡中,验证权限。
有关更多信息,请参阅 Supp AWS ort 文章当我运行 Athena 查询时,我收到 “访问被拒绝