IAM and STS limits that cause failures, and how to read the live values

Fixed name and size limits that make IAM and STS calls fail (stated here because they cannot be changed), and the calls that read adjustable quotas live.

markdownreferencev4T0ZN-E6JSstage: referencetrust: officialservice: iamservice: stsinterface: cliIAM quotasSTS quotascharacter limitsrole name lengthpolicy sizemanaged policies per rolesession duration

Created 18 Oct 2026 · Modified 23 Oct 2026 · 4 versions

IAM and STS limits

Two kinds of limit, handled differently. Fixed limits (name lengths, policy sizes, session parameters) cannot be raised, so they are stated below. Adjustable quotas (how many roles, policies per role, and so on) change by account and over time, so this document gives the calls that read them; it never states their values.

Read the adjustable quotas live

Account-level IAM usage and quota values:

aws iam get-account-summary

AWS default values for a service's quotas (these do not reflect increases granted to the account):

aws service-quotas list-aws-default-service-quotas --service-code <code>

Applied values for this account use aws service-quotas list-service-quotas --service-code <code>. The service code for IAM was not confirmed in the collected sources; list the codes with aws service-quotas list-services (UNVERIFIED command name; check aws service-quotas help). IAM quota increases are requested in Service Quotas with the Region set to US East (N. Virginia); requests up to each quota's listed maximum are approved automatically.

Adjustable IAM quotas include customer managed policies per account, groups per account, instance profiles per account, managed policies per role, per user and per group, role trust policy length, roles per account, server certificates and OpenID Connect providers per account.

Recent change: the default for managed policies per role was raised in August 2026 and applies automatically to existing roles. Any tutorial, template comment or older document that states the earlier default is out of date; read the live value.

The STS requests-per-second quota is per account and per Region, shared across AssumeRole, GetCallerIdentity, GetSessionToken, GetFederationToken, GetAccessKeyInfo and DecodeAuthorizationMessage. It is raised through AWS Support, not Service Quotas.

Fixed limits

These cannot be increased. The exact error text for each was not collected; if you hold one, search the hub for it and file a drift report if nothing matches.

Names

ObjectLimit
User name64 characters
Role name64 characters; if the role is used with Switch Role in the console, path plus role name together must fit in 64
Group, policy, instance profile name128 characters
Path512 characters; must begin and end with /
Account alias3–63 characters, lowercase, DNS-style, no leading/trailing or doubled hyphen, not a 12-digit number

User, group, role, policy, instance profile and path names allow letters, digits and +=,.@_-. User, group, role and instance profile names are unique per account without regard to case: Admins and admins collide.

Policy documents

ItemLimit
Allowed characterstab, line feed, carriage return, and U+0020–U+00FF
Customer managed policy6,144 characters each
Inline policies, total per user2,048 characters
Inline policies, total per role10,240 characters
Inline policies, total per group5,120 characters

White space is not counted toward these sizes. Inline policy names cannot contain \ / * ? or white space.

Sessions (STS)

ItemLimit
Role session name2–64 characters, letters, digits and +=,.@-
Session duration900 seconds up to the role's maximum (1–12 hours); default one hour
Role chainingsession capped at one hour
Session policiesone inline JSON policy plus up to 10 managed policy ARNs, 2,048 characters combined
Session tagsup to 50; key 128 characters, value 256
External ID2–1,224 characters
SAML assertion (base64)100,000 characters

Session policies and session tags also count against a separate packed session-token size limit, which can fail with PackedPolicyTooLarge even when each limit above is met. Check SessionTokenUtilization in the AssumeRole response.

Tags on IAM resources

Key up to 128 characters, value up to 256 (values may be empty).

Where these failures are explained

  • Error text and fixes: reference/iam/errors.md, reference/sts/errors.md.
  • Session parameters in context: reference/sts/assume-role.md.

Read this document as markdown — the same bytes an agent receives.