3秒でわかる
AWS アカウント作成時に生まれる最上位の権限を持つユーザー。日常の作業には使わず、封印して IAM ユーザーに委ねるのが原則です。
もう少し詳しく
どういうものか
ルートユーザーは、AWS アカウントを作ったときのメールアドレスに紐づく、そのアカウントで唯一の最上位ユーザーです。IAM ポリシーによる制限を受けず、アカウント内のあらゆる操作ができます。IAM ユーザーやロールが「与えられた権限の範囲で動く」のに対し、ルートユーザーは権限そのものの外側にいます。
Linux の root も同じく制限を受けない管理者ですが、別物です。AWS のルートユーザーはアカウント全体の所有者であり、Linux の root は 1 台のサーバー内の管理者です。
なぜ必要か
権限を制限できないということは、認証情報が漏れた時点でアカウントごと乗っ取られるということです。だからこそ AWS はルートユーザーでしかできない操作を意図的に少数に絞っています。アカウントの解約、請求先情報の変更、サポートプランの変更、IAM ユーザーへの請求情報アクセスの許可、一部リージョンの有効化などがそれにあたります。逆に言えば、これ以外の日常業務にルートユーザーを使う理由はありません。
具体例
初期設定でやることは下記の順です。
1. ルートユーザーに MFA を設定する
2. 管理者権限を持つ IAM ユーザーを作る
3. ルートユーザーのアクセスキーがあれば削除する
4. 以後はログイン用ページから IAM ユーザーでサインインするアクセスキーが残っていないかは CLI でも確認できます。
aws iam get-account-summary --query 'SummaryMap.AccountAccessKeysPresent'返り値が 0 なら、ルートユーザーのアクセスキーは存在しません。1 なら即座に削除対象です。
つまずきやすいところ
学習を始めたばかりの段階では、ルートユーザーのままコンソールを触り続けてしまいがちです。作業自体は動くので問題に気づけません。事故が起きるのは、そのままアクセスキーを発行して手元のスクリプトに書き、リポジトリに push してしまったときです。ルートのキーは無効化しても被害範囲が広く、IAM ユーザーのキーのように「そのユーザーだけ止める」ができません。
もう 1 つの落とし穴は、ルートユーザーのメールアドレスを個人アドレスにしてしまうことです。担当者が退職するとアカウントの復旧手段が失われます。
似た用語との違い
| 用語 | 範囲 | 制限 |
|---|---|---|
| ルートユーザー | AWS アカウント全体 | ポリシーで制限できない |
| IAM ユーザー | 付与された権限の範囲 | ポリシーで制限できる |
| IAM ロール | 一時的に引き受ける権限 | 有効期限あり |
覚え方
金庫の鍵ではなく、金庫を作った権利書。普段は使わず、しまっておくものです。