AWS IAMロールのマネージドポリシーの上限拡張(20個)を確認してみた

AWS IAMロールのマネージドポリシーの上限拡張(20個)を確認してみた

AWS IAMでは、ロールにアタッチできるマネージドポリシーのデフォルトクォータが10個から20個へ引き上げられました。AWS公式発表を確認し、IAMのクォータ値と上限付近でのアタッチ結果をCLIで検証します。
2026.08.29

はじめに

2026年8月19日、AWSはIAMロールにアタッチできるマネージドポリシーのデフォルトクォータを10個から20個へ引き上げたと発表しました。

https://aws.amazon.com/about-aws/whats-new/2026/08/aws-iam-quota-increase/

この変更は既存のロールにも自動で反映されます。

本記事では、AWS CLIでクォータ値と、実際にアタッチできる個数を確認します。

検証内容

クォータ値

IAMのアカウントサマリーを取得しました。

aws iam get-account-summary

レスポンスから、今回の対象となる行だけを抜き出しました。

{
    "SummaryMap": {
        ...
        "AttachedPoliciesPerRoleQuota": 20,
        ...
    }
}

ロールあたりにアタッチできるマネージドポリシー数は20でした。

同じ値はバージニアのService Quotasからも確認できます。

aws service-quotas list-service-quotas --service-code iam --region us-east-1

取得した一覧には、次のクォータが含まれていました。

        {
            "ServiceCode": "iam",
            "ServiceName": "AWS Identity and Access Management (IAM)",
            "QuotaArn": "arn:aws:servicequotas::123456789012:iam/L-0DA4ABF3",
            "QuotaCode": "L-0DA4ABF3",
            "QuotaName": "Managed policies per role",
            "Value": 20.0,
            "Unit": "None",
            "Adjustable": true,
            "GlobalQuota": true,
            "UsageMetric": {
                "MetricNamespace": "AWS/Usage",
                "MetricName": "ResourceCount",
                "MetricDimensions": {
                    "Class": "None",
                    "Resource": "ManagedPoliciesPerRole",
                    "Service": "IAM",
                    "Type": "Resource"
                },
                "MetricStatisticRecommendation": "Maximum"
            },
            "Period": {
                "PeriodValue": 5,
                "PeriodUnit": "MINUTE"
            },
            "QuotaAppliedAtLevel": "ACCOUNT",
            "QuotaContext": {
                "ContextScope": "RESOURCE",
                "ContextScopeType": "AWS::IAM::Role",
                "ContextId": "*"
            },
            "Description": "The maximum number of IAM managed policies that you can attach to an IAM role."
        },

Managed policies per role の値も20でした。アカウントサマリーの AttachedPoliciesPerRoleQuota と、Service Quotas の Managed policies per role は同じクォータを指します。次の節のエラーに現れる PoliciesPerRole も同じです。

アタッチ数

検証用に新規作成したロールへ、21個のAWS管理ポリシーを1個ずつ順にアタッチします。上限の1個超で止まるかを確かめるため、21個用意しました。

aws iam attach-role-policy --role-name example-role --policy-arn <ポリシーARN>

20個目の AmazonRoute53ReadOnlyAccess までは成功し、その時点でロールには次のポリシーがアタッチされていました。

一覧の並びはAPIの返却順で、アタッチした順序とは一致しません。

アタッチされた20個のAWS管理ポリシー
{
    "AttachedPolicies": [
        {
            "PolicyName": "AWSCloudFormationReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonKinesisReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonKinesisReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonSNSReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonSNSReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonEC2ReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess"
        },
        {
            "PolicyName": "AWSOrganizationsReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AWSOrganizationsReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonECSTaskExecutionRolePolicy",
            "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
        },
        {
            "PolicyName": "AmazonSSMReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess"
        },
        {
            "PolicyName": "CloudWatchReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess"
        },
        {
            "PolicyName": "ReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/ReadOnlyAccess"
        },
        {
            "PolicyName": "IAMReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/IAMReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonVPCReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonVPCReadOnlyAccess"
        },
        {
            "PolicyName": "ViewOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess"
        },
        {
            "PolicyName": "AmazonRDSReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonRDSReadOnlyAccess"
        },
        {
            "PolicyName": "SecurityAudit",
            "PolicyArn": "arn:aws:iam::aws:policy/SecurityAudit"
        },
        {
            "PolicyName": "AmazonAPIGatewayInvokeFullAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonAPIGatewayInvokeFullAccess"
        },
        {
            "PolicyName": "AmazonDynamoDBReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonS3ReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonRoute53ReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonRoute53ReadOnlyAccess"
        },
        {
            "PolicyName": "AmazonSQSReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AmazonSQSReadOnlyAccess"
        },
        {
            "PolicyName": "AWSLambda_ReadOnlyAccess",
            "PolicyArn": "arn:aws:iam::aws:policy/AWSLambda_ReadOnlyAccess"
        }
    ]
}

21個目に AmazonEventBridgeReadOnlyAccess を指定すると失敗し、次のエラーが返りました。

aws: [ERROR]: An error occurred (LimitExceeded) when calling the AttachRolePolicy operation: Cannot exceed quota for PoliciesPerRole: 20

まとめ

IAMロールにアタッチできるマネージドポリシーの上限は、デフォルトで20個になりました。これまで10個に収まらず引き上げを申請していたケースでは、その手続きが不要になりそうです。

IAMのクォータの一覧は、IAMユーザーガイドにまとまっています。

https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html

Service Quotasで最大25個まで申請できますが、運用負荷を踏まえると、デフォルトの20個に収める利用をおすすめします。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事