AWSGlueConsoleFullAccess
Summary
Provides full access to AWS Glue via the AWS Management Console. The AWS Glue Developer Guide says it grants full access to AWS Glue resources when an identity that the policy is attached to uses the console, and that you get full console capabilities if you follow the naming convention for resources in the policy.
Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.
Identity
- ARN
arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess- Default version
- v15
- Created
- Last edited
- Services
- cloudformation, cloudwatch, databrew, dynamodb, ec2, glue, iam, kms, logs, rds, redshift, s3, tag
Control-plane actions (352)
By access level: 51 List, 36 Permissions management, 105 Read, 6 Tagging, 154 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudFormation | 7 of 104 | 2 List, 1 Read, 2 Tagging, 2 Write; 4 restricted, 2 conditional | cloudformation:CreateStack, cloudformation:DeleteStack, cloudformation:DescribeStacks, cloudformation:GetTemplateSummary, cloudformation:ListStacks, cloudformation:TagResource, cloudformation:UntagResource |
| CloudWatch | 1 of 160 | 1 List; 0 restricted, 0 conditional | cloudwatch:ListDashboards |
| DataBrew | 3 of 44 | 3 Read; 0 restricted, 0 conditional | databrew:DescribeRecipe, databrew:ListRecipeVersions, databrew:ListRecipes |
| DynamoDB | 1 of 68 | 1 List; 0 restricted, 0 conditional | dynamodb:ListTables |
| EC2 | 13 of 834 | 9 List, 2 Tagging, 2 Write; 4 restricted, 3 conditional | ec2:CreateTags, ec2:DeleteTags, ec2:DescribeImages, ec2:DescribeInstances, ec2:DescribeKeyPairs, ec2:DescribeRouteTables, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcAttribute, ec2:DescribeVpcEndpoints, ec2:DescribeVpcs, ec2:RunInstances and 1 more |
| Glue | All 306 actions (see the Glue page) | 27 List, 36 Permissions management, 93 Read, 2 Tagging, 148 Write; 0 restricted, 0 conditional | glue:* |
| IAM | 8 of 190 | 5 List, 2 Read, 1 Write; 1 restricted, 1 conditional | iam:GetRole, iam:GetRolePolicy, iam:ListAttachedRolePolicies, iam:ListGroups, iam:ListRolePolicies, iam:ListRoles, iam:ListUsers, iam:PassRole |
| KMS | 2 of 58 | 1 List, 1 Read; 0 restricted, 0 conditional | kms:DescribeKey, kms:ListAliases |
| CloudWatch Logs | 1 of 133 | 1 Read; 1 restricted, 0 conditional | logs:GetLogEvents |
| RDS | 3 of 173 | 3 List; 0 restricted, 0 conditional | rds:DescribeDBClusters, rds:DescribeDBInstances, rds:DescribeDBSubnetGroups |
| Redshift | 2 of 167 | 1 List, 1 Read; 0 restricted, 0 conditional | redshift:DescribeClusterSubnetGroups, redshift:DescribeClusters |
| S3 | 4 of 155 | 1 List, 2 Read, 1 Write; 1 restricted, 0 conditional | s3:CreateBucket, s3:GetBucketAcl, s3:GetBucketLocation, s3:ListAllMyBuckets |
| Resource Group Tagging | 1 of 9 | 1 Read; 0 restricted, 0 conditional | tag:GetResources |
CloudFormation: 7 actions
- cloudformation:CreateStack (Write)
- cloudformation:DeleteStack (Write)
- cloudformation:DescribeStacks (List)
- cloudformation:GetTemplateSummary (Read)
- cloudformation:ListStacks (List)
- cloudformation:TagResource (Tagging)
- cloudformation:UntagResource (Tagging)
CloudWatch: 1 actions
- cloudwatch:ListDashboards (List)
DataBrew: 3 actions
- databrew:DescribeRecipe (Read)
- databrew:ListRecipeVersions (Read)
- databrew:ListRecipes (Read)
DynamoDB: 1 actions
- dynamodb:ListTables (List)
EC2: 13 actions
- ec2:CreateTags (Tagging)
- ec2:DeleteTags (Tagging)
- ec2:DescribeImages (List)
- ec2:DescribeInstances (List)
- ec2:DescribeKeyPairs (List)
- ec2:DescribeRouteTables (List)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeVpcAttribute (List)
- ec2:DescribeVpcEndpoints (List)
- ec2:DescribeVpcs (List)
- ec2:RunInstances (Write)
- ec2:TerminateInstances (Write)
IAM: 8 actions
- iam:GetRole (Read)
- iam:GetRolePolicy (Read)
- iam:ListAttachedRolePolicies (List)
- iam:ListGroups (List)
- iam:ListRolePolicies (List)
- iam:ListRoles (List)
- iam:ListUsers (List)
- iam:PassRole (Write)
KMS: 2 actions
- kms:DescribeKey (Read)
- kms:ListAliases (List)
CloudWatch Logs: 1 actions
- logs:GetLogEvents (Read)
RDS: 3 actions
- rds:DescribeDBClusters (List)
- rds:DescribeDBInstances (List)
- rds:DescribeDBSubnetGroups (List)
Redshift: 2 actions
- redshift:DescribeClusterSubnetGroups (Read)
- redshift:DescribeClusters (List)
S3: 4 actions
- s3:CreateBucket (Write)
- s3:GetBucketAcl (Read)
- s3:GetBucketLocation (Read)
- s3:ListAllMyBuckets (List)
Resource Group Tagging: 1 actions
- tag:GetResources (Read)
Data-plane actions (4)
By access level: 1 List, 2 Read, 1 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudWatch | 1 of 5 | 1 Read; 0 restricted, 0 conditional | cloudwatch:GetMetricData |
| S3 | 3 of 25 | 1 List, 1 Read, 1 Write; 2 restricted, 0 conditional | s3:GetObject, s3:ListBucket, s3:PutObject |
CloudWatch: 1 actions
- cloudwatch:GetMetricData (Read)
S3: 3 actions
- s3:GetObject (Read)
- s3:ListBucket (List)
- s3:PutObject (Write)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants at least 80% of the write and permissions-management actions of: glue (184 of 184).
- Grants data-plane write actions on a data store, but only for scoped resources or under conditions.
- Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
Guidance
Practical scope
Twelve statements. The first allows 37 actions on Resource "*": glue:* plus read actions for redshift, iam (list and get roles and role policies, list users and groups), ec2, rds, s3 (including s3:ListAllMyBuckets), cloudformation, dynamodb, kms, cloudwatch and databrew. Scoped statements allow s3:GetObject and s3:PutObject on the resource patterns arn:aws:s3:::aws-glue-*/*, arn:aws:s3:::*/*aws-glue-*/* and arn:aws:s3:::aws-glue-*, s3:CreateBucket on arn:aws:s3:::aws-glue-*, logs:GetLogEvents on /aws-glue/ log groups, cloudformation:CreateStack and cloudformation:DeleteStack on aws-glue* stacks, ec2:RunInstances on instance, key-pair, image, security-group, network-interface, subnet and volume resources, and ec2:TerminateInstances, ec2:CreateTags and ec2:DeleteTags on instances tagged ZeppelinInstance in aws-glue stacks. Three statements allow iam:PassRole on roles named AWSGlueServiceRole* and AWSGlueServiceNotebookRole*, only when passed to glue.amazonaws.com or ec2.amazonaws.com.
Use cases
- Let AWS Glue console users build and manage AWS Glue resources when resources follow the naming convention in the policy.
Best practices
- AWS managed policies don't grant least privilege permissions. The IAM User Guide suggests using IAM Access Analyzer to see which permissions principals actually use, then writing a custom policy or generating one with only the required permissions.
Security considerations
- glue:* on all resources gives full control of AWS Glue, and the policy also lets a principal create and delete CloudFormation stacks named aws-glue* and launch EC2 instances.
- The S3 object resource pattern arn:aws:s3:::*/*aws-glue-*/* is not limited to buckets named aws-glue-*, so s3:GetObject and s3:PutObject reach objects in any bucket, for object keys that have an aws-glue- path segment.
- It includes iam:PassRole for roles named AWSGlueServiceRole* and AWSGlueServiceNotebookRole*, limited by an iam:PassedToService condition. Passing a role to a service needs iam:PassRole. The IAM User Guide says that to pass a role to an AWS service, a user must have permission to pass the role to the service, which helps administrators ensure that only approved users can configure a service with a role that grants permissions.
- You cannot change the permissions in an AWS managed policy. If AWS updates the policy, the update affects every user, group and role it is attached to.
Assignment guidance
You can attach this policy to your users, groups and roles. The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center. The AWS Glue Developer Guide says AWS managed policies for AWS Glue can be attached to identities in your account, and that AWSGlueConsoleFullAccess is typically attached to users of the AWS Glue console. It fits where full use of the Glue console is intended.
Related policies
Same service
- AmazonAthenaFullAccess
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneGlueManageAccessRolePolicy
- AmazonDataZonePreviewConsoleFullAccess
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneSageMakerEnvironmentRolePermissionsBoundary
- AmazonDataZoneSageMakerProvisioningRolePolicy
- AmazonGrafanaAthenaAccess
Same domain
- AmazonChimeSDKMediaPipelinesServiceLinkedRolePolicy
- AmazonChimeSDKMessagingServiceRolePolicy
- AmazonDataZoneDomainExecutionRolePolicy
- AmazonDataZoneFullAccess
- AmazonDataZoneFullUserAccess
- AmazonDataZoneRedshiftGlueProvisioningPolicy
- AmazonDataZoneRedshiftManageAccessRolePolicy
- AmazonElasticMapReduceforAutoScalingRole
Frequently asked questions
- When should I attach AWSGlueConsoleFullAccess?
- The AWS Glue Developer Guide says AWSGlueConsoleFullAccess is typically attached to users of the AWS Glue console and grants full console capabilities if you follow the naming convention for resources in the policy. Attach it to identities that need to build and manage Glue resources in the console.
- What does AWSGlueConsoleFullAccess grant?
- It allows glue:* on all resources plus read actions for many related services, s3:GetObject and s3:PutObject on three aws-glue-* resource patterns (one matches any bucket, for object keys with an aws-glue- path segment), CloudFormation stack create and delete on aws-glue* stacks, EC2 instance launch and iam:PassRole for AWSGlueServiceRole* and AWSGlueServiceNotebookRole* roles.
- What are the security risks of AWSGlueConsoleFullAccess?
- glue:* on all resources gives full control of AWS Glue. The policy can also create and delete aws-glue* CloudFormation stacks, launch EC2 instances and pass the named service roles. AWS managed policies don't grant least privilege permissions, and you must consider the security risk of granting principals more permissions than they need. AWS updates to the policy affect every identity it is attached to.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BaseAppPermissions",
"Effect": "Allow",
"Action": [
"glue:*",
"redshift:DescribeClusters",
"redshift:DescribeClusterSubnetGroups",
"iam:ListRoles",
"iam:ListUsers",
"iam:ListGroups",
"iam:ListRolePolicies",
"iam:GetRole",
"iam:GetRolePolicy",
"iam:ListAttachedRolePolicies",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DescribeVpcEndpoints",
"ec2:DescribeRouteTables",
"ec2:DescribeVpcAttribute",
"ec2:DescribeKeyPairs",
"ec2:DescribeInstances",
"ec2:DescribeImages",
"rds:DescribeDBInstances",
"rds:DescribeDBClusters",
"rds:DescribeDBSubnetGroups",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:GetBucketLocation",
"cloudformation:ListStacks",
"cloudformation:DescribeStacks",
"cloudformation:GetTemplateSummary",
"dynamodb:ListTables",
"kms:ListAliases",
"kms:DescribeKey",
"cloudwatch:GetMetricData",
"cloudwatch:ListDashboards",
"databrew:ListRecipes",
"databrew:ListRecipeVersions",
"databrew:DescribeRecipe"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::aws-glue-*/*",
"arn:aws:s3:::*/*aws-glue-*/*",
"arn:aws:s3:::aws-glue-*"
]
},
{
"Effect": "Allow",
"Action": [
"tag:GetResources"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket"
],
"Resource": [
"arn:aws:s3:::aws-glue-*"
]
},
{
"Effect": "Allow",
"Action": [
"logs:GetLogEvents"
],
"Resource": [
"arn:aws:logs:*:*:/aws-glue/*"
]
},
{
"Effect": "Allow",
"Action": [
"cloudformation:CreateStack",
"cloudformation:DeleteStack"
],
"Resource": "arn:aws:cloudformation:*:*:stack/aws-glue*/*"
},
{
"Sid": "CloudFormationTagOnCreate",
"Effect": "Allow",
"Action": [
"cloudformation:TagResource",
"cloudformation:UntagResource"
],
"Resource": "arn:aws:cloudformation:*:*:stack/aws-glue*/*",
"Condition": {
"StringEquals": {
"cloudformation:CreateAction": [
"CreateStack"
]
}
}
},
{
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:*:*:instance/*",
"arn:aws:ec2:*:*:key-pair/*",
"arn:aws:ec2:*:*:image/*",
"arn:aws:ec2:*:*:security-group/*",
"arn:aws:ec2:*:*:network-interface/*",
"arn:aws:ec2:*:*:subnet/*",
"arn:aws:ec2:*:*:volume/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:TerminateInstances",
"ec2:CreateTags",
"ec2:DeleteTags"
],
"Resource": [
"arn:aws:ec2:*:*:instance/*"
],
"Condition": {
"StringLike": {
"ec2:ResourceTag/aws:cloudformation:stack-id": "arn:aws:cloudformation:*:*:stack/aws-glue-*/*"
},
"StringEquals": {
"ec2:ResourceTag/aws:cloudformation:logical-id": "ZeppelinInstance"
}
}
},
{
"Action": [
"iam:PassRole"
],
"Effect": "Allow",
"Resource": "arn:aws:iam::*:role/AWSGlueServiceRole*",
"Condition": {
"StringLike": {
"iam:PassedToService": [
"glue.amazonaws.com"
]
}
}
},
{
"Action": [
"iam:PassRole"
],
"Effect": "Allow",
"Resource": "arn:aws:iam::*:role/AWSGlueServiceNotebookRole*",
"Condition": {
"StringLike": {
"iam:PassedToService": [
"ec2.amazonaws.com"
]
}
}
},
{
"Action": [
"iam:PassRole"
],
"Effect": "Allow",
"Resource": [
"arn:aws:iam::*:role/service-role/AWSGlueServiceRole*"
],
"Condition": {
"StringLike": {
"iam:PassedToService": [
"glue.amazonaws.com"
]
}
}
}
]
}
Version history
Current version v15, edited by AWS on 2026-09-10. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AWSGlueConsoleFullAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AWSGlueConsoleFullAccessTerraform
resource "aws_iam_role_policy_attachment" "awsglueconsolefullaccess" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AWSGlueConsoleFullAccess"),
);Sources
- AWSGlueConsoleFullAccess (AWS Managed Policy Reference Guide) (retrieved ; supports summary, practicalScope, useCases, securityConsiderations, assignmentGuidance, faqs)
- Granting AWS managed policies for AWS Glue (AWS Glue Developer Guide) (retrieved ; supports summary, useCases, assignmentGuidance, faqs)
- Grant a user permissions to pass a role to an AWS service (IAM User Guide) (retrieved ; supports securityConsiderations)
- Managed policies and inline policies (IAM User Guide) (retrieved ; supports securityConsiderations, faqs)
- AWS managed policies for job functions (IAM User Guide) (retrieved ; supports bestPractices, faqs)