

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

# 授权连接到 Amazon Athena
Amazon Athena

如果您需要将 Amazon Quick Sight 与 Amazon Athena Amazon Athena 联合查询一起使用，则首先需要授权与 Athena 的连接以及亚马逊简单存储服务 (Amazon S3) Simple Service 中的关联存储桶。Amazon Athena 是一种交互式查询服务，方便使用标准 SQL 分析 Amazon S3 的数据。Athena Federated Query 可通过使用访问更多类型的数据。 Amazon Lambda使用 Quick 到 Athena 的连接，您可以编写 SQL 查询来查询存储在关系、非关系、对象和自定义数据源中的数据。有关更多信息，请参阅《Amazon Athena 用户指南》中的[使用 Athena 联合查询](https://docs.amazonaws.cn/athena/latest/ug/connect-to-a-data-source.html)。

在 Quick 中设置访问 Athena 的权限时，请查看以下注意事项：
+ Athena 将来自 Amazon Quick Sight 的查询结果存储在存储桶中。默认情况下，此存储桶的名称类似于 `aws-athena-query-results-AWSREGION-AWSACCOUNTID`，例如 `aws-athena-query-results-us-east-2-111111111111`。因此，请务必确保 Amazon Quick Sight 有权访问 Athena 目前正在使用的存储桶。
+ 如果您的数据文件使用 Amazon KMS 密钥加密，请向 Amazon Quick Sight IAM 角色授予解密密钥的权限。执行该操作的最简单方法是使用 Amazon CLI。

  您可以在中运行 KMS [创建授权](https://docs.amazonaws.cn/cli/latest/reference/kms/create-grant.html) API 操作 Amazon CLI 来执行此操作。

  ```
  aws kms create-grant --key-id <KMS_KEY_ARN> /
  --grantee-principal <QS_ROLE_ARN> --operations Decrypt
  ```

  Amazon Quick 角色的亚马逊资源名称 (ARN) 的格式为`arn:aws:iam::<account id>:role/service-role/aws-quicksight-s3-consumers-role-v<version number>`，可以从 IAM 控制台进行访问。要查找您的 KMS 密钥 ARN，请使用 S3 控制台。转到包含数据文件的存储桶，然后选择**概述**选项卡。密钥位于 **KMS 密钥 ID** 旁边。
+ 对于亚马逊 Athena、Amazon S3 和 Athena Query Federation 连接，Amazon Quick 默认使用以下 IAM 角色：

  ```
  arn:aws:iam::AWS-ACCOUNT-ID:role/service-role/aws-quicksight-s3-consumers-role-v0
  ```

  如果不存在`aws-quicksight-s3-consumers-role-v0`，那么 Amazon Quick 会使用：

  ```
  arn:aws:iam::AWS-ACCOUNT-ID:role/service-role/aws-quicksight-service-role-v0
  ```
+ 如果您为用户分配了范围缩小策略，请验证这些策略是否包含 `lambda:InvokeFunction` 权限。如果没有此权限，您的用户将无法访问 Athena 联合查询。有关在 Amazon Quick 中为您的用户分配 IAM 策略的更多信息，请参阅[通过 IAM 设置对 Amazon 服务的精细访问权限](https://docs.amazonaws.cn/quicksight/latest/user/scoping-policies-iam-interface.html)。有关 lambda: InvokeFunction 权限的更多信息，请参阅 *IAM 用户指南 Amazon Lambda*中的[操作、资源和条件键](https://docs.amazonaws.cn/IAM/latest/UserGuide/list_awslambda.html)。

**授权 Amazon Quick 连接到 Athena 或 Athena 联合数据源**

1. （可选）如果您使用的是 Athena Amazon Lake Formation ，则还需要启用 Lake Formation。有关更多信息，请参阅[通过 Amazon Lake Formation对连接进行授权](https://docs.amazonaws.cn/quicksight/latest/user/lake-formation.html)。

1. 打开右上角的个人资料菜单，然后选择**管理 QuickSight**。要执行此操作，您必须是 Amazon Quick 管理员。如果您在个人资料菜单 QuickSight上看不到**管理**，则说明您没有足够的权限。

1. 选择**安全和权限**、**添加或删除**。

1. 选择 Amazon Athena 附近的方框，单击**下一步**。

   如果它已经启用，则可能需要双击它。即使 Amazon Athena 已启用，也要执行此操作，这样您就可以查看设置了。在此过程结束且选择**更新**之前，不会保存任何更改。

1.  启用您要访问的 S3 存储桶。

1. （可选）要启用 Athena 联合查询，请选择要使用的 Lambda 函数。
**注意**  
你只能在 Amazon Quick 的同一区域中查看 Athena 目录的 Lambda 函数。

1. 确认您所做的更改，选择**完成**。

   要取消，请选择**取消**。

1. 要保存对安全和权限的更改，选择**更新**。

**测试连接授权设置**

1. 从 Amazon 快速入门页面中，选择**数据集**，**新数据集**。

1. 选择 Athena 卡。

1. 按照屏幕上的提示，使用您需要连接的资源创建新的 Athena 数据来源。选择**验证连接**以测试连接。

1. 如果连接有效，则表示您已成功配置了 Athena 或 Athena 联合查询连接。

   如果您没有足够的权限连接到 Athena 数据集或运行 Athena 查询，则会显示一条错误消息，指示您联系 Amazon Quick 管理员。此错误意味着需要重新检查您的连接授权设置以找出差异。

1. 成功连接后，您或您的 Amazon Quick 作者可以创建数据源连接并与其他 Amazon Quick 作者共享这些连接。然后，作者可以从连接中创建多个数据集，以在 Amazon Quick 控制面板中使用。

   有关 Athena 的疑难解答信息，[请参阅将 Athena 与 Amazon Quick 配合使用时的连接问题。](https://docs.amazonaws.cn/quicksight/latest/user/troubleshoot-athena.html)

## 将可信身份传播与 Athena 结合使用


可信身份传播允许 Amazon 服务根据用户的身份上下文访问 Amazon 资源，并安全地与其他 Amazon 服务共享该用户的身份。这些功能让用户可以更轻松地定义、授予和记录访问权限。

当管理员配置 Quick、Athena、Amazon S3 访问权限授予 Amazon Lake Formation 以及 IAM Identity Center 时，他们现在可以在这些服务之间启用可信身份传播，并允许在服务之间传播用户的身份。当 IAM Identity Center 用户通过 Quick 访问数据时，Athena 或 Lake Formation 可以使用组织的身份提供商为其用户或群组成员资格定义的权限来做出授权决定。

仅当通过 Lake Formation 管理权限时，使用 Athena 进行可信身份传播才有效。用户对数据的权限位于 Lake Formation 中。

### 先决条件


在开始之前，请确保您已完成以下必需的先决条件。

**重要**  
在完成以下先决条件时，请注意，您的 IAM 身份中心实例、Athena 工作组、Lake Formation 和 Amazon S3 访问授权必须全部部署在同一个区域。 Amazon 
+ 使用 IAM 身份中心配置您的快速账户。只有与 IAM Identity Center 集成的快速账户才支持可信身份传播。有关更多信息，请参阅 [使用 IAM 身份中心配置您的 Amazon Quick 账户](setting-up-sso.md#sec-identity-management-identity-center)。
**注意**  
要创建 Athena 数据源，您必须是使用 IAM 身份中心的快速账户中的 IAM 身份中心用户（作者）。
+ 启用了 IAM Identity Center 的 Athena 工作组。您使用的 Athena 工作组必须使用与 Quick 账户相同的 IAM 身份中心实例。有关配置 Athena 工作组的更多信息，请参阅《Amazon Athena 用户指南》**中的[创建启用 IAM Identity Center 的 Athena 工作组](https://docs.amazonaws.cn/athena/latest/ug/workgroups-identity-center.html#workgroups-identity-center-creating-an-identity-center-enabled-athena-workgroup)。
+ 使用 Amazon S3 访问权限管控来管理对 Athena 查询结果存储桶的访问。有关更多详细信息，请参阅《Amazon S3 用户指南》**中的[使用 Amazon S3 访问权限管控管理访问权限](https://docs.amazonaws.cn/AmazonS3/latest/userguide/access-grants.html)。如果您的查询结果是使用 Amazon KMS 密钥加密的，那么 Amazon S3 访问权限授予 IAM 角色和 Athena 工作组角色都需要权限。 Amazon KMS
  + 有关更多信息，请参阅《Amazon S3 用户指南》中的 [Amazon S3 访问权限管控和公司目录身份](https://docs.amazonaws.cn/AmazonS3/latest/userguide/access-grants.html)。
  + Amazon S3 访问权限管控角色应在其身份传播信任策略中具有 `STS:SetContext` 操作。要查看示例，请参阅《Amazon S3 用户指南》中的[注册位置](https://docs.amazonaws.cn/AmazonS3/latest/userguide/access-grants-location-register.html)。
+ 必须使用 Lake Formation 管理数据权限，Lake Formation 必须使用与 Quick 和 Athena 工作组相同的 IAM 身份中心实例进行配置。有关配置信息，请参阅*《Amazon Lake Formation 开发人员指南》*中的 [Integrating IAM Identity Center](https://docs.amazonaws.cn/lake-formation/latest/dg/identity-center-integration.html)。
+ 数据湖管理员需要向 Lake Formation 中的 IAM Identity Center 用户和组授予权限。有关更多详细信息，请参阅《Amazon Lake Formation 开发人员指南》**中的 [Granting permissions to users and groups](https://docs.amazonaws.cn/lake-formation/latest/dg/grant-permissions-sso.html)。
+ Quick 管理员需要授权与 Athena 的连接。有关更多信息，请参阅 [授权连接到 Amazon Athena](#athena)。请注意，通过可信身份传播，您无需向 Quick 角色授予 Amazon S3 存储桶权限或 Amazon KMS 权限。您需要使对 Athena 中的工作组具有权限的用户和组与使用 Amazon S3 访问权限管控权限存储查询结果的 Amazon S3 存储桶保持同步，以便用户可以使用可信身份传播成功运行查询并在 Amazon S3 存储桶中检索查询结果。

### 配置具有所需权限的 IAM 角色


要在 Athena 中使用可信身份传播，您的 Quick 账户必须具有访问您的资源所需的权限。要提供这些权限，您必须将您的 Quick 账户配置为使用具有这些权限的 IAM 角色。

如果您的 Quick 账户已经在使用自定义 IAM 角色，则可以修改该角色。如果没有现有 IAM 角色，请按照《IAM 用户指南》**中的[为 IAM 用户创建角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_create_for-user.html)中的说明创建一个。

您创建或修改的 IAM 角色必须包含以下信任策略和权限。

#### 必需的信任策略


有关更新 IAM 角色的信任策略的信息，请参阅[更新角色信任策略](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html)。

#### 所需的 Athena 权限


有关更新 IAM 角色的信任策略的信息，请参阅[更新角色的权限](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_update-role-permissions.html)。

**注意**  
`Resource` 使用 `*` 通配符。我们建议您对其进行更新，使其仅包含您想在 Quick 中使用的 Athena 资源。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "athena:BatchGetQueryExecution",
                "athena:CancelQueryExecution",
                "athena:GetCatalogs",
                "athena:GetExecutionEngine",
                "athena:GetExecutionEngines",
                "athena:GetNamespace",
                "athena:GetNamespaces",
                "athena:GetQueryExecution",
                "athena:GetQueryExecutions",
                "athena:GetQueryResults",
                "athena:GetQueryResultsStream",
                "athena:GetTable",
                "athena:GetTables",
                "athena:ListQueryExecutions",
                "athena:RunQuery",
                "athena:StartQueryExecution",
                "athena:StopQueryExecution",
                "athena:ListWorkGroups",
                "athena:ListEngineVersions",
                "athena:GetWorkGroup",
                "athena:GetDataCatalog",
                "athena:GetDatabase",
                "athena:GetTableMetadata",
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 将您的 Quick 账户配置为使用 IAM 角色


在上一步中配置 IAM 角色后，您必须配置您的 Quick 账户才能使用该角色。有关如何执行该操作的信息，请参阅[在 Quick 中使用现有的 IAM 角色](security-create-iam-role.md#security-create-iam-role-use)。

### 使用更新身份传播配置 Amazon CLI


要授权 Quick 将最终用户身份传播到 Athena 工作组，请从中 Amazon CLI运行以`update-identity-propagation-config`下 API，替换以下值：
+ *us-west-2*替换为您的 IAM 身份中心实例所在的 Amazon 区域。
+ 将 *111122223333* 替换为您的 Amazon 账户 ID。

```
aws quicksight update-identity-propagation-config \
--service ATHENA \
--region us-west-2 \
--aws-account-id 111122223333
```

### 在 Quick 中创建 Athena 数据集


现在，在 Quick 中创建 Athena 数据集，并配置您要连接的启用 IAM 身份中心的 Athena 工作组。有关如何创建 Athena 数据集的信息，请参阅[使用 Amazon Athena 数据创建数据集](create-a-data-set-athena.md)。

### 关键标注、注意事项和限制


以下列表包含在 Quick 和 Athena 中使用可信身份传播时的一些重要注意事项。
+ 使用可信身份传播的 Quick Athena 数据源已根据 IAM 身份中心最终用户和该用户可能属于的 IAM 身份中心群组进行评估 Lake Formation 权限。
+ 当使用采用可信身份传播的 Athena 数据来源时，建议在 Lake Formation 中完成任何微调的访问控制。但是，如果您选择使用 Quick 的范围缩小策略功能，则将根据最终用户评估范围缩小策略。
+ 对于使用可信身份传播的数据来源和数据集，以下功能被禁用：SPICE 数据集、数据来源上的自定义 SQL、阈值警报、电子邮件报告、Q 主题、故事、场景、CSV、Excel 和 PDF 导出、异常检测。
+ 如果遇到高延迟或超时，这可能是由于 IAM Identity Center 组、Athena 数据库、表和 Lake Formation 规则数量较多造成的。建议尝试仅使用必要数量的资源。