AWSGlueConsoleFullAccess

Last Modified

Sep 10, 2026

September 10, 2026 at 09:03 PM UTC

Version

v15

Total Versions

10

Created

Sep 10, 2026

Actions

53

Risk

High

An unrestricted escalation path, identity administration, secret reads or the power to switch off security monitoring. Read from this policy document alone: trust policies, boundaries and SCPs in your account still decide what actually succeeds. How this is assessed

  • High

    Can take over existing resources that run as another role

    Grants every action of 1 documented escalation path on any resource with no condition.

    • glue-002glue:UpdateDevEndpointunrestricted

    Use with caution: List the roles attached to the functions, instances, pipelines or notebooks it can modify: the holder effectively has them too.

  • Medium

    Can launch resources that run as a more privileged role

    Grants the actions of 8 documented escalation paths, but only on named resources or under a condition. Review that scope before trusting it.

    • cloudformation-001iam:PassRole + cloudformation:CreateStackscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
      • cloudformation:CreateStack: on arn:aws:cloudformation:*:*:stack/aws-glue*/*
    • ec2-001iam:PassRole + ec2:RunInstancesscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
    • glue-001iam:PassRole + glue:CreateDevEndpointscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
    • glue-003iam:PassRole + glue:CreateJob + glue:StartJobRunscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
    • glue-004iam:PassRole + glue:CreateJob + glue:CreateTriggerscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
    • glue-005iam:PassRole + glue:UpdateJob + glue:StartJobRunscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
    • glue-006iam:PassRole + glue:UpdateJob + glue:CreateTriggerscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*
    • glue-007iam:PassRole + glue:CreateSession + glue:RunStatementscoped
      • iam:PassRole: condition iam:PassedToService, on arn:aws:iam::*:role/AWSGlueServiceRole*

    Use with caution: Check which roles, users or policies fall inside the scope shown above. Within it the escalation works as documented, so keep privileged principals out of it.

  • Medium

    Can read secrets

    Reads Glue connection passwords, on any resource with no condition.

    glue:GetConnection (via glue:*)

    Use with caution: Where the holder needs only some secrets, write your own policy scoped to their ARNs or tags, and limit decryption in the KMS key policies.

  • Medium

    Can rewrite resource policies and sharing

    Grants 2 permissions management actions across 1 service (glue) on any resource, enough to share resources outside the account.

    glue:deleteresourcepolicyglue:putresourcepolicy

    Use with caution: Turn on IAM Access Analyzer external access findings, and keep account-level guards like S3 Block Public Access enabled.

  • Medium

    Full glue access on every resource

    Uses glue:* with Resource "*" and no condition, so every action AWS adds to that service later is granted too.

    glue:*

    Use with caution: The grant grows every time the service does. For long-lived access, prefer a policy that lists the actions you actually need.

IAM Access Analyzer (1)

  • Suggestion / REDUNDANT_RESOURCE

    The 2 resource ARN(s) are redundant because they reference the same resource. Review the use of wildcards (*), or remove the resource arn:aws:s3:::aws-glue-*/* to remove the redundancy. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "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"
              ]
            }
          }
        }
      ]
    },
    "VersionId": "v15",
    "IsDefaultVersion": true,
    "CreateDate": "2026-09-10T20:27:08+00:00"
  }
}

Version History (13 recorded)

Raw history
v15updated

2 actions added

f9f153d

AWSGlueConsoleFullAccess - Policy Version v14

No recorded action delta - this version predates the change index. View the raw diff.

Mar 12, 2026

e0a71d7

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 18, 2024

aafbae9

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

May 13, 2024

1b36617

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Jul 14, 2023

a554434

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Mar 30, 2023

08e3692

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 16, 2019

49aa1d0

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 16, 2019

71619cf

Update detected

No recorded action delta - this version predates the change index. View the raw diff.

Sep 16, 2019

8279033

`2019-08-29`

No recorded action delta - this version predates the change index. View the raw diff.

Aug 29, 2019

5016d52

I updated my CLI and it looks like it reordered everything and changed the white-space, so everything looks changed, but is not

No recorded action delta - this version predates the change index. View the raw diff.

Jul 12, 2019

9d2dff1

Update 2019.03.03

No recorded action delta - this version predates the change index. View the raw diff.

Mar 3, 2019

6655c5d

First commit

No recorded action delta - this version predates the change index. View the raw diff.

Feb 10, 2019

ad4c2e8