SystemAdministrator

Last Modified

Mar 12, 2026

March 12, 2026 at 09:29 PM UTC

Version

v12

Total Versions

10

Created

Feb 12, 2026

Actions

225

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 change identities and their permissions

    Grants 5 permissions management actions on IAM, IAM Identity Center or Organizations, on any resource with no condition.

    iam:updateservercertificateiam:updatesigningcertificateiam:uploadservercertificateiam:uploadsigningcertificateiam:uploadsshpublickey

    Use with caution: Grant it only to identity administrators, and protect your admin roles and SCPs with a permissions boundary or an SCP of their own.

  • High

    Can take over existing resources that run as another role

    Grants every action of 6 documented escalation paths on any resource with no condition.

    • codedeploy-001codedeploy:CreateDeploymentunrestricted
    • ec2-002ec2:ModifyInstanceAttribute + ec2:StopInstances + ec2:StartInstancesunrestricted
    • ec2-004ec2:CreateLaunchTemplateVersion + ec2:ModifyLaunchTemplateunrestricted
    • ec2-005ec2:CreateLaunchTemplateVersion + ec2:ModifyLaunchTemplateunrestricted
    • lambda-003lambda:UpdateFunctionCodeunrestricted
    • lambda-004lambda:UpdateFunctionCode + lambda:InvokeFunctionunrestricted

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

  • High

    Can switch off security monitoring

    Can stop a CloudTrail trail, stop AWS Config recording, delete the AWS Config recorder, delete VPC flow logs, delete CloudWatch log groups, which is how an intruder hides.

    cloudtrail:StopLoggingconfig:StopConfigurationRecorder (via config:*)config:DeleteConfigurationRecorder (via config:*)ec2:DeleteFlowLogslogs:DeleteLogGroup (via logs:*)

    Use with caution: Deny these actions with an SCP for everyone outside a break-glass role, so no single policy can blind you.

  • Medium

    Can launch resources that run as a more privileged role

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

    • ec2-001iam:PassRole + ec2:RunInstancesscoped
      • iam:PassRole: on arn:aws:iam::*:role/rds-monitoring-role, arn:aws:iam::*:role/ec2-sysadmin-*, arn:aws:iam::*:role/ecr-sysadmin-*
    • ec2-003iam:PassRole + ec2:RequestSpotInstancesscoped
      • iam:PassRole: on arn:aws:iam::*:role/rds-monitoring-role, arn:aws:iam::*:role/ec2-sysadmin-*, arn:aws:iam::*:role/ecr-sysadmin-*
    • lambda-001iam:PassRole + lambda:CreateFunction + lambda:InvokeFunctionscoped
      • iam:PassRole: on arn:aws:iam::*:role/rds-monitoring-role, arn:aws:iam::*:role/ec2-sysadmin-*, arn:aws:iam::*:role/ecr-sysadmin-*
    • lambda-002iam:PassRole + lambda:CreateFunction + lambda:CreateEventSourceMappingscoped
      • iam:PassRole: on arn:aws:iam::*:role/rds-monitoring-role, arn:aws:iam::*:role/ec2-sysadmin-*, arn:aws:iam::*:role/ecr-sysadmin-*

    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 Lambda environment variables, where credentials often live, on any resource with no condition.

    lambda:GetFunctionConfiguration (via lambda:Get*)

    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 49 permissions management actions across 10 services (cloudwatch, ds, ec2, events, lambda, logs, ...) on any resource, enough to share resources outside the account.

    cloudwatch:assumeaccessprofilecloudwatch:createaccessgrantcloudwatch:createaccessprofilecloudwatch:createdomainaccessgrantfororganizationcloudwatch:deleteaccessgrantcloudwatch:deleteaccessprofilecloudwatch:deletedomainaccessgrantfororganizationcloudwatch:updateaccessprofileds:createtrustec2:modifyvpcendpointservicepermissionsevents:deleteresourcepolicyevents:putpermissionand 37 more

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

  • Medium

    Can read data in every bucket or table

    Reads any object in any S3 bucket. Read-only is not the same as harmless when the data is the asset.

    s3:GetObject (via s3:*)

    Use with caution: Read access to data is still access to data. For people who only need to see configuration, ViewOnlyAccess carries none of these signals.

  • Medium

    Full access to 16 services on every resource

    Uses autoscaling:*, cloudwatch:*, codedeploy:*, codepipeline:*, config:*, ds:*, elasticloadbalancing:*, events:* and 8 more with Resource "*" and no condition, so every action AWS adds to those services later is granted too.

    autoscaling:*cloudwatch:*codedeploy:*codepipeline:*config:*ds:*elasticloadbalancing:*events:*logs:*route53:*route53domains:*s3:*ses:*sns:*sqs:*trustedadvisor:*

    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_ACTION

    The 2 action(s) are redundant because they provide similar permissions. Update the policy to remove the redundant action such as: ec2:Allocate*. AWS docs

Policy Document

View on GitHub
{
  "PolicyVersion": {
    "Document": {
      "Statement": [
        {
          "Action": [
            "acm:Describe*",
            "acm:Get*",
            "acm:List*",
            "acm:Request*",
            "acm:Resend*",
            "autoscaling:*",
            "cloudtrail:DescribeTrails",
            "cloudtrail:GetTrailStatus",
            "cloudtrail:ListPublicKeys",
            "cloudtrail:ListTags",
            "cloudtrail:LookupEvents",
            "cloudtrail:StartLogging",
            "cloudtrail:StopLogging",
            "cloudwatch:*",
            "codecommit:BatchGetRepositories",
            "codecommit:CreateBranch",
            "codecommit:CreateRepository",
            "codecommit:Get*",
            "codecommit:GitPull",
            "codecommit:GitPush",
            "codecommit:List*",
            "codecommit:Put*",
            "codecommit:Test*",
            "codecommit:Update*",
            "codedeploy:*",
            "codepipeline:*",
            "config:*",
            "ds:*",
            "ec2:Allocate*",
            "ec2:AssignPrivateIpAddresses*",
            "ec2:Associate*",
            "ec2:Allocate*",
            "ec2:AttachInternetGateway",
            "ec2:AttachNetworkInterface",
            "ec2:AttachVpnGateway",
            "ec2:Bundle*",
            "ec2:Cancel*",
            "ec2:Copy*",
            "ec2:CreateCustomerGateway",
            "ec2:CreateDhcpOptions",
            "ec2:CreateFlowLogs",
            "ec2:CreateImage",
            "ec2:CreateInstanceExportTask",
            "ec2:CreateInternetGateway",
            "ec2:CreateKeyPair",
            "ec2:CreateLaunchTemplate",
            "ec2:CreateLaunchTemplateVersion",
            "ec2:CreateNatGateway",
            "ec2:CreateNetworkInterface",
            "ec2:CreatePlacementGroup",
            "ec2:CreateReservedInstancesListing",
            "ec2:CreateRoute",
            "ec2:CreateRouteTable",
            "ec2:CreateSecurityGroup",
            "ec2:CreateSnapshot",
            "ec2:CreateSpotDatafeedSubscription",
            "ec2:CreateSubnet",
            "ec2:CreateTags",
            "ec2:CreateVolume",
            "ec2:CreateVpc",
            "ec2:CreateVpcEndpoint",
            "ec2:CreateVpnConnection",
            "ec2:CreateVpnConnectionRoute",
            "ec2:CreateVpnGateway",
            "ec2:DeleteFlowLogs",
            "ec2:DeleteKeyPair",
            "ec2:DeleteLaunchTemplate",
            "ec2:DeleteLaunchTemplateVersions",
            "ec2:DeleteNatGateway",
            "ec2:DeleteNetworkInterface",
            "ec2:DeletePlacementGroup",
            "ec2:DeleteSnapshot",
            "ec2:DeleteSpotDatafeedSubscription",
            "ec2:DeleteSubnet",
            "ec2:DeleteTags",
            "ec2:DeleteVpc",
            "ec2:DeleteVpcEndpoints",
            "ec2:DeleteVpnConnection",
            "ec2:DeleteVpnConnectionRoute",
            "ec2:DeleteVpnGateway",
            "ec2:DeregisterImage",
            "ec2:Describe*",
            "ec2:DetachInternetGateway",
            "ec2:DetachNetworkInterface",
            "ec2:DetachVpnGateway",
            "ec2:DisableVgwRoutePropagation",
            "ec2:DisableVpcClassicLinkDnsSupport",
            "ec2:DisassociateAddress",
            "ec2:DisassociateRouteTable",
            "ec2:EnableVgwRoutePropagation",
            "ec2:EnableVolumeIO",
            "ec2:EnableVpcClassicLinkDnsSupport",
            "ec2:GetConsoleOutput",
            "ec2:GetHostReservationPurchasePreview",
            "ec2:GetLaunchTemplateData",
            "ec2:GetPasswordData",
            "ec2:GetSecurityGroupsForVpc",
            "ec2:Import*",
            "ec2:Modify*",
            "ec2:MonitorInstances",
            "ec2:MoveAddressToVpc",
            "ec2:Purchase*",
            "ec2:RegisterImage",
            "ec2:Release*",
            "ec2:Replace*",
            "ec2:ReportInstanceStatus",
            "ec2:Request*",
            "ec2:Reset*",
            "ec2:RestoreAddressToClassic",
            "ec2:RunScheduledInstances",
            "ec2:UnassignPrivateIpAddresses",
            "ec2:UnmonitorInstances",
            "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
            "ec2:UpdateSecurityGroupRuleDescriptionsIngress",
            "elasticloadbalancing:*",
            "events:*",
            "iam:GetAccount*",
            "iam:GetContextKeys*",
            "iam:GetCredentialReport",
            "iam:ListAccountAliases",
            "iam:ListGroups",
            "iam:ListOpenIDConnectProviders",
            "iam:ListPolicies",
            "iam:ListPoliciesGrantingServiceAccess",
            "iam:ListRoles",
            "iam:ListSAMLProviders",
            "iam:ListServerCertificates",
            "iam:Simulate*",
            "iam:UpdateServerCertificate",
            "iam:UpdateSigningCertificate",
            "kinesis:ListStreams",
            "kinesis:PutRecord",
            "kms:CreateAlias",
            "kms:CreateKey",
            "kms:DeleteAlias",
            "kms:Describe*",
            "kms:GenerateRandom",
            "kms:Get*",
            "kms:List*",
            "kms:Encrypt",
            "kms:ReEncrypt*",
            "lambda:Create*",
            "lambda:Delete*",
            "lambda:Get*",
            "lambda:InvokeFunction",
            "lambda:List*",
            "lambda:PublishVersion",
            "lambda:Update*",
            "logs:*",
            "rds:Describe*",
            "rds:ListTagsForResource",
            "rolesanywhere:GetCrl",
            "rolesanywhere:GetProfile",
            "rolesanywhere:GetSubject",
            "rolesanywhere:GetTrustAnchor",
            "rolesanywhere:ListCrls",
            "rolesanywhere:ListProfiles",
            "rolesanywhere:ListSubjects",
            "rolesanywhere:ListTagsForResource",
            "rolesanywhere:ListTrustAnchors",
            "rolesanywhere:PutNotificationSettings",
            "rolesanywhere:ResetNotificationSettings",
            "route53:*",
            "route53domains:*",
            "ses:*",
            "sns:*",
            "sqs:*",
            "trustedadvisor:*"
          ],
          "Effect": "Allow",
          "Resource": "*"
        },
        {
          "Action": [
            "ec2:AcceptVpcPeeringConnection",
            "ec2:AttachClassicLinkVpc",
            "ec2:AttachVolume",
            "ec2:AuthorizeSecurityGroupEgress",
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:CreateVpcPeeringConnection",
            "ec2:DeleteCustomerGateway",
            "ec2:DeleteDhcpOptions",
            "ec2:DeleteInternetGateway",
            "ec2:DeleteNetworkAcl*",
            "ec2:DeleteRoute",
            "ec2:DeleteRouteTable",
            "ec2:DeleteSecurityGroup",
            "ec2:DeleteVolume",
            "ec2:DeleteVpcPeeringConnection",
            "ec2:DetachClassicLinkVpc",
            "ec2:DetachVolume",
            "ec2:DisableVpcClassicLink",
            "ec2:EnableVpcClassicLink",
            "ec2:GetConsoleScreenshot",
            "ec2:RebootInstances",
            "ec2:RejectVpcPeeringConnection",
            "ec2:RevokeSecurityGroupEgress",
            "ec2:RevokeSecurityGroupIngress",
            "ec2:RunInstances",
            "ec2:StartInstances",
            "ec2:StopInstances",
            "ec2:TerminateInstances"
          ],
          "Effect": "Allow",
          "Resource": [
            "*"
          ]
        },
        {
          "Action": "s3:*",
          "Effect": "Allow",
          "Resource": [
            "*"
          ]
        },
        {
          "Action": [
            "iam:GetAccessKeyLastUsed",
            "iam:GetGroup*",
            "iam:GetInstanceProfile",
            "iam:GetLoginProfile",
            "iam:GetOpenIDConnectProvider",
            "iam:GetPolicy*",
            "iam:GetRole*",
            "iam:GetSAMLProvider",
            "iam:GetSSHPublicKey",
            "iam:GetServerCertificate",
            "iam:GetServiceLastAccessed*",
            "iam:GetUser*",
            "iam:ListAccessKeys",
            "iam:ListAttached*",
            "iam:ListEntitiesForPolicy",
            "iam:ListGroupPolicies",
            "iam:ListGroupsForUser",
            "iam:ListInstanceProfiles*",
            "iam:ListMFADevices",
            "iam:ListPolicyVersions",
            "iam:ListRolePolicies",
            "iam:ListSSHPublicKeys",
            "iam:ListSigningCertificates",
            "iam:ListUserPolicies",
            "iam:Upload*"
          ],
          "Effect": "Allow",
          "Resource": [
            "*"
          ]
        },
        {
          "Action": [
            "iam:GetRole",
            "iam:ListRoles",
            "iam:PassRole"
          ],
          "Effect": "Allow",
          "Resource": [
            "arn:aws:iam::*:role/rds-monitoring-role",
            "arn:aws:iam::*:role/ec2-sysadmin-*",
            "arn:aws:iam::*:role/ecr-sysadmin-*",
            "arn:aws:iam::*:role/lambda-sysadmin-*"
          ]
        }
      ],
      "Version": "2012-10-17"
    },
    "VersionId": "v12",
    "IsDefaultVersion": true,
    "CreateDate": "2026-02-12T18:02:37+00:00"
  }
}

Version History (15 recorded)

Raw history
v12updated

scope changed, no action added or removed

a1227f8

SystemAdministrator - Policy Version v12

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

Feb 12, 2026

b4685bb

SystemAdministrator - Policy Version v10

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

Feb 12, 2026

3b2700a

SystemAdministrator - Policy Version v8

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

Jul 24, 2025

fcfd41a

Update detected

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

Feb 11, 2025

ffa3ea1

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.

Aug 24, 2020

a230159

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

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

Jun 19, 2019

0ddd009

First commit

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

Feb 10, 2019

ad4c2e8