AWS アカウント作成後にやるべき初期設定10個
概要
AWS アカウントを新規作成した直後は、ルートユーザーがメールアドレスとパスワードだけで全権限を持つ「無防備な状態」です。ここで初期設定を怠ると、アクセスキー漏洩による不正利用や、設定ミスによる高額請求といった事故につながります。
この記事では、アカウント作成直後にやっておくべき初期設定を10個、ハンズオン形式でまとめます。すべて AWS の公開情報・一般的なベストプラクティスに基づく内容です。コンソールの画面遷移は変わりやすいため、要点と CLI の確認コマンドを中心に記載しています。
環境
- 新規作成した AWS アカウント(ルートユーザーでログインできる状態)
- AWS CLI v2(IAM ユーザー作成後に使用)
- 例示リージョン:
ap-northeast-1(東京)
aws --version # aws-cli/2.x.x ...
なぜ初期設定が必要か
初期設定を飛ばすと、次のような事故が起きやすくなります。
- ルートのアクセスキーが漏れて、EC2 を大量に立てられる(マイニング悪用など)
- MFA 未設定でアカウントを乗っ取られる
- 予算アラート未設定で、気づけば数十万円規模の請求が来る
- 監査ログが無く、インシデント時に原因を追えない
これらはすべて「最初の30分」で大部分を防げます。
やるべき初期設定10個
1. ルートユーザーに MFA を設定する
ルートは全権限を持ち削除もできないため、最優先で MFA(多要素認証)を有効化します。コンソール右上のアカウント名 →「セキュリティ認証情報」→「多要素認証(MFA)」から、認証アプリ(TOTP)または FIDO2 セキュリティキーを登録します。
2. ルートユーザーのアクセスキーを作らない(あれば削除)
ルートのアクセスキーは事故の温床です。日常操作には絶対に使わず、既に発行されていれば「セキュリティ認証情報」→「アクセスキー」から削除します。以降の操作はすべて IAM ユーザーまたは IAM Identity Center 経由で行います。
3. 管理用の IAM ユーザー(または IAM Identity Center)を作る
日常の管理作業用に、ルートとは別の ID を用意します。単一アカウントなら IAM ユーザー、複数アカウント運用に発展させるなら IAM Identity Center が推奨です。
aws iam create-group --group-name Admins aws iam attach-group-policy \ --group-name Admins \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess aws iam create-user --user-name admin-user aws iam add-user-to-group --user-name admin-user --group-name Admins
AdministratorAccess は強力なので、実運用では最小権限へ絞るのが原則です(項目9)。
4. IAM ユーザーにも MFA を設定する
ルートだけでなく、日常使う ID こそ守る対象です。作成した管理ユーザーにも MFA を必須にします。
5. パスワードポリシーを設定する
aws iam update-account-password-policy \ --minimum-password-length 14 \ --require-symbols \ --require-numbers \ --require-uppercase-characters \ --require-lowercase-characters \ --max-password-age 90 \ --password-reuse-prevention 5
6. 請求アラート(AWS Budgets)を設定する
「Billing preferences」で請求アラートの受信を有効化し、「AWS Budgets」で月額予算を作成して閾値超過でメール通知を受け取ります。学習用でも少額の閾値を置いておくと、想定外課金にすぐ気づけます。
7. Cost Explorer を有効化する
コストの内訳を可視化できるようにします。有効化直後はデータ蓄積に時間がかかるため、早めにオンにしておくのがポイントです。
8. CloudTrail を有効化する
「誰が・いつ・何をしたか」を記録する監査ログです。マルチリージョンの証跡を1つ作成し、ログ保存用の S3 バケットは非公開のままにします。
9. 最小権限を意識した権限設計に切り替える
初期は AdministratorAccess で動作確認しつつ、実運用前に権限を絞ります。用途別に IAM ロール/グループを分け、アプリからの利用は恒久アクセスキーではなく IAM ロール(EC2 インスタンスプロファイル、ECS タスクロール)を使います。一時的な権限には STS の一時認証情報を使います。「人間は SSO、マシンはロール、恒久キーは極力持たない」が基本方針です。
10. S3 のパブリックアクセスをアカウント単位でブロックする
S3 の公開設定ミスは情報漏洩の典型例です。アカウント全体で公開をブロックしておきます。
aws s3control put-public-access-block \ --account-id 123456789012 \ --public-access-block-configuration \ BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true
123456789012 は自分のアカウント ID に置き換えます(例示用の値です)。
確認方法
# MFA デバイスの割り当て確認 aws iam list-virtual-mfa-devices # パスワードポリシー確認 aws iam get-account-password-policy # 認証情報レポートでルートのキー有無・MFA を確認 aws iam generate-credential-report aws iam get-credential-report --query Content --output text | base64 -d
認証情報レポートで、ルートユーザー行のアクセスキーが false、MFA が true になっていることを確認します。
注意点
AdministratorAccessを付けた ID は「作って終わり」にせず、運用開始前に最小権限へ移行する- MFA デバイスのバックアップ(リカバリコード・予備デバイス)を保管する。紛失すると復旧に時間がかかる
- 要件(コンプライアンス・組織規模)に応じて GuardDuty / Security Hub / Config / Organizations などの追加設定を検討する
まとめ
AWS アカウント作成直後にやるべきことは、突き詰めると「ルートを守る・別 ID で運用する・課金と操作を可視化する・公開事故を防ぐ」の4本柱です。最初の30分で済む作業がほとんどなので、新規アカウントを作ったら、EC2 を立てる前にまずここを固めておきましょう。
