📘

arn:aws:iam::123456789012:rootがアカウント全体を指す話

2024/04/07に公開

先にまとめ

IAMポリシーの中のプリンシパルでrootで書くけどルートアカウントだけじゃない、という話がたまに出てきます(どこで、とは言わないが)。理解が曖昧だったのでドキュメントを確認しました。

  • IAMポリシーのリソースベースポリシーでは"Principal": { "AWS": "arn:aws:iam::123456789012:root" }アカウント全体を指す
    • "Principal": { "AWS": "123456789012" }と同じ
  • リソースポリシー以外ではルートアカウントを指す
  • 余談: AWSドキュメントの記述が変わったと思ったらアーカイブを見るとよい

ドキュメント

リソースベースポリシーでのPrincipalはアカウント全体

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts

AWS アカウント を指定するときは、アカウント ARN (aarn:aws:iam::account-ID:root、または "AWS": プレフィックスの後に ID を付けた短縮形を使用できます。

以下2つではどちらもアカウント全体を対象にしています。(=rootだけどルートだけじゃなくて全体)

"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
"Principal": { "AWS": "123456789012" }

rootユーザだけにポリシー適用する

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn

  • AWS アカウント ルートユーザー — リクエストコンテキストには、条件キー aws:PrincipalArn にarn:aws:iam::123456789012:rootが含まれる
  • ルートユーザーARNはarn:aws:iam::123456789012:root
  • ルートユーザーARN を aws:PrincipalArn 条件キーの値として指定すると、アクセス許可が AWS アカウント のルートユーザーのみに制限される
    • リソースベースポリシーのプリンシパル要素でルートユーザーARN を指定して、AWS アカウントに権限を委任することとは異なる

ルートアカウントだけに設定したいときはConditionを使えばよいです。

            "Condition": {
                "StringEquals": {
                    "aws:PrincipalArn": "arn:aws:iam::123456789012:root"
                }
            }

追記

aws:PrincipalType : “Account”も使えると教えてもらいました。

https://x.com/non____97/status/1776784636045300063?conversation=none

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse

余談 ドキュメントの変更を確認する

過去(2020年ごろ)のAWS documentからコピペしたはずの自分のメモを見ているとこのようになっていました。

the account itself => アカウントそのもの

The AWS account - the account itself:
arn:aws:iam::123456789012:root

上記を覚えていたのですが、改めてドキュメントを見ると違うようです・・・?

The AWS account displays the following:となっていますね。(確かにこちらのほうが文章として自然なんですが)。the account itselfではなかったのか?と思って調べました。

ドキュメントのアーカイブを調べる

アーカイブを探してみてみると、確かに過去にはメモの通りでした。更新されたようですね。

アーカイブを見たい人はこちら(読み込みに数十秒くらいかかるかも)
https://web.archive.org/web/20200427194030/https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html

Discussion