前回、AWSアカウントの作成方法について紹介いたしました。今回は、アカウント作成後に必要なセキュリティの設定事項(アカウント編)をご紹介いたします。
なお、本記事の設定すれば完璧というものではありません。ブログ全体に言えることですがご自身の判断で設定してください。
- IT初心者(非ITの職種の方、学生の方)
- AWSは知っているが、まだ触ったことがない方
- セキュリティのはじめの一歩がわかります。
はじめに(AWSセキュリティ 初めの一歩)
AWS Builder Online Series 「今日からスタート! AWSセキュリティ 初めの一歩」を参考に、設定および必要なプラクティスを理解します。
- アカウントをセキュアにする
ルートアカウントの設定 | アカウントをセキュアにする
AWSドキュメントには、AWSアカウントのルートユーザに関係して推奨されるベストプラクティスが載っています。こちらを参考にします。
ステップ1 MFA(Multi Factor Authentication)を設定する
AWSアカウントのルートユーザ(IAMユーザ含む)ではMFAを使用することが出来ます。これによりアカウントのセキュリティレベルを上げます。
- FIDOセキュリティキー
- 仮想MFAデバイス
- ハードウェアTOTP トーキン
1.ログイン後の画面で、IAMをクリックします。

2. セキュリティに関するレコメンデーションの「MFAを追加」をクリックします。

3. 「MFAを割り当てる」をクリックします。

4. デバイス名と、MFAデバイスを選択し「次へ」をクリックします。

5. 下記の手順を実行し、最後に「MFAを追加」をクリックします。
- 認証アプリケーションをスマホなどにインストール
- 「QRコードを表示」をクリックしスキャンします。
- 認証アプリケーションに表示されるワンタイムパスワードを続けざまにMFAコード1、MFAコード2二入力します。

6.登録されました。

7. IAMダッシュボードからも、WARNINGが消えました。

8. 一度サインアウトし、2要素認証が求められるか確認します。
9. メールアドレスとパスワードを入力後に、MFAの画面が表示されました。MFAコードを入力し、「送信」をクリックします。

10. 再びサインインできました。

ステップ2 ルートユーザのアクセスキーは作成しない
ルートユーザーは請求情報や、AWSサービスのリソース全てにフルアクセスできるため、よりセキュリティを高めるためアクセスキーは作成しないようにしましょう。ちなみに、デフォルトでは存在しません。
ステップ3 ルートユーザを通常の作業に使わない
日常作業には、利用せずにルートユーザにしか実施できない一部のタスク※1を行うときだけ利用するようにしましょう。
※1 ルートユーザにしか出来ないできない操作は下記のとおりです。
- アカウントの設定を変更
- IAM ユーザーアクセス許可を更新
- 請求情報とコスト管理コンソールへの IAM アクセスをアクティブにする
- 特定の税金請求書を表示
- AWS アカウント をクローズする。
- リザーブドインスタンスマーケットプレイスに出品者として登録
- MFA (多要素認証)に対応するように Amazon S3 バケットを設定
- 無効な仮想プライベートクラウド (VPC) ID または VPC エンドポイント ID が含まれている Amazon Simple Storage Service (Amazon S3) バケットポリシーを編集または削除
- AWS GovCloud (US) にサインアップ
ステップ4 管理ユーザを作成する
上述した通り、AWSアカウントのルートユーザを日常使いでは使用しません。その代わりかわりに管理ユーザを作成します。
IAM Identity Centerを使用して管理ユーザを作成します。
IAM Identity Centerの有効化
1. ルートユーザでマネジメントへログインし、IAM Identity Centerのトップページで「有効にする」をクリックします。

2. ポップアップが表示されます。(AWS Organizationが作成されていない場合はこちらが表示されます。)「AWS 組織を作成する」をクリックします。

3. 有効化されると、ダッシュボードが表示されます。

デフォルトのディレクトリを使用して ユーザを作成
IAM Identity Centerを有効化した後は、管理者ユーザを作成します。
1. IAM Identity Centerのナビゲーションペインで「ユーザー」を選択します。

2. 「ユーザを追加」をクリックします。

3. ユーザの詳細を指定画面で、下記を入力し「次へ」をクリックします。
- ユーザ名
- パスワード
- Eメールアドレス
- 名
- 表示名


4. ユーザーをグループに追加 – 任意では、グループの作成および追加は行わずに「次へ」をクリックします。
5.ユーザーの確認と追加で内容を確認し、「ユーザを追加」をクリックします。
6.ユーザが追加され、ステータスは「有効」となっています。またメールが送信された旨の通知がヘッダーに表示されます。

7.メールが届きますので「Accept Invitation」をクリックしてください。

8. パスワードを設定し「新しいパスワードを設定」をクリックします。

9. 設定後に、サインインします。現時点で権限がないので何も表示されていません。

管理者アクセス許可セットを作成
管理者権限を付与する権限セットを作成し、アクセス許可レベルを定義します。
1. ルートユーザで、IAM Identity Centerのナビゲーションペインの「許可セット」をクリックします。

2.「許可セット」をクリックします。

3.下記を選択し、「次へ」をクリックします。
- 許可セットのタイプ:事前定義された許可セット
- 事前定義された許可セットのポリシー:AdministratorAccess


4.許可セットの詳細を指定画面で、デフォルトのまま「次へ」をクリックします。※ セッション時間は1時間になっています。
5.確認して作成画面で、問題ないようでしたら「作成」をクリックします。
6.許可セットが作成されました。

AWS アカウント 管理ユーザーのアクセスを設定する
IAM Identity Center AWS アカウント で管理ユーザーのアクセスを設定します。下記のドキュメントを参考にしています。
1. ルートユーザでIAM Identity Centerのナビゲーションペインで「AWSアカウント」をクリックします。

2.AWS Organization AWS アカウントがツリー状に表示されます。現時点では、管理アカウントのみ表示されています。管理アカウントにチェック後、「ユーザまたはグループを割り当て」をクリックします。

3.①「ユーザー」タブをクリックし、先ほど作成した②「管理者ユーザ」を選択し、「次へ」をクリックします。

4.許可セット「AdministoratorAccess」を選択し、「次へ」をクリックします。

5.登録内容を確認し、「送信」をクリックします。
6.ルートユーザ配下に、管理者ユーザが割り当てられました。

IAM Identity CenterのMFAを設定する
個々のIAMユーザについても、MFAを設定することでセキュリティを強固にします。(IAM Identity CenterのMFAを有効にします。)
1. ルートユーザで、IAM Identity Centerのナビゲーションペインで「設定」をクリックします。

2.①「認証」タブをクリックし、他要素認証で②「設定」をクリックします。

3. 下記を指定して、「変更を保存」をクリックします。
- MFAのプロントをユーザに表示:サインインごと(常時オン)
- 登録されたMFAデバイスをユーザー持っていないない場合:サインイン時にMFAデバイスを登録するよう要求する

4.これでIAMユーザ(管理者ユーザ)についても、MFAを強制的に使用することになりました。
AWS 管理者の認証情報を使用してアクセスポータルにサインインする
作成した管理ユーザで認証します。上記で設定したためMFAの登録が求められるはずです。
1. AWSアクセスポータルのURL(AWS Identity Centerのアイデンティティソース)にアクセスします。
2.管理者ユーザのユーザ名、パスワードを入力するとMFAデバイスの登録画面が表示されました。MFAデバイスとして「認証アプリ」を選択し、「NEXT」をクリックします。

3.ルートユーザのときと同様に、MFAデバイスの登録プロセスになります。

4.登録するとコンソールにリダイレクトされます。ルートユーザアカウントの下にAdministratorAccessがぶら下がっています。この「Management console」をクリックします。

5. 別タブでマネジメントコンソールが開きます。

最小特権のアクセス許可を適用するアクセス許可セットを作成する
IAM Identity Center では、同じユーザーに複数のアクセス許可セットを割り当てることができます。最小権限を適用するベストプラクティスに従うには、管理ユーザーを作成した後に、より制限の厳しい権限セットを作成して同じユーザーに割り当てます。そうすれば、管理者権限ではなく、AWS アカウント必要な権限のみでにアクセスできます。
1.先程の許可セットの作成と同様の手順で許可セットを作成します。今回は新たに「PowerUserAccess」を作成しました。

2.次にマルチアカウント許可>AWSアカウントで、管理者ユーザにPowerUserAccessを割り当てます。

3.管理者ユーザでAWSアクセスポータルにアクセスし、ログインします。
4.PowerUserAccessが増えています。「Management console」をクリックします。

5.サインインできました。

最後に
今回の記事では、「アカウント作成後のセキュリティ設定(アカウント編)」を解説しました。少しでも、皆様のお役に立てれば幸いです。
また、この他にも「Well Architected フレームワーク の セキュリティの柱」の概要を解説していますので、よろしければ読んでいただけますと幸いです。
コメント