導入
AWSを使い始めるときにまず作る「AWSアカウント」には、実は絶大な権限を持つ特別なユーザーが1つだけ最初から存在します。これを普段使いしないことが、AWSの鉄則です。
説明
AWSアカウントは、AWSとの契約・請求(支払い)の単位です。アカウントを作成すると、その中にAWSの全リソースを扱えます。
アカウント作成時に自動的にできあがるのがルートユーザーです。ルートユーザーは、アカウント作成に使ったメールアドレスとパスワードでサインインし、請求情報の変更やアカウントの解約など、他のどのユーザーにもできない特別な操作まで含めて全権限を持っています。
だからこそAWSは、ルートユーザーは初期設定以外では使わず、日常の作業は権限を限定した「IAMユーザー」や「IAMロール」で行うことを強く推奨しています(IAMの詳細は第7章で扱います)。ルートユーザーを守るために最初にやるべきことは、次の2つです。
- 多要素認証(MFA)を有効化する … パスワードに加えて、スマートフォンアプリ等で生成する確認コードも要求することで、パスワード漏えいだけでは侵入されないようにする。
- 強力なパスワードを設定し、アクセスキーを作らない … ルートユーザーのアクセスキー(プログラムからの操作用の鍵)は原則作成しない。
とはいえ、ルートユーザーを完全に封印できるわけではありません。ルートユーザーでしかできない操作がいくつかあり、そのときだけ金庫から鍵を出して使います。試験でもよく問われるので、代表例を押さえましょう。
- AWSアカウントの解約(クローズ)
- サポートプランの変更(Developer・Business などへの変更)
- アカウント名・ルートユーザーのメールアドレス・パスワードの変更
- IAMユーザーに請求情報へのアクセスを許可する設定
- S3バケットのMFA Delete の有効化、一部のリージョンの有効化・無効化
具体例
3人のスタートアップが、ルートユーザーのメールとパスワードをチャットで共有し、全員がそれでログインして作業していました。ある日、メンバーのPCがマルウェアに感染し、その認証情報が流出。気づいたときには高性能なサーバーが大量に不正起動され、数十万円の請求が発生していました。ルートには全権限があるため、攻撃者はやりたい放題だったのです。
正しい構えはこうです。
- ルートユーザーにMFAを設定し、パスワードは金庫にしまうように普段は一切使わない
- メンバー3人には、それぞれ必要な権限だけを持つIAMユーザーを発行する
- もし1人分の鍵が漏れても、その人の権限の範囲しか被害が及ばず、すぐ無効化できる
「全権の鍵を全員で共有」から「限定した鍵を1人1本」へ——これがルートユーザーを守る第一歩です。
読んでみよう
「ルートユーザー=金庫の鍵、IAMユーザー=日々使う社員証」とイメージすると、なぜ使い分けるべきかが直感的に分かります。