LoginSignup
1
0

More than 3 years have passed since last update.

AWS ルートユーザARNの扱いがよくわからなかったので整理する

Last updated at Posted at 2020-10-28

はじめに

AWSのIAMポリシーをいじっていていたときに、「ルートユーザのARN」が示すものがよくわからなくなってしまったので、整理して残しておきたいと思います。

結論

ルートユーザのARNは、使用するポリシーやポリシー内のどこで使用されるかによって扱いが異なります。

通常は・・・

アカウント内のIAMエンティティを示します。IAMユーザ、IAMロールですね。

例外として・・・

AWS Organizationsにて、SCPで利用される場合、アカウントのルートユーザ自体を示します。

ルートユーザのARN

ルートユーザのARNは以下のように表されます。

arn:aws:iam::123456789012:root

ルートユーザのARNの使用例

Principalの指定に使用する

例えば、IAMロールにスイッチロールする場合、IAMロールの信頼ポリシーでは、以下のようにスイッチ元のAWSアカウントを"Principal"に指定するかと思います。

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Effect": "Allow",
          "Principal": { "AWS": "arn:aws:iam::123456789012:root" },
          "Action": "sts:AssumeRole"
      }
  ]
}

この場合は、アカウントID 123456789012のアカウント内のIAMユーザは、上記信頼ポリシーが設定されたIAMロールにスイッチロールすることができます。
PrincipalにルートユーザのARNが指定されており、ここでARNが示すものは「アカウントID 123456789012のアカウント内のIAMユーザ、ロール」です。

余談ですが、ルートユーザはスイッチロールができません。
コンソールでのロールの切り替えに関する主要事項

AWS アカウントのルートユーザー としてサインインすると、ロールを切り替えることはできません。IAM ユーザーとしてサインインしているときに、ロールを切り替えることができます。

あと、
ロールからロールへのスイッチは「ロールの連鎖(Role chaining)」と言うそうです。かっこいい。

IAMロールの信頼ポリシーで使用する以外にも、Principalの指定で使用されるケースとしてはS3バケットへのアクセス許可などがあります。
追加条件付きでの複数のアカウントへのアクセス許可の付与

AWS Organizations SCPに使用する

Organizationsを利用している場合、SCPを利用することでルートユーザによる操作も制限することができます。
以下の例の場合、SCPとしてポリシーが適用されたアカウントのルートユーザはEC2に関する操作ができなくなります。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "RestrictEC2ForRoot",
      "Effect": "Deny",
      "Action": [
        "ec2:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringLike": {
          "aws:PrincipalArn": [
            "arn:aws:iam::*:root"
          ]
        }
      }
    }
  ]
}

ConditionにてルートユーザのARNが指定されていますが、ここでARNが示すものは「アカウントのルートユーザのみ」です。

このように、ルートユーザのARNは使用されるされるポリシーによって扱いが異なっています。

なぜ異なるのか(想像)

あくまで想像ですが・・・
AWS Organizationsが登場するまでは、ルートユーザは制限なく何でもできるユーザであり、逆に制限をかけるという発想がなく、IAMエンティティをまとめて表現するためにルートのARNが利用されていたのではないでしょうか。
(Organizationsが登場したとき、僕はまだ社会人1年目でAWSの存在すら知らなかったです...)
ところが、Organizationsの登場によりルートユーザにも制限をかけたいシーンが出てきたために、SCPでは例外的にルートユーザを示すようになっているのではないかと思います。

まとめ

ルートユーザのARNは使用されるにポリシーによって扱いが異なる、と言うお話でした!

初めてこのような記事を書くので、読みづらい部分が多いかと思いますが、どなたかのお役に立てれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0