管理工作组 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

管理工作组

https://console.aws.amazon.com/athena/,您可以执行以下任务:

语句 描述
创建工作组

创建新的工作组

编辑工作组 编辑工作组并更改其设置。您不能更改工作组的名称,但您可以创建一个具有相同设置但名称不同的新工作组。
查看工作组详细信息 查看工作组的详细信息,例如其名称、描述、数据使用限制、查询结果位置、预期查询结果存储桶拥有者、加密,以及对写入查询结果存储桶的对象的控制权。如果 Override client-side settings (覆盖客户端设置) 已被选中,您还可以验证该工作组是否已强制实施其设置。
删除工作组

删除工作组。如果您删除某个工作组,则查询历史记录、已保存查询、工作组设置和查询数据限制控制都将被删除。工作组范围的数据限制控制会保留在 CloudWatch 中,您可以单独删除它们。

不能删除主工作组。

切换工作组

在您有权访问的工作组之间切换。

在工作组之间复制已保存的查询 在工作组之间复制已保存的查询。例如,如果您在预览工作组中创建了查询,并且希望在非预览工作组中使用该查询,则可能需要执行此操作。
启用和禁用工作组

启用或禁用工作组。当工作组处于禁用状态,其用户无法运行查询或创建新的命名查询。如果您有权访问它,您仍然可以查看指标、数据使用限制控制、工作组设置,查询历史记录和已保存查询。

指定从中运行查询的工作组

您必须为 Athena 指定要使用的工作组,然后才能运行查询。您必须具有工作组的权限。

创建使用 IAM Identity Center 身份验证的 Athena 工作组 要在 Athena 中使用 IAM Identity Center 身份,必须创建一个启用了 IAM Identity Center 的工作组。创建工作组后,您可以使用 IAM Identity Center 控制台或 API 将 IAM Identity Center 用户或组分配给工作组。

创建工作组

创建工作组需要具有执行 CreateWorkgroup API 操作的权限。请参阅对工作组和标签的访问 用于访问工作组的 IAM policy。如果要添加标签,您还需要添加对 TagResource 的权限。请参阅 工作组的标签策略示例

在控制台中创建工作组
  1. 如果控制台导航窗格不可见,请选择左侧的扩展菜单。

    选择扩展菜单。
  2. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  3. Workgroups(工作组)页面中,选择 Create workgroup(创建工作组)。

  4. Create workgroup(创建工作组)页面中,如下所示填写各字段:

    字段 描述
    Workgroup name (工作组名称) 必需。为工作组输入唯一的名称。使用 1 到 128 个字符。(A-Z、a-z、0-9、_、-、.)。此名称不能更改。
    描述 可选。为工作组输入描述。最多可包含 1024 个字符。
    Choose the type of engine(选择引擎类型)

    如需对 Amazon S3 中的数据运行临时 SQL 查询,或者使用预构建的数据来源连接器对 Amazon S3 外部的各种数据来源运行联合查询,请选择 Athena SQL。您可以使用 Athena 查询编辑器、Amazon CLIAthena API 运行查询。

    如需使用 Python 和 Apache Spark 创建、编辑和运行 Jupyter notebook 应用程序,请选择 Apache Spark。Jupyter notebook 包含单元格列表,其中可以包括代码、文本、Markdown、数学运算、绘图和富媒体。在 Athena 的交互式笔记本会话中,单元格按计算顺序运行。有关创建和配置启用 Spark 的工作组的信息,请参阅 在 Athena 中创建启用 Spark 的工作组

    创建工作组后,您可以升级其分析引擎(例如,从 Athena 引擎版本 2 升级到 Athena 引擎版本 3),但无法更改其引擎类型。例如,无法将 Athena 引擎版本 3 工作组更改为 PySpark 引擎版本 3 工作组。

    更新查询引擎 选择您希望在发布新的 Athena 引擎版本时更新工作组的方式。您可以让 Athena 决定何时更新您的工作组或手动选择引擎版本。有关更多信息,请参阅 Athena 引擎版本控制
    身份验证模式 选择 Amazon Identity and Access Management(IAM),以对工作组使用 IAM 身份验证或联合身份验证。如果要支持员工身份(例如来自 Microsoft Active Directory 等 SAML 2.0 身份提供商的用户和组),请选择 IAM Identity Center。有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的 Trusted identity propagation across applications
    IAM Identity Center 访问权限的服务角色 Athena 需要 IAM 权限才能代表您访问 IAM Identity Center。有关 IAM 服务角色的更多信息,请参阅《IAM 用户指南》中的创建向 Amazon 服务委派权限的角色
    Location of query result(CTAS 查询结果位置)

    可选。输入指向 Amazon S3 存储桶或前缀的路径。此存储桶和前缀必须首先存在,然后才能指定它们。

    注意

    如果您在控制台中运行查询,则是否指定查询结果位置是可选的。如果您没有为工作组或者在Settings (设置) 中指定它,Athena 会使用默认的查询结果位置。如果您使用 API 或驱动程序运行查询,则必须 至少在这两个位置中的一个位置中指定查询结果位置:使用 OutputLocation 为单独查询指定,或使用 WorkGroupConfiguration 为工作组指定。

    预期存储桶拥有者 可选。输入您希望其成为输出位置存储桶拥有者的 Amazon Web Services 账户 ID。这是附加安全措施。如果存储桶拥有者的账户 ID 与您在此处指定的 ID 不匹配,则输出到存储桶的尝试将失败。有关更多信息,请参阅《Amazon S3 用户指南》中的使用存储桶拥有者条件验证存储桶所有权
    注意

    预期存储桶拥有者设置仅适用于您为 Athena 查询结果指定的 Amazon S3 输出位置。其不适用于其他 Amazon S3 位置,例如外部 Amazon S3 存储桶中的数据源位置、CTASINSERT INTO 目标表位置、UNLOAD 语句输出位置、为联合查询溢出存储桶的操作,或针对另一个账户中的表运行的 SELECT 查询。

    Assign bucket owner full control over query results(为存储桶拥有者分配对查询结果的完全控制权)

    在默认情况下,该字段未被选中。如果您选择了此选项并且为查询结果位置存储桶启用了 ACL,您将向存储桶拥有者授予对查询结果的完全控制权。例如,假设您的查询结果位置属于其他账户所有,则可以使用此选项将所有权以及对查询结果的完全控制权授予该其他账户。

    如果存储桶的 S3 Object Ownership(S3 对象所有权)设置为 Bucket owner preferred(存储桶拥有者优先),则存储桶拥有者还拥有从此工作组写入的所有查询结果对象。例如,假设某个外部账户的工作组启用了此选项并将其查询结果位置设置为您账户的 Amazon S3 存储桶,并且该存储桶的 S3 Object Ownership(S3 对象所有权)设置为 Bucket owner preferred(存储桶拥有者优先),则您将拥有并完全控制该外部工作组的查询结果的访问权限。

    如果查询结果存储桶的 S3 Object Ownership(S3 对象所有权)设置为 Bucket owner enforced(存储桶拥有者强制),则选择此选项将不具有效力。有关更多信息,请参阅《Amazon S3 用户指南》中的 对象所有权设置

    Encrypt query results (加密查询结果)

    可选。加密结果存储在 Amazon S3 中。如果选中,则工作组中的所有查询都会加密。

    如果已选中,您可以选择 Encryption type (加密类型)Encryption key (加密密钥) 并输入 KMS Key ARN (KMS 密钥 ARN)

    如果您没有密钥,请打开 Amazon KMS 控制台以创建它。有关更多信息,请参阅 Amazon Key Management Service 开发人员指南中的创建密钥

    encryption_type 设置为最低加密

    可选。选择此选项可对工作组的所有用户强制对查询结果进行最低限度的加密。选择此选项可显示一个包含加密类型层次结构的表。该表还显示当您将特定加密类型指定为最低加密类型时,允许工作组用户使用哪些加密类型。要使用此选项,请勿选择覆盖客户端设置

    有关更多信息,请参阅 为工作组配置最低加密

    启用 S3 Access Grants 当您选择 IAM Identity Center 作为身份验证模式时,会默认选择此字段。选中后,此选项会将基于 IAM Identity Center 用户或组的权限应用于 Amazon S3 位置。
    创建基于用户身份的 S3 前缀 选择此选项后,Athena 会在存储查询结果时创建 Amazon S3 前缀。前缀基于用户的 IAM Identity Center 用户身份。
    Publish query metrics to CloudWatch(将查询指标发布到 CloudWatch) 在默认情况下,该字段会被选中。将查询指标发布到 CloudWatch。请参阅 使用 CloudWatch 指标监控 Athena 查询
    Override client-side settings (覆盖客户端设置) 在默认情况下,该字段未被选中。如果选择该字段,工作组设置会应用于工作组中的所有查询并覆盖客户端设置。有关更多信息,请参阅 工作组设置覆盖客户端设置
    Requester Pays S3 buckets (申请方付款 S3 存储桶)

    可选。如果工作组用户将对存储在配置为“申请方付款”的 Amazon S3 存储桶中的数据运行查询,请选择 Turn on queries on requester pays buckets in Amazon S3(在 Amazon S3 中启用对申请方付款存储桶的查询)。运行查询的用户的账户需要针对适用的数据访问支付费用,并支付和查询有关的数据传输费用。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的 申请方付款存储桶

    Per query data usage control(管理每个查询的数据使用控制) 可选。设置查询允许扫描的最大数据量限制。只能为工作组的每个查询设置一个限制。该限制适用于工作组中的所有查询,如果查询超过限制,则将取消查询。有关更多信息,请参阅 设置数据使用控制限制
    Workgroup data usage alerts(工作组数据使用提示) 可选。当在此工作组中运行的查询在特定时间段内扫描指定数量的数据时,请设置多个提示阈值。提示使用 Amazon CloudWatch 发出告警,并适用于工作组中的所有查询。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的使用 Amazon CloudWatch 告警
    标签 可选。将一个或多个标记添加到工作组。标记是指您为 Athena 工作组资源分配的标签。其中包含一个键和一个值。使用 Amazon 标记最佳实践 创建一组一致的标签,并将工作组按用途、所有者或环境分类。您还可以在 IAM policy 中使用标记,以及用于控制账单成本。请勿为同一工作组使用重复的标签键。有关更多信息,请参阅 为 Athena 资源添加标签
  5. 选择 Create workgroup (创建工作组)。工作组显示在 Workgroups (工作组)页面上的列表中。

您也可以使用 CreateWorkGroup API 操作创建工作组。

重要

在创建工作组后,创建将允许您运行工作组相关操作的 用于访问工作组的 IAM policy IAM。

编辑工作组

编辑工作组需要具有执行 UpdateWorkgroup API 操作的权限。请参阅对工作组和标签的访问 用于访问工作组的 IAM policy。如果要添加或编辑标记,您还需要具有对 TagResource 的权限。请参阅 工作组的标签策略示例

在控制台中编辑工作组
  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择要编辑的工作组的按钮。

  3. 选择 Actions(操作)和 Edit(编辑)。

  4. 根据需要更改字段。有关字段的列表,请参阅创建工作组。您可以更改除工作组名称以外的所有字段。如果您需要更改名称,请创建具有新名称和相同设置的另一工作组。

  5. 选择 Save changes(保存更改)。已更新的工作组显示在 Workgroups (工作组)页面上的列表中。

查看工作组详细信息

您可以查看每个工作组的详细信息。这些详细信息包括工作组名称、描述、启用还是禁用以及用于在该工作组中运行的查询的设置,其中包括查询结果位置、预期存储桶拥有者、加密,以及对写入查询结果存储桶的对象的控制权。如果工作组具有数据使用限制,也会显示出来。

查看工作组详细信息
  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择要查看的工作组的链接。显示工作组的 Overview Details(概览详细信息)页面。

删除工作组

如果您具有相应权限,则可以删除工作组。不能删除主工作组。

如果您有权限,则可以随时删除空工作组。您也可以删除包含已保存查询的工作组。在这种情况下,Athena 会警告您保存的查询将被删除,然后再继续删除工作组。

如果您删除正在其中的工作组,控制台会将焦点切换到主工作组。如果您有权访问它,可以运行查询并查看其设置。

如果您删除某个工作组,其设置和查询数据限制控制都将被删除。工作组范围的数据限制控制保留在 CloudWatch 中,您可以在需要时从中删除它们。

重要

在删除工作组之前,确保其用户同时属于其他工作组,从而可以从中继续运行查询。如果用户的 IAM policy 允许他们允许该工作组中的查询,而您删除了它,则他们将不再具有运行查询的权限。有关更多信息,请参阅 Example policy for running queries in the primary workgroup

在控制台中删除工作组
  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择要删除的工作组的按钮。

  3. 依次选择操作删除

  4. Delete workgroup(删除工作组)确认提示处,输入工作组名称,然后选择 Delete(删除)。

要使用 API 操作删除工作组,请使用 DeleteWorkGroup 操作。

切换工作组

如果您具有两个工作组的权限,则可以从一个工作组切换到另一个工作组。

在每个工作组中,您可以打开最多十个查询选项卡。当您在工作组之间切换时,最多可将三个工作组中的查询选项卡保持打开。

切换工作组
  1. 在 Athena 控制台中,使用右上角的 Workgroup(工作组)选项来选择工作组。

  2. 如果出现 Workgroup workgroup-name settings(工作组 workgroup-name 设置)对话框,请选择 Acknowledge(确认)。

Workgroup(工作组)选项将显示已切换到的工作组名称。现在,您可以运行该工作组中的查询。

在工作组之间复制已保存的查询

目前,Athena 控制台没有将保存的查询从一个工作组直接复制到另一个工作组的选项,但您可以使用以下过程手动执行相同的任务。

要在工作组之间复制保存的查询
  1. 在 Athena 控制台中,从您想复制查询的工作组中,选择 Saved queries(保存的查询)选项卡。

  2. 选择要复制的已保存查询的链接。Athena 会在查询编辑器中打开查询。

  3. 在查询编辑器中,选择查询文本,然后按 Ctrl+C 以复制查询。

  4. 切换到目标工作组,或创建工作组,然后切换到该工作组。

  5. 在查询编辑器中打开一个新选项卡,然后按 Ctrl+V 将文本粘贴到新选项卡中。

  6. 在查询编辑器中,选择 Save as(另存为)将查询保存到目标工作组中。

  7. Choose a name(选择一个名称)对话框中,输入查询名称和可选说明。

  8. 选择保存

启用和禁用工作组

如果您拥有相应的权限,您可以在控制台中、使用 API 操作或者使用 JDBC 和 ODBC 驱动程序启用或禁用工作组。

启用或禁用工作组
  1. 在 Athena 控制台导航窗格中,选择 Workgroups(工作组)。

  2. Workgroups(工作组)页面上,选择工作组的链接。

  3. 在右上角,选择 Enable workgroup(启用工作组)或 Disable workgroup(禁用工作组)。

  4. 在确认提示处,选择 Enable(启用)或 Disable(禁用)。如果您禁用一个工作组,其用户无法运行其中的查询或创建新的命名查询。如果您启用一个工作组,用户可以使用它来运行查询。

指定从中运行查询的工作组

若要指定要使用的工作组,您必须具有该工作组的权限。

指定要使用的工作组
  1. 确保您的权限允许您在要使用的工作组中运行查询。有关更多信息,请参阅 用于访问工作组的 IAM policy

  2. 若要指定工作组,请使用以下选项之一:

    • 如果您正在使用 Athena 控制台,请通过切换工作组设置工作组。

    • 如果您正在使用 Athena API 操作,请在 API 操作中指定工作组名称。例如,您可以在 StartQueryExecution 中设置工作组名称,如下所示:

      StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest() .withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY) .withQueryExecutionContext(queryExecutionContext) .withWorkGroup(WorkgroupName)
    • 如果您正在使用 JDBC 或 ODBC 驱动程序,使用 Workgroup 配置参数在连接字符串中设置工作组名称。驱动程序将工作组名称传递到 Athena。在连接字符串中指定工作组参数,如以下示例所示:

      jdbc:awsathena://AwsRegion=<AWSREGION>;UID=<ACCESSKEY>; PWD=<SECRETKEY>;S3OutputLocation=s3://<athena-output>-<AWSREGION>/; Workgroup=<WORKGROUPNAME>;

为工作组配置最低加密

作为 Athena SQL 工作组的管理员,您可以在 Amazon S3 中对该工作组的所有查询结果强制执行最低级别的加密。您可以使用此功能确保查询结果永远不会以未加密状态存储在 Amazon S3 存储桶中。

当启用最低加密功能的工作组中的用户提交查询时,他们只能将加密设置为您配置的最低级别,或者如果有更高的加密级别,则只能设置为更高的级别。Athena 在用户运行查询时指定的级别或工作组中设置的级别对查询结果进行加密。

可用级别如下:

  • 基础 – 使用 Amazon S3 托管式密钥(SSE_S3)的服务器端加密。

  • 中级 – 使用 KMS 托管式密钥(SSE_KMS)的服务器端加密。

  • 高级 - 使用 KMS 托管式密钥(CSE_KMS)的客户端加密。

注意事项和限制

  • 最低加密功能不适用于启用 Apache Spark 的工作组。

  • 只有当工作组未启用覆盖客户端设置选项时,最低加密功能才起作用。

  • 如果工作组启用了覆盖客户端设置选项,则以工作组加密设置为准,最低加密设置无效。

  • 启用此功能不收取任何费用。

为工作组启用最低加密

在创建或更新工作组时,您可以为 Athena SQL 工作组的查询结果启用最低加密级别。为此,您可以使用 Athena 控制台、Athena API 或 Amazon CLI。

使用 Athena 控制台启用最低加密

要开始使用 Athena 控制台创建或编辑工作组,请参阅创建工作组编辑工作组。配置工作组时,请使用以下步骤启用最低加密。

为工作组查询结果配置最低加密级别
  1. 其他配置部分中,展开设置

  2. 清除覆盖客户端设置选项,或者确认该选项未被选中。

  3. 其他配置部分中,展开查询结果配置

  4. 选择加密查询结果选项。

  5. 对于加密类型,选择您希望 Athena 用于工作组查询结果的加密方法(SSE_S3SSE_KMSCSE_KMS)。这些加密类型对应于基础、中级和高级安全级别。

  6. 要对所有用户强制使用您选择的最低加密级别的加密方法,请选择encryption_method 设置为最低加密

    当您选择此选项时,系统将显示一个表格,显示在您选择的加密类型变为最低加密类型时允许用户使用的加密层次结构和加密级别。

  7. 创建工作组或更新工作组配置后,选择创建工作组保存更改

使用 Athena API 或 Amazon CLI 启用最低加密

当您使用 CreateWorkGroupUpdateWorkGroup API 创建或更新 Athena SQL 工作组时,请将 EnforceWorkGroupConfiguration 设置为 false,将 EnableMinimumEncryptionConfiguration 设置为 true,并使用 EncryptionOption 指定加密类型。

在 Amazon CLI 中,使用带有 --configuration--configuration-updates 参数的 create-work-groupupdate-work-group 命令,并指定与 API 对应的选项。