AWS CLF(Cloud Practitioner)対策
ルートユーザーとMFA
このレッスンを終えると、ルートユーザーを何に使い何に使わないかを説明でき、多要素認証(MFA)を含むアカウント保護のベストプラクティスを答えられるようになります。
自分でサーバーを1台建てるなら
Linux を入れた直後、まず何をしたでしょうか。root で全部やり続けるのは危ないので、作業用のユーザーを作り、必要なときだけ sudo を使い、root の直接ログインを止めた。パスワードだけでは心もとないので公開鍵認証にした。おそらくそんな流れだったはずです。
AWS のルートユーザーは、この root と同じ位置にいます。アカウントを作ったときのメールアドレスでログインする、そのアカウントでできないことが何もない身分です。請求情報も見られますし、アカウントの解約もできます。だから扱い方も root と同じ、「普段は使わない」が答えになります。
ルートユーザーでしかできないこと
完全に封印できるわけではなく、ルートでしか実行できない操作が少数あります。試験ではこの区別が問われます。
| 操作 | ルートが必要か |
|---|---|
| AWS アカウントの解約 | 必要 |
| アカウント名やルートのメールアドレス、支払い方法の変更 | 必要 |
| AWS サポートプランの変更 | 必要 |
| IAM ユーザーによる請求情報へのアクセス許可の有効化 | 必要 |
| EC2 の起動、S3 バケットの作成、日々の運用 | 不要 |
日常の作業は、権限を絞った IAM ユーザーかロールで行います。
最初にやる5つ
アカウントを作ったら、順に次を行うのがベストプラクティスとして問われます。
- ルートユーザーに MFA を有効化する
- ルートユーザーのアクセスキーを作らない(既にあるなら削除する)
- 管理作業用の IAM ユーザーを作り、以後はそちらでログインする
- 強力なパスワードポリシーを設定する
- AWS CloudTrail を有効にして、誰が何をしたかを記録に残す
このうち試験で最も出るのは1と2です。とくに「ルートユーザーのアクセスキー」は、存在してよいものではないと覚えてください。
MFA とは何か
多要素認証は、知っているもの(パスワード)に持っているもの(スマートフォンのアプリやセキュリティキー)を足して本人確認を強くする仕組みです。パスワードが漏れても、手元の端末が無ければログインできません。
AWS で使える形は主に3つあります。スマートフォンのアプリで6桁のコードを出す仮想 MFA デバイス、USB などのハードウェアセキュリティキー(FIDO)、専用のハードウェアトークンです。どれを使うかより、「ルートと特権 IAM ユーザーには必ず付ける」という方針のほうが問われます。
試験ではこう出る
- 「アカウントのセキュリティを高めるために最初にすべきことは」→ ルートユーザーの MFA 有効化。監査ログの有効化やパスワード変更も無害な選択肢として並びますが、最初はここです
- 「日々の管理作業はどのアカウントで行うべきか」→ 権限を絞った IAM ユーザー。ルートで運用する選択肢は必ず誤り
- 「パスワードが漏洩しても不正ログインを防ぎたい」→ MFA。パスワードの定期変更やパスワードの長さ強化は、要件を満たしません
- 「サポートプランを Business に変更したい。誰が実行できるか」→ ルートユーザー
- 「MFA の追加料金は」→ 仮想 MFA の利用に AWS 側の追加料金はかかりません。物理デバイスは購入費がかかります
- 「ルートのアクセスキーをローテーションすべきか」→ ローテーションではなく削除が正解の方向です
まとめ
- ルートユーザーは制限のない最上位の身分。普段の運用には使わない
- ルートが要るのは解約・支払い情報・サポートプラン変更など少数の操作だけ
- 最初にやることはルートへの MFA 有効化とアクセスキーの削除
- 日常は最小権限の IAM ユーザーかロールで行う
- MFA は知っているものと持っているものを組み合わせ、パスワード漏洩の被害を止める
復習ミニクイズ
新しく作成した AWS アカウントのセキュリティを高めたいと考えています。ベストプラクティスとして最初に行うべきことはどれですか。