授权连接到 Amazon Athena - Amazon Quick Suite

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

授权连接到 Amazon Athena

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

在 Quick Suite 中设置对 Athena 的访问权限时,请查看以下注意事项:

  • Athena 将来自 Amazon Quick Sight 的查询结果存储在存储桶中。默认情况下,此存储桶的名称类似于 aws-athena-query-results-AWSREGION-AWSACCOUNTID,例如 aws-athena-query-results-us-east-2-111111111111。因此,请务必确保 Amazon Quick Sight 有权访问 Athena 目前正在使用的存储桶。

  • 如果您的数据文件使用 AWS KMS 密钥加密,请向 Amazon Quick Sight IAM 角色授予解密密钥的权限。执行该操作的最简单方法是使用 AWS CLI。

    您可以在中运行 KMS 创建授权 API 操作 AWS CLI 来执行此操作。

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

    Amazon Quick Suite 角色的亚马逊资源名称 (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 Suite 默认使用以下 IAM 角色:

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

    如果不存在,aws-quicksight-s3-consumers-role-v0则 Amazon Quick Suite 会使用:

    arn:aws:iam::AWS-ACCOUNT-ID:role/service-role/aws-quicksight-service-role-v0
  • 如果您为用户分配了范围缩小策略,请验证这些策略是否包含 lambda:InvokeFunction 权限。如果没有此权限,您的用户将无法访问 Athena 联合查询。有关在 Amazon Quick Suite 中为用户分配 IAM 策略的更多信息,请参阅通过 IAM 设置对 AWS 服务的精细访问权限。有关 lambda: InvokeFunction 权限的更多信息,请参阅 IAM 用户指南 AWS Lambda中的操作、资源和条件键

授权 Amazon Quick Suite 连接到 Athena 或 Athena 联合数据源
  1. (可选)如果您使用的是 Athena AWS Lake Formation ,则还需要启用 Lake Formation。有关更多信息,请参阅通过 AWS Lake Formation对连接进行授权

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

  3. 选择安全和权限添加或删除

  4. 选择 Amazon Athena 附近的方框,单击下一步

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

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

  6. (可选)要启用 Athena 联合查询,请选择要使用的 Lambda 函数。

    注意

    您只能在 Amazon Quick Suite 的同一区域中查看 Athena 目录的 Lambda 函数。

  7. 确认您所做的更改,选择完成

    要取消,请选择取消

  8. 要保存对安全和权限的更改,选择更新

测试连接授权设置
  1. 在 Amazon Quick Suite 起始页面上,选择数据集新数据集

  2. 选择 Athena 卡。

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

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

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

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

    有关 Athena 的疑难解答信息,请参阅将 Athena 与 Amazon Quick Suite 配合使用时的连接问题。

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

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

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

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

先决条件

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

重要

在完成以下先决条件时,请注意,您的 IAM 身份中心实例、Athena 工作组、Lake Formation 和 Amazon S3 访问授权必须全部部署在同一个区域。 AWS

  • 使用 IAM 身份中心配置您的 Quick Suite 账户。只有与 IAM Identity Center 集成的 Quick Suite 账户才支持可信身份传播。有关更多信息,请参阅 使用 IAM 身份中心配置您的 Amazon Quick Suite 账户

    注意

    要创建 Athena 数据源,您必须是使用 IAM 身份中心的 Quick Suite 账户中的 IAM 身份中心用户(作者)。

  • 启用了 IAM Identity Center 的 Athena 工作组。您使用的 Athena 工作组必须使用与 Quick Suite 账户相同的 IAM 身份中心实例。有关配置 Athena 工作组的更多信息,请参阅《Amazon Athena 用户指南》中的创建启用 IAM Identity Center 的 Athena 工作组

  • 使用 Amazon S3 访问权限管控来管理对 Athena 查询结果存储桶的访问。有关更多详细信息,请参阅《Amazon S3 用户指南》中的使用 Amazon S3 访问权限管控管理访问权限。如果您的查询结果是使用 AWS KMS 密钥加密的,那么 Amazon S3 访问权限授予 IAM 角色和 Athena 工作组角色都需要权限。 AWS KMS

  • 必须使用 Lake Formation 管理数据权限,Lake Formation 必须使用与 Quick Suite 和 Athena 工作组相同的 IAM 身份中心实例进行配置。有关配置信息,请参阅《AWS Lake Formation 开发人员指南》中的 Integrating IAM Identity Center

  • 数据湖管理员需要向 Lake Formation 中的 IAM Identity Center 用户和组授予权限。有关更多详细信息,请参阅《AWS Lake Formation 开发人员指南》中的 Granting permissions to users and groups

  • Quick Suite 管理员需要授权与 Athena 的连接。有关更多信息,请参阅 授权连接到 Amazon Athena。请注意,通过可信身份传播,您无需向 Quick Suite 角色授予 Amazon S3 存储桶权限或 AWS KMS 权限。您需要使对 Athena 中的工作组具有权限的用户和组与使用 Amazon S3 访问权限管控权限存储查询结果的 Amazon S3 存储桶保持同步,以便用户可以使用可信身份传播成功运行查询并在 Amazon S3 存储桶中检索查询结果。

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

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

如果您的 Quick Suite 账户已经在使用自定义 IAM 角色,则可以修改该角色。如果没有现有 IAM 角色,请按照《IAM 用户指南》中的为 IAM 用户创建角色中的说明创建一个。

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

必需的信任策略

有关更新 IAM 角色的信任策略的信息,请参阅更新角色信任策略

所需的 Athena 权限

有关更新 IAM 角色的信任策略的信息,请参阅更新角色的权限

注意

Resource 使用 * 通配符。我们建议您对其进行更新,使其仅包含您想在 Quick Suite 中使用的 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 Suite 账户配置为使用 IAM 角色

在上一步中配置 IAM 角色后,您必须配置您的 Quick Suite 账户才能使用该角色。有关如何执行该操作的信息,请参阅在快速套件中使用现有的 IAM 角色

使用更新身份传播配置 AWS CLI

要授权 Quick Suite 将最终用户身份传播到 Athena 工作组,请从中 AWS CLI运行以update-identity-propagation-config下 API,替换以下值:

  • us-west-2替换为您的 IAM 身份中心实例所在的 AWS 区域。

  • 111122223333 替换为您的 AWS 账户 ID。

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

在 Quick Suite 中创建 Athena 数据集

现在,在 Quick Suite 中创建一个 Athena 数据集,该数据集配置了要连接的启用 IAM 身份中心的 Athena 工作组。有关如何创建 Athena 数据集的信息,请参阅使用 Amazon Athena 数据创建数据集

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

以下列表包含在 Quick Suite 和 Athena 中使用可信身份传播时的一些重要注意事项。

  • 使用可信身份传播的 Quick Suite Athena 数据源已根据 IAM 身份中心最终用户和该用户可能属于的 IAM 身份中心群组进行评估 Lake Formation 权限。

  • 当使用采用可信身份传播的 Athena 数据来源时,建议在 Lake Formation 中完成任何微调的访问控制。但是,如果您选择使用Quick Suite的范围缩小策略功能,则将根据最终用户评估范围缩小策略。

  • 对于使用可信身份传播的数据来源和数据集,以下功能被禁用:SPICE 数据集、数据来源上的自定义 SQL、阈值警报、电子邮件报告、Q 主题、故事、场景、CSV、Excel 和 PDF 导出、异常检测。

  • 如果遇到高延迟或超时,这可能是由于 IAM Identity Center 组、Athena 数据库、表和 Lake Formation 规则数量较多造成的。建议尝试仅使用必要数量的资源。