AWSの各種ポリシーで定義されるPrincipalの「root」の意味について

スポンサーリンク
Security Specialty
スポンサーリンク

はじめに

AWSのポリシーにおいて、Principal要素に”arn:aws:iam::[Account ID]:root”と指定するケースがあります。

この指定を誤解して解釈してしまうことがあるため、正しい意味と使用方法を解説します。ぜひ参考にして、誤解を防いでください。

rincipal要素のarn:aws:iam::[Account ID]:root の意味

arn:aws:iam::[Account ID]:rootの意味は 「指定されたAWSアカウント全体(IDが[Account ID]のアカウント内のすべてのIAMユーザーやロール)」に対してアクセス許可を与えることを意味します。

例)

{
    "Sid": "FullAccessToAccountPrincipals",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::[Account ID]:root"
    },
    "Action": [
        "*"
    ],
    "Resource": "*"
}

このポリシーでは、アカウント内のすべてのIAMユーザーやロールが、指定されたリソースに対してすべての操作(Action: “*”)を実行できるようになります。

アカウントのルートユーザを指定する場合は?

アカウントのルートユーザーだけに限定して許可を与えたい場合は、Condition要素を使用して制限を加える必要があります。

例)

{
    "Sid": "AllowRootUserOnly",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::[Account ID]:root"
    },
    "Action": "*",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:PrincipalArn": "arn:aws:iam::[Account ID]:root"
        }
    }
}

このポリシーでは、aws:PrincipalArn条件キーを使用して、指定されたアカウントのルートユーザーだけにアクセスを制限しています。

まとめ

Principal要素の"arn:aws:iam::[Account ID]:root"は、一見するとルートユーザーだけを対象にしているように見えますが、実際にはそのアカウント全体を指定しています
この違いを正しく理解し、必要に応じて条件キーを追加することで、意図したアクセス制御を実現してください。

タイトルとURLをコピーしました