はじめに
この記事ではIaC(Infrastructure As Code) ツールである Terraform を用いて、AWSによるインフラ構築を行うための事前準備について解説します。
前提環境
- Windows11
- WSL2( Ubuntu24.04 )
記事の内容
AWSで作業を始める前に、事故が起きない・起こさない土台を作る。
具体的には以下5つを完了させる
- アカウント(ルートユーザー)作成
- ルートユーザーにMFA設定
- IAMユーザーの作成(MFA設定)
- AWS Budgets で予算設定
なぜこの準備が重要なのか
AWSは「使った分だけ請求される」サービス。設定を間違えれば一晩で数万円課金されることもある。
そして、ルートユーザー(アカウント作成時のメールアドレス)はAWSの全権限を持つ最強アカウント。
これが乗っ取られたら全リソースを破壊・盗難される可能性がある。
だから最初にやるべきは
- ルートに鍵をかける(MFA)
- 日常作業は権限を限定したIAMユーザーで行う
- 予想外の課金が起きたら気づける仕組みを置く(Budgets)
最低限この3点セットが整って初めて、安心してAWSを利用できる。
AWSアカウント準備
アカウント作成
上記のAWS公式サイトからアカウントを新規作成します。
アカウント登録に必要なもの
- Gmailなどのメールアドレス
- クレジットカード(又はデビットカード)
ルートユーザーにMFA設定
MFA(Multi-Factor-Authentication) とは多要素認証を意味する
アカウント作成後、このMFA設定を最優先でおこなう
なぜ最優先か
ルートユーザーというのは全権限を持っていて、ここが乗っ取られたらアカウント終了。
不正アクセスにより膨大な額の請求が来ることも。
そんなルートユーザーは現状パスワード1枚で守られている。
MFAを設定すれば「パスワード + スマホのワンタイムコード」の2段階認証になり、
パスワードが漏れても乗っ取りを防げる。
設定手順
- ルートユーザーで AWSマネジメントコンソール にログイン
- 右上の自分のアカウント名 → 「セキュリティ認証情報」
- 「多要素認証 (MFA)」セクション → 「MFAデバイスの割り当て」
- デバイス名(任意の文字列)を入力 → 「認証アプリケーション」 を選択
- スマホで以下のいずれかをインストール(持っていなければ):
- Google Authenticator(シンプル)
- Authy(マルチデバイス対応で便利)
- 1Password(既に使ってるなら)
- アプリでQRコードをスキャン
- アプリに表示される6桁コードを連続2回入力(1回目を入力、次のコードが表示されたら入力)
- 「MFA を追加」
確認
一度ログアウトして、ルートユーザーで再ログイン → パスワード入力後にMFAコードを求められればOK。
IAMユーザー作成
ルートユーザーは権限が強すぎる。日常作業は権限を絞ったIAMユーザーで行うべき。
万が一そのユーザーの認証情報が漏れても、被害範囲を限定できる。
ルートを使うのは「IAMユーザーでは絶対にできない作業」(サポートプラン変更、アカウント解約など)の時だけ。
手順
- ルートユーザーでログイン中のまま、サービス検索で 「IAM」 へ
- 左メニュー 「IAMユーザー」 → 「ユーザーの作成」
- ユーザー名:(任意の文字列)を入力
- 「AWS マネジメントコンソールへのユーザーアクセスを提供する」にチェック
- 「IAM ユーザーを作成します」を選択
- パスワード: 「自動生成されたパスワード」 or 「カスタムパスワード」
- 「次へ」
- 権限のオプション: 「ポリシーを直接アタッチする」を選択
- ポリシー検索で
AdministratorAccessにチェック - 「次へ」 → 「ユーザーの作成」
- 重要: 表示される「コンソールサインインURL」「ユーザー名」「パスワード」をメモ
- URLは https://<アカウントID>.signin.aws.amazon.com/console の形式
- パスワードはこの画面でしか表示されないので注意
IAMユーザーにもMFA設定
- 作成したユーザーをクリック
- 「セキュリティ認証情報」タブ → 「MFAデバイスの割り当て」
- ルートと同じ手順でMFA設定(デバイス名は分かり易く区別)
- サインアウトしてIAMユーザーでログイン
- サインアウト → 上記コンソールサインインURLからログイン → MFA入力で入れることを確認。
ここから先の作業は全部このIAMユーザーで行います。
AWS Budgetsでコストを管理する
学習中に何かを消し忘れて月数万円という事故を防ぐためにも、必ず設定。
手順
- IAMユーザーでログイン
- サービス検索 → 「Billing and Cost Management」 → 左メニュー 「予算」
- 「予算を作成」
- テンプレートを使用: 「月次コスト予算」
- 予算名:
monthly-10usd - 予算額:
10USD - メール: 自分のアドレス
- 「予算を作成」
これで以下のタイミングでメールが届く:
- 実績が $8.5(85%) に達した時点
- 予測で $10超え の見込みになった時点
さいごに
今回はTerraformを用いてAWSによるインフラ構築をするための、アカウント準備行いました!
次回はAWS CLIのセットアップ、Terraformのインストール、State管理・ロック用のS3バケット作成をやってみたいと思います。
ご覧いただきありがとうございました🔥