ルートユーザーとは

ルートユーザー(AWSアカウントのルートユーザー)とは、AWSアカウントを最初に作成した際に作られる、そのアカウント内のすべてのAWSサービスとリソースに対して「完全かつ無制限のアクセス権限」を持つ特権アカウントのことです。アカウント作成時に登録したメールアドレスとパスワードを使用してサインインします。ルートユーザーの権限はIAM(Identity and Access Management)ポリシーによって制限することができず、サーバーの削除、データベースの初期化、アカウントの解約、請求情報の変更など、あらゆる破壊的・致命的な操作を実行できてしまいます。そのため、AWSのセキュリティベストプラクティスでは、日常的な業務や開発作業においてルートユーザーを絶対に使用してはならず、強力な保護策を講じた上で「封印」しておくことが強く推奨されています。
具体例
ルートユーザーを現実世界に例えると、企業の「実印」や「代表取締役の全権委任状」のようなものです。実印があれば、会社の資産の売却、多額の借入れ、会社の解散など、あらゆる手続きができてしまいます。そのため、普段の業務(書類の承認や経費の精算など)で実印を持ち歩くことは絶対にしませんし、金庫の奥深くに厳重に保管するはずです。普段の業務には、用途が限定された「認印」や、担当者個人の権限(IAMユーザーやIAMロール)を使用します。
もしルートユーザーのメールアドレスとパスワードが第三者に漏洩した場合、悪意のある攻撃者は大量の高額なサーバーを勝手に起動して仮想通貨のマイニングを行ったり、企業の大切なデータを全て消去・身代金要求したりすることが可能です。アカウントの所有者がシステムから締め出され、数千万円規模の請求が発生する最悪の事態になり得るため、実印と同等かそれ以上の厳重な管理が求められます。
もう少し詳しく
ルートユーザーの保護策として最も重要かつ必須とされているのが「多要素認証(MFA)」の有効化です。MFAを設定することで、パスワードが万が一漏洩しても、手元のスマートフォンなどの物理的なデバイスで生成されるワンタイムパスワードがなければログインできなくなり、セキュリティが飛躍的に向上します。また、ルートユーザーのパスワードは非常に長く複雑なものに設定し、アクセスキー(プログラムからAWSを操作するためのキー)は絶対に作成しない(すでに存在する場合は即座に削除する)ことが推奨されています。
ルートユーザーを封印した後の日常的なAWSの操作は、どうすればよいのでしょうか。正解は、「管理者権限(AdministratorAccess)を持たせた個別のIAMユーザーを新たに作成し、そのIAMユーザーでサインインして日常業務を行う」ことです。仮にこのIAMユーザーの認証情報が漏洩したとしても、ルートユーザーが安全であれば、そのIAMユーザーの権限を即座に無効化し、被害を食い止めることができます。
ただし、ごく一部の特定の操作に限っては、ルートユーザーでしか実行できないものがあります。例えば、「AWSアカウントの解約(閉鎖)」「AWSサポートプランの変更」「支払い方法(クレジットカード情報)の変更」「IAMユーザーの請求情報へのアクセス権のオン・オフの切り替え」「Amazon CloudFrontのキーペア作成」などがこれに該当します。これらの作業を行う時だけ、金庫から実印を取り出すように、ルートユーザーで一時的にログインして操作し、完了後は直ちにログアウトする必要があります。
試験でのポイント
AWS認定クラウドプラクティショナー(CLF-C02)試験において、ルートユーザーに関するセキュリティのベストプラクティスは頻出問題です。
最もよく問われるのは「日常的なタスクにルートユーザーを使用してはならない」という原則です。問題文で「日常的な管理作業をルートユーザーで行っている」といった選択肢が出た場合、それは明確な誤り(不正解の選択肢)です。
また、「ルートユーザーのアクセスキーは作成せず、存在する場合は削除する」「ルートユーザーには必ず多要素認証(MFA)を有効化する」という対策も必ず出題されます。
さらに、「ルートユーザーでしか実行できない操作は何か?」という知識問題も出題される傾向があります。特に「AWSアカウントの解約」や「サポートプランの変更」はルートユーザーのみが実行可能であることを覚えておきましょう。対比として、EC2インスタンスの作成やS3バケットの削除などはIAMユーザーでも実行可能であるため、ルートユーザーの出番ではありません。
関連する用語
関連用語として、ルートユーザーの代わりに日常業務で使用すべき「IAM」、アカウント乗っ取りを防ぐための「多要素認証」、アカウント内の権限を最小限に抑える「最小権限の原則」があります。これらはセットで理解しておくべきセキュリティの基本概念です。