スイッチロールを可能とするユーザーを OU 配下に限定する方法

スイッチロールを可能とするユーザーを OU 配下に限定する方法

aws:PrincipalOrgID 条件キーや、aws:PrincipalOrgPaths 条件キーを使用することで、スイッチロールを可能とする IAM ユーザーを OU 配下のアカウントに限定することができます。
Clock Icon2025.03.12

困っていること

スイッチロールを可能とするユーザーを特定の OU 配下に限定したいです。

何かいい方法はありますか?

どう解決すればいいの?

aws:PrincipalOrgID 条件キーを使用することで、AWS Organizations の組織ルート内のアカウントからのアクセスのみに制限することができます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "o-<OrgID>"
                }
            }
        }
    ]
}

また、条件キーとして aws:PrincipalOrgPaths を使用して、組織ルート、または、OU(組織単位)内のアカウントからのアクセスのみに制限することができます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:PrincipalOrgPaths": "o-<OrgID>/ou-<OUID>/"
                }
            }
        }
    ]
}

なお、ワイルドカードを使いたい場合は、条件演算子として StringLike を使用します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ForAnyValue:StringLike": {
                    "aws:PrincipalOrgPaths": "o-<OrgID>/*/"
                }
            }
        }
    ]
}

補足

上記の信頼ポリシーを設定した場合に下記の警告が出現しますが、実際には Condition 要素で制限がかかっているため、問題はありません。

2025-03-11_08h57_08

参考資料

AWS グローバル条件コンテキストキー - AWS Identity and Access Management

IAM JSON ポリシー要素: 条件演算子 - AWS Identity and Access Management

AWS Organizations の用語と概念 - AWS Organizations

IAM プリンシパルの AWS Organization を使用して、AWS リソースへのアクセスコントロールを簡単に

単一値と複数値のコンテキストキー - AWS Identity and Access Management

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.