Amazon Athena 的 AWS 托管策略
AWS 托管式策略是由 AWS 创建和管理的独立策略。AWS 托管式策略旨在为许多常见使用场景提供权限,以便您可以开始为用户、组和角色分配权限。
请记住,AWS 托管策略可能不会为您的特定使用场景授予最低权限,因为它们可供所有 AWS 客户使用。我们建议通过定义特定于您的使用场景的客户管理型策略来进一步减少权限。
您无法更改 AWS 托管策略中定义的权限。如果 AWS 更新在 AWS 托管策略中定义的权限,则更新会影响该策略所附加到的所有主体身份(用户、组和角色)。当新的 AWS 服务 启动或新的 API 操作可用于现有服务时,AWS 最有可能更新 AWS 托管策略。
有关更多信息,请参阅《IAM 用户指南》中的 AWS 托管策略。
在 Athena 中使用托管策略时的注意事项
托管策略易于使用,并且随着服务的发展而自动使用必需的操作进行更新。将托管策略与 Athena 结合使用时,请记住以下几点:
-
要使用 AWS Identity and Access Management (IAM) 为您自己或其他用户允许或拒绝 Amazon Athena 服务操作,请将基于身份的策略附加到委托人,例如用户或组。
-
每个基于身份的策略均包含用于定义允许或拒绝的操作的语句。有关将策略附加到用户的更多信息和分步说明,请参阅 IAM 用户指南中的 附加托管式策略。有关操作列表,请参阅 Amazon Athena API 参考。
-
客户托管策略和基于身份的内联策略允许您在策略内指定更详细的 Athena 操作来精调访问权限。我们建议您使用
AmazonAthenaFullAccess
策略作为起始点,然后允许或拒绝 Amazon Athena API 参考中所列的特定操作。有关内联策略的更多信息,请参阅《IAM 用户指南》中的 托管式策略与内联策略。 -
如果您还具有使用 JDBC 连接的委托人,则必须为您的应用程序提供 JDBC 驱动程序凭证。有关更多信息,请参阅 控制通过 JDBC 和 ODBC 连接的访问。
-
如果您已加密 AWS Glue Data Catalog,则必须在基于身份的 IAM 策略中为 Athena 指定其他操作。有关更多信息,请参阅 从 Athena 配置对 AWS Glue Data Catalog 中加密元数据的访问。
-
如果您创建和使用工作组,请确保您的策略包括对工作组操作的相关访问权限。有关详细信息,请参阅使用 IAM 策略控制工作组访问和工作组策略示例。
AWS 托管策略:AmazonAthenaFullAccess
AmazonAthenaFullAccess
托管策略授予对 Athena 的完全访问权限。
要提供访问权限,请为您的用户、组或角色添加权限:
-
AWS IAM Identity Center 中的用户和群组:
创建权限集合。按照《AWS IAM Identity Center 用户指南》中创建权限集的说明进行操作。
-
通过身份提供商在 IAM 中托管的用户:
创建适用于身份联合验证的角色。按照《IAM 用户指南》中针对第三方身份提供商创建角色(联合身份验证)的说明进行操作。
-
IAM 用户:
-
创建您的用户可以担任的角色。按照《IAM 用户指南》中为 IAM 用户创建角色的说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》中向用户添加权限(控制台)中的说明进行操作。
-
权限组
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 监控查询并控制成本。 -
lakeformation
– 允许委托人请求临时证书以访问已注册到 Lake Formation 的数据湖位置中的数据。有关更多信息,请参阅《AWS Lake Formation 开发人员指南https://docs.aws.amazon.com/lake-formation/latest/dg/access-control-underlying-data.html》中的 底层数据访问控制。 -
datazone
– 允许主体列出 Amazon DataZone 项目、域和环境。有关如何在 Athena 中使用 DataZone 的信息,请参阅 在 Athena 中使用 Amazon DataZone。 -
pricing
– 提供对 AWS Billing and Cost Management 的访问权限。有关更多信息,请参阅《AWS Billing and Cost Management API 参考》中的 GetProducts。
{ "Version": "2012-10-17", "Statement": [{ "Sid": "BaseAthenaPermissions", "Effect": "Allow", "Action": [ "athena:*" ], "Resource": [ "*" ] }, { "Sid": "BaseGluePermissions", "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetCatalog", "glue:GetCatalogs", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "glue:StartColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRun", "glue:GetColumnStatisticsTaskRuns", "glue:GetCatalogImportStatus" ], "Resource": [ "*" ] }, { "Sid": "BaseQueryResultsPermissions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:PutObject", "s3:PutBucketPublicAccessBlock" ], "Resource": [ "arn:aws:s3:::aws-athena-query-results-*" ] }, { "Sid": "BaseAthenaExamplesPermissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::athena-examples*" ] }, { "Sid": "BaseS3BucketPermissions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "BaseSNSPermissions", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": [ "*" ] }, { "Sid": "BaseCloudWatchPermissions", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricData" ], "Resource": [ "*" ] }, { "Sid": "BaseLakeFormationPermissions", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": [ "*" ] }, { "Sid": "BaseDataZonePermissions", "Effect": "Allow", "Action": [ "datazone:ListDomains", "datazone:ListProjects", "datazone:ListAccountEnvironments" ], "Resource": [ "*" ] }, { "Sid": "BasePricingPermissions", "Effect": "Allow", "Action": [ "pricing:GetProducts" ], "Resource": [ "*" ] } ] }
AWS 托管策略:AWSQuicksightAthenaAccess
AWSQuicksightAthenaAccess
授予对 Amazon QuickSight 与 Athena 集成所需操作的访问权限。您可以将 AWSQuicksightAthenaAccess
策略附加到 IAM 身份。仅将此策略附加到将 Amazon QuickSight 与 Athena 结合使用的委托人。此策略包括 Athena 的一些操作,这些操作已弃用且未包含在当前公有 API 中或仅与 JDBC 和 ODBC 驱动程序一起使用。
权限组
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》中的 底层数据访问控制。
{ "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": [ "*" ] }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetCatalog", "glue:GetCatalogs", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:CreateBucket", "s3:PutObject", "s3:PutBucketPublicAccessBlock" ], "Resource": [ "arn:aws:s3:::aws-athena-query-results-*" ] }, { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": [ "*" ] } ] }
AWS 托管策略的 Athena 更新
查看有关 Athena AWS 托管策略更新的详细信息(从该服务开始跟踪这些更改开始)。
更改 | 描述 | 日期 |
---|---|---|
AWSQuicksightAthenaAccess – 对现有策略的更新 | 添加了 glue:GetCatalog 和 glue:GetCatalogs 权限,让 Athena 用户能够访问 SageMaker AI Lakehouse 目录。 |
2025 年 1 月 2 日 |
AmazonAthenaFullAccess – 对现有政策的更新 | 添加了 glue:GetCatalog 和 glue:GetCatalogs 权限,让 Athena 用户能够访问 SageMaker AI Lakehouse 目录。 |
2025 年 1 月 2 日 |
AmazonAthenaFullAccess – 对现有政策的更新 |
允许 Athena 使用公开记录的 AWS Glue |
2024 年 6 月 18 日 |
AmazonAthenaFullAccess – 对现有政策的更新 |
添加了 |
2024 年 1 月 3 日 |
AmazonAthenaFullAccess – 对现有政策的更新 |
添加了 |
2024 年 1 月 3 日 |
AmazonAthenaFullAccess – 对现有政策的更新 |
Athena 增加了 |
2023 年 1 月 25 日 |
AmazonAthenaFullAccess – 对现有政策的更新 |
Athena 添加了 |
2022 年 11 月 14 日 |
AmazonAthenaFullAccess 和 AWSQuicksightAthenaAccess – 对现有策略的更新 |
将 Athena 添加到 |
2021 年 7 月 7 日 |
Athena 开始跟踪变更 |
Athena 为其 AWS 托管策略开启了跟踪更改。 |
2021 年 7 月 7 日 |