

# Amazon Athena 的 AWS 托管策略
<a name="security-iam-awsmanpol"></a>

AWS 托管式策略是由 AWS 创建和管理的独立策略。AWS 托管式策略旨在为许多常见使用案例提供权限，以便您可以开始为用户、组和角色分配权限。

请记住，AWS 托管式策略可能不会为您的特定使用案例授予最低权限，因为它们可供所有 AWS 客户使用。我们建议通过定义特定于使用案例的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)来进一步减少权限。

您无法更改 AWS 托管式策略中定义的权限。如果 AWS 更新在 AWS 托管式策略中定义的权限，则更新会影响该策略所附加到的所有主体身份（用户、组和角色）。当新的 AWS 服务 启动或新的 API 操作可用于现有服务时，AWS 最有可能更新 AWS 托管式策略。

有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## 在 Athena 中使用托管策略时的注意事项
<a name="managed-policies-considerations"></a>

托管策略易于使用，并且随着服务的发展而自动使用必需的操作进行更新。将托管策略与 Athena 结合使用时，请记住以下几点：
+ 要使用 AWS Identity and Access Management（IAM）为您自己或其他用户允许或拒绝 Amazon Athena 服务操作，请将基于身份的策略附加到主体，例如用户或组。
+ 每个基于身份的策略均包含用于定义允许或拒绝的操作的语句。有关将策略附加到用户的更多信息和分步说明，请参阅 [IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console)中的 *附加托管式策略*。有关操作列表，请参阅 [Amazon Athena API 参考](https://docs.aws.amazon.com/athena/latest/APIReference/)。
+  *客户托管*策略和基于身份的*内联*策略允许您在策略内指定更详细的 Athena 操作来微调访问权限。我们建议您使用 `AmazonAthenaFullAccess` 策略作为起始点，然后允许或拒绝 [Amazon Athena API 参考](https://docs.aws.amazon.com/athena/latest/APIReference/)中所列的特定操作。有关内联策略的更多信息，请参阅《IAM 用户指南**》中的 [托管式策略与内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。
+ 如果您还具有使用 JDBC 连接的主体，则必须为您的应用程序提供 JDBC 驱动程序凭证。有关更多信息，请参阅 [控制通过 JDBC 和 ODBC 连接的访问](policy-actions.md)。
+ 如果您已加密 AWS Glue Data Catalog，则必须在基于身份的 IAM 策略中为 Athena 指定其他操作。有关更多信息，请参阅 [从 Athena 配置对 AWS Glue Data Catalog 中加密元数据的访问](access-encrypted-data-glue-data-catalog.md)。
+ 如果您创建和使用工作组，请确保您的策略包括对工作组操作的相关访问权限。有关详细信息，请参阅[使用 IAM 策略控制工作组访问](workgroups-iam-policy.md)和[工作组策略示例](example-policies-workgroup.md)。

## AWS 托管策略：AmazonAthenaFullAccess
<a name="amazonathenafullaccess-managed-policy"></a>

`AmazonAthenaFullAccess` 托管策略授予对 Athena 的完全访问权限。

要提供访问权限，请为您的用户、组或角色添加权限：
+ AWS IAM Identity Center 中的用户和群组：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供者在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供者创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南**》中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

### 权限组
<a name="amazonathenafullaccess-managed-policy-groupings"></a>

`AmazonAthenaFullAccess` 策略被分组为以下权限集。
+ **`athena`**：允许主体访问 Athena 资源。
+ **`glue`** – 允许主体访问 AWS Glue 目录、数据库、表和分区。这是必需的，以便主体可以将 AWS Glue Data Catalog 和 Athena 搭配使用。
+ **`s3`**：允许主体从 Amazon S3 编写和读取查询结果，读取驻留在 Amazon S3 中的公开可用的 Athena 数据示例，并列出存储桶。这是必需的，以便主体可以将 Athena 与 Amazon S3 搭配使用。
+ **`sns`**：允许主体列出 Amazon SNS 主题并获取主题属性。这使主体能够将 Amazon SNS 主题与 Athena 结合使用，以进行监控和提示。
+ **`cloudwatch`**：允许主体创建、读取和删除 CloudWatch 告警。有关更多信息，请参阅 [使用 CloudWatch 和 EventBridge 监控查询并控制成本](workgroups-control-limits.md)。
+ **`lakeformation`**：允许主体请求临时证书以访问已注册到 Lake Formation 的数据湖位置中的数据。有关更多信息，请参阅《AWS Lake Formation 开发人员指南[https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html)》中的*底层数据访问控制*。
+ **`datazone`** – 允许主体列出 Amazon DataZone 项目、域和环境。有关如何在 Athena 中使用 DataZone 的信息，请参阅 [在 Athena 中使用 Amazon DataZone](datazone-using.md)。
+ **`pricing`** – 提供对 AWS 账单与成本管理 的访问权限。有关更多信息，请参阅《AWS 账单与成本管理 API 参考》中的 [GetProducts](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html)**。

要查看此策略的权限，请参阅《AWS Managed Policy Reference》中的 [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html)。

**注意**  
您必须明确允许访问服务拥有的 Amazon S3 存储桶来存储示例查询和示例数据集。有关更多信息，请参阅 [数据边界](data-perimeters.md)。

## AWS 托管策略：AWSQuicksightAthenaAccess
<a name="awsquicksightathenaaccess-managed-policy"></a>

`AWSQuicksightAthenaAccess` 授予对 Quick 与 Athena 集成所需的操作的访问权限。您可以将 `AWSQuicksightAthenaAccess` 策略附加到 IAM 身份。仅将此策略附加到将 Quick 与 Athena 结合使用的主体。此策略包括 Athena 的一些操作，这些操作已弃用且未包含在当前公有 API 中或仅与 JDBC 和 ODBC 驱动程序一起使用。

### 权限组
<a name="awsquicksightathenaaccess-managed-policy-groupings"></a>

`AWSQuicksightAthenaAccess` 策略被分组为以下权限集。
+ **`athena`**：允许主体对 Athena 资源运行查询。
+ **`glue`** – 允许主体访问 AWS Glue 目录、数据库、表和分区。这是必需的，以便主体可以将 AWS Glue Data Catalog 和 Athena 搭配使用。
+ **`s3`**：允许主体从 Amazon S3 中写入和读取查询结果。
+ **`lakeformation`**：允许主体请求临时证书以访问已注册到 Lake Formation 的数据湖位置中的数据。有关更多信息，请参阅《AWS Lake Formation 开发人员指南[https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html](https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html)》中的*底层数据访问控制*。

要查看此策略的权限，请参阅《AWS Managed Policy Reference》中的 [AWSQuicksightAthenaAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSQuicksightAthenaAccess.html)。

## AWS 托管策略的 Athena 更新
<a name="managed-policies-updates"></a>

查看有关 Athena AWS 托管策略更新的详细信息（从该服务开始跟踪这些更改开始）。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
| [AWSQuicksightAthenaAccess](#awsquicksightathenaaccess-managed-policy) – 对现有策略的更新 | 添加了 glue:GetCatalog 和 glue:GetCatalogs 权限，让 Athena 用户能够访问 SageMaker AI Lakehouse 目录。 | 2025 年 1 月 2 日 | 
| [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – 对现有政策的更新 | 添加了 glue:GetCatalog 和 glue:GetCatalogs 权限，让 Athena 用户能够访问 SageMaker AI Lakehouse 目录。 | 2025 年 1 月 2 日 | 
| [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – 对现有政策的更新 |  允许 Athena 使用公开记录的 AWS Glue `GetCatalogImportStatus` API 来检索目录导入状态。  | 2024 年 6 月 18 日 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – 对现有政策的更新  |  添加了 `datazone:ListDomains`、`datazone:ListProjects` 和 `datazone:ListAccountEnvironments` 权限，以使 Athena 用户能够使用 Amazon DataZone 域、项目和环境。有关更多信息，请参阅 [在 Athena 中使用 Amazon DataZone](datazone-using.md)。  | 2024 年 1 月 3 日 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – 对现有政策的更新  |  添加了 `glue:StartColumnStatisticsTaskRun`、`glue:GetColumnStatisticsTaskRun` 和 `glue:GetColumnStatisticsTaskRuns` 权限，以使 Athena 有权调用 AWS Glue，以检索基于成本的优化器功能的统计数据。有关更多信息，请参阅 [使用成本型优化器](cost-based-optimizer.md)。  | 2024 年 1 月 3 日 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – 对现有政策的更新  |  Athena 增加了 `pricing:GetProducts` 以提供对 AWS 账单与成本管理 的访问权限。有关更多信息，请参阅《AWS 账单与成本管理 API 参考》中的 [GetProducts](https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetProducts.html)**。  | 2023 年 1 月 25 日 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) – 对现有政策的更新  |  Athena 添加了 `cloudwatch:GetMetricData`，用以检索 CloudWatch 指标值。有关更多信息，请参阅 *Amazon CloudWatch API 参考*中的 [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)。  | 2022 年 11 月 14 日 | 
|  [AmazonAthenaFullAccess](#amazonathenafullaccess-managed-policy) 和 [AWSQuicksightAthenaAccess](#awsquicksightathenaaccess-managed-policy) – 对现有策略的更新  |  将 Athena 添加到 `s3:PutBucketPublicAccessBlock` 以允许阻止对 Athena 创建的存储桶的公共访问。  | 2021 年 7 月 7 日 | 
|  Athena 开始跟踪变更  |  Athena 为其 AWS 托管策略开启了跟踪更改。  | 2021 年 7 月 7 日 | 