

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

# 无法连接到 Amazon Athena



|  | 
| --- |
|    目标受众：Amazon Quick 管理员  | 

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

如果无法连接到 Amazon Athena，您可能会在运行查询时遇到权限不足错误，显示权限未配置。要验证您是否可以将 Amazon Quick Sight 连接到 Athena，请检查以下设置：
+ Amazon Amazon Quick Sight 内部的资源权限
+ Amazon Identity and Access Management (IAM) 策略
+ Amazon S3 位置
+ 查询结果位置
+ Amazon KMS 密钥策略（仅适用于加密数据集）

有关详细信息，请参阅以下内容。有关排查 Athena 中其他问题的信息，请参阅 [将 Amazon Athena 与 Amazon Quick Sight 配合使用时出现连接问题](troubleshoot-athena.md)。

## 确保您已授权 Amazon Quick Sight 使用 Athena



|  | 
| --- |
|    目标受众：Amazon Quick 管理员  | 

使用以下步骤确保您成功授权 Amazon Quick Sight 使用 Athena。 Amazon 资源权限适用于所有 Amazon Quick Sight 用户。

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

**授权 Amazon Quick Sight 访问 Athena**

1. 选择自己的个人资料名称（右上角）。选择 “**管理 Quick Sight**”，然后向下滚动到 “**自定义权限**” 部分。

1. 选择**Amazon 资源**，然后选择**添加或删除**。

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

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

1. 选择您要从 Amazon Quick Sight 访问的存储桶。

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

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

   

1. 选择 “**更新**” 以保存您的新设置以供 Amazon Quick Sight 访问 Amazon Web Services 服务。您也可以选择**取消**，不进行任何更改就退出。

1. 完成后，请确保您使用的是正确 Amazon Web Services 区域 的。

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

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



|  | 
| --- |
|    目标受众：系统管理员  | 

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

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

**验证 IAM 策略是否有权对查询使用 S3 存储桶**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.amazonaws.cn/iam/) 打开 IAM 控制台。

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

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

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

有关与 Quick Sight 配合使用的 IAM 策略的示例，请参阅[Quick 的 IAM 策略示例](iam-policy-examples.md)。

## 确保 IAM 用户有权 read/write 访问您的 S3 位置



|  | 
| --- |
|    目标受众：Amazon Quick 管理员  | 

**要从 Quick Sight 访问 Athena 数据，请先确保 Athena 及其 S3 位置已在 “管理” 屏幕中获得授权。 QuickSight**有关更多信息，请参阅 [确保您已授权 Amazon Quick Sight 使用 Athena](#troubleshoot-connect-athena-authorizing)。

接下来，验证相关的 IAM 权限。您的 Athena 连接的 IAM 用户 read/write 需要访问结果在 S3 中的存储位置。首先验证 IAM 用户是否有[允许访问 Athena](https://docs.amazonaws.cn/athena/latest/ug/setting-up.html#attach-managed-policies-for-using-ate) 的附加策略，例如 `AmazonAthenaFullAccess`。让 Athena 使用所需的名称创建存储桶，然后将此存储桶添加到可以访问的存储桶列表中。QuickSight 如果您更改结果存储桶的默认位置 (`aws-athena-query-results-*`)，请确保 IAM 用户有权读取和写入新位置。

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

还要验证存储桶策略和对象访问控制列表 (ACLs) 是否[允许 IAM 用户访问存储桶中的对象](https://docs.amazonaws.cn/AmazonS3/latest/dev/s3-access-control.html)。如果 IAM 用户位于其他用户中 Amazon Web Services 账户，请参阅 A *mazon Athena 用户指南*中的[跨账户访问](https://docs.amazonaws.cn/athena/latest/ug/cross-account-permissions.html)。

如果数据集已加密，请验证 IAM 用户是否为指定密钥策略中的 Amazon KMS 密钥用户。你可以在 Amazon KMS 控制台的 [https://console.aws.amazon.com/km](https://console.amazonaws.cn/kms) s 中执行此操作。

**设置 Athena 查询结果位置的权限**

1. 从 [https://console.aws.amazon.com/athena/](https://console.amazonaws.cn/athena/home) 打开 Athena 控制台。

1. 确认您已选择想要使用的工作组：
   + 检查顶部的**工作组**选项。它的格式为**工作组:*group-name*.** 如果组名称是您想要使用的名称，请跳到下一步。
   + 要选择不同的工作组，请选择顶部的**工作组**。选择想要使用的工作组，然后选择**切换工作组**。

1. 选择右上角的**设置**。

   （不常见）如果出现未找到工作组的错误，请按照以下步骤进行修复：

   1.  暂时忽略错误消息，改为在 **“设置”** 页面*group-name*上找到 **Workgroup:**。工作组的名称是一个超链接。打开该链接。

   1. 在 **Workgroup: *<groupname>*** 页面上，选择左**边的编辑工作组**。现在请关闭错误消息。

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

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

   1. （可选）通过选中**加密存储在 S3 中的结果**复选框来加密查询结果。

   1. 选择**保存**以确认您的选择。

   1. 如果错误没有再次出现，请返回**设置**。

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

      1. 选择工作组，然后选择**查看详细信息**。

      1. （可选）要保留您的设置，请记下工作组配置或对其截屏。

      1. 选择 **Create workgroup (创建工作组)**。

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

      1. 选择**保存**以继续。

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

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

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

1. 在打开 S3 控制台 [https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)，打开正确的存储桶，然后选择**权限**选项卡。

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

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

1. 如果您的数据集已加**密（在工作组设置中选择 “加密查询结果**”），请确保将 IAM 用户或角色添加为该密钥策略中的 Amazon KMS 密钥用户。您可以通过 [https://console.aws.amazon.com/km](https://console.amazonaws.cn/kms) s 访问 Amazon KMS 设置。

**授予对 Athena 使用的 S3 存储桶的访问权限**

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.amazonaws.cn/s3/)。

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

1. 在 **Permissions** (权限) 选项卡中，验证权限。

有关更多信息，请参阅 Supp Amazon ort 文章[当我运行 Athena 查询时，我收到 “访问被拒绝](https://www.amazonaws.cn/premiumsupport/knowledge-center/access-denied-athena/)” 错误。