AWS managed policies for Amazon Athena - Amazon Athena

AWS managed policies for Amazon Athena

An AWS managed policy is a standalone policy that is created and administered by AWS. AWS managed policies are designed to provide permissions for many common use cases so that you can start assigning permissions to users, groups, and roles.

Keep in mind that AWS managed policies might not grant least-privilege permissions for your specific use cases because they're available for all AWS customers to use. We recommend that you reduce permissions further by defining customer managed policies that are specific to your use cases.

You cannot change the permissions defined in AWS managed policies. If AWS updates the permissions defined in an AWS managed policy, the update affects all principal identities (users, groups, and roles) that the policy is attached to. AWS is most likely to update an AWS managed policy when a new AWS service is launched or new API operations become available for existing services.

For more information, see AWS managed policies in the IAM User Guide.

Considerations when using managed policies with Athena

Managed policies are easy to use and are updated automatically with the required actions as the service evolves. When using managed policies with Athena, keep the following points in mind:

  • To allow or deny Amazon Athena service actions for yourself or other users using AWS Identity and Access Management (IAM), you attach identity-based policies to principals, such as users or groups.

  • Each identity-based policy consists of statements that define the actions that are allowed or denied. For more information and step-by-step instructions for attaching a policy to a user, see Attaching managed policies in the IAM User Guide. For a list of actions, see the Amazon Athena API Reference.

  • Customer-managed and inline identity-based policies allow you to specify more detailed Athena actions within a policy to fine-tune access. We recommend that you use the AmazonAthenaFullAccess policy as a starting point and then allow or deny specific actions listed in the Amazon Athena API Reference. For more information about inline policies, see Managed policies and inline policies in the IAM User Guide.

  • If you also have principals that connect using JDBC, you must provide the JDBC driver credentials to your application. For more information, see Access through JDBC and ODBC connections.

  • If you have encrypted the AWS Glue Data Catalog, you must specify additional actions in the identity-based IAM policies for Athena. For more information, see Access from Athena to encrypted metadata in the AWS Glue Data Catalog.

  • If you create and use workgroups, make sure your policies include relevant access to workgroup actions. For detailed information, see IAM policies for accessing workgroups and Workgroup example policies.

AWS managed policy: AmazonAthenaFullAccess

The AmazonAthenaFullAccess managed policy grants full access to Athena.

To provide access, add permissions to your users, groups, or roles:

Permissions groupings

The AmazonAthenaFullAccess policy is grouped into the following sets of permissions.

  • athena – Allows principals access to Athena resources.

  • glue – Allows principals access to AWS Glue databases, tables, and partitions. This is required so that the principal can use the AWS Glue Data Catalog with Athena.

  • s3 – Allows the principal to write and read query results from Amazon S3, to read publically available Athena data examples that reside in Amazon S3, and to list buckets. This is required so that the principal can use Athena to work with Amazon S3.

  • sns – Allows principals to list Amazon SNS topics and get topic attributes. This enables principals to use Amazon SNS topics with Athena for monitoring and alert purposes.

  • cloudwatch – Allows principals to create, read, and delete CloudWatch alarms. For more information, see Controlling costs and monitoring queries with CloudWatch metrics and events.

  • lakeformation – Allows principals to request temporary credentials to access data in a data lake location that is registered with Lake Formation. For more information, see Underlying data access control in the AWS Lake Formation Developer Guide.

  • datazone – Allows principals to list Amazon DataZone projects, domains, and environments. For information about using DataZone in Athena, see Using Amazon DataZone in Athena.

  • pricing – Provides access to AWS Billing and Cost Management. For more information, see GetProducts in the AWS Billing and Cost Management API Reference.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BaseAthenaPermissions", "Effect": "Allow", "Action": [ "athena:*" ], "Resource": [ "*" ] }, { "Sid": "BaseGluePermissions", "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "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" ], "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 managed policy: AWSQuicksightAthenaAccess

AWSQuicksightAthenaAccess grants access to actions that Amazon QuickSight requires for integration with Athena. You can attach the AWSQuicksightAthenaAccess policy to your IAM identities. Attach this policy only to principals who use Amazon QuickSight with Athena. This policy includes some actions for Athena that are either deprecated and not included in the current public API, or that are used only with the JDBC and ODBC drivers.

Permissions groupings

The AWSQuicksightAthenaAccess policy is grouped into the following sets of permissions.

  • athena – Allows the principal to run queries on Athena resources.

  • glue – Allows principals access to AWS Glue databases, tables, and partitions. This is required so that the principal can use the AWS Glue Data Catalog with Athena.

  • s3 – Allows the principal to write and read query results from Amazon S3.

  • lakeformation – Allows principals to request temporary credentials to access data in a data lake location that is registered with Lake Formation. For more information, see Underlying data access control in the AWS Lake Formation Developer Guide.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:BatchGetQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:ListQueryExecutions", "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: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": [ "*" ] } ] }

Athena updates to AWS managed policies

View details about updates to AWS managed policies for Athena since this service began tracking these changes.

Change Description Date

AmazonAthenaFullAccess – Update to existing policy

The datazone:ListDomains, datazone:ListProjects, and datazone:ListAccountEnvironments permissions were added to enable Athena users to work with Amazon DataZone domains, projects, and environments. For more information, see Using Amazon DataZone in Athena.

January 3, 2024

AmazonAthenaFullAccess – Update to existing policy

The glue:StartColumnStatisticsTaskRun, glue:GetColumnStatisticsTaskRun, and glue:GetColumnStatisticsTaskRuns permissions were added to give Athena the right to call AWS Glue to retrieve statistics for the cost-based optimizer feature. For more information, see Using the cost-based optimizer.

January 3, 2024

AmazonAthenaFullAccess – Update to existing policy

Athena added pricing:GetProducts to provide access to AWS Billing and Cost Management. For more information, see GetProducts in the AWS Billing and Cost Management API Reference.

January 25, 2023

AmazonAthenaFullAccess – Update to existing policy

Athena added cloudwatch:GetMetricData to retrieve CloudWatch metric values. For more information, see GetMetricData in the Amazon CloudWatch API Reference.

November 14, 2022

AmazonAthenaFullAccess and AWSQuicksightAthenaAccess – Updates to existing policies

Athena added s3:PutBucketPublicAccessBlock to enable the blocking of public access on the buckets created by Athena.

July 7, 2021

Athena started tracking changes

Athena started tracking changes for its AWS managed policies.

July 7, 2021