本記事は、AWSのアカウト登録後にセキュリティ向上、ログ管理、請求管理の為にAWSが推奨する5つの対応事項についての設定方法を設定画面の画像を用いて具体的に紹介します。
Day1対応
「アカウント登録後の初日に設定してください。」とAWSが推奨しているので、Day1対応と呼ばれています。 以下の5つの対応事項となります。
- 多様認証(MFA) を有効化する
- パスワードポリシーの変更
- 管理者用のユーザーを作成する
- AWS Cloud Trailを有効化する
- AWSの請求アラートを有効化する
順を追って説明してきます。
多様認証(MFA) を有効化する
MFAはMulti-Factor Authenticationの略称です。
AWSにサインインする際に、単にユーザー名とパスワードの認証のみでなく、追加の信用情報、たとえばユーザーのスマートフォンからのコード、秘密の質問の答え、指紋、顔認識などを要求した方法を実装します。
特にルートアカウント(登録後の最初に使っているアカウント)は アカウント上の全ての権限を有しているので、セキュリティ上重要なアカウントとなります。なので、こちらのアカウントに設定することが推奨されています。 手順は以下の通りとなります。
IAMサービスに入る
"IAM"といアクセス管理を実施するサービスに入ります。サインイン後のマネジメントコンソールのページの上の検索ボックスから「IAM」と検索すると表示されるので進めてください。
IAMの画面に入ると下記画像のようにダッシュボードが表示されています。
「rootユーザーのMFAを追加する」の右横が!マークなのは未設定を意味しています。それでは、MFAを追加するボタンをクリックしてください。
クリックするとMFAを有効化するボタンがあるので、そちらを進めてください。
下記画面では、MFAをどのデバイスやツールで設定するのかという選択ができます。
ここでは、比較的簡単に設定ができる"Google Authenticator"を利用した方法で実装していきたいと思うので、「仮想MFAデバイス」を設定してください。
次に進めます。
スマートフォンでGoogleAuthenicatorをダウンロードする必要があります。
アプリを起動したあとQRコード読み取ってください。6桁のコードが表示されるので、そちらをMFAコードに入力、少し時間を待ってから6桁のコードが変わったら次にMFAコード2に入力してください。右のMFAの割り当てを押して問題がなければ設定完了と表示されます。
これで、サインインの際にMFAコードが求められるのでセキュリティを高めることができました。
ダッシュボードに戻ります。
先ほど設定したMFAの設定の下に、"rootユーザーにアクティブなアクセスキーがありません"とありますが、こちらはそのままで問題ありません。
アクセスキーというのは、プログラミングのコード上やCLIツールなどで設定する認証キーのことです。セキュリティ上、ルートアカウント(rootユーザー)ではこちらは無しが推奨されいるのでデフォルトで設定されてます。
パスワードポリシーの変更
IAMコンソール画面で最適なパスワードポリシーを設定することが求められます。パスワードポリシーとは、パスワードを設定する際の文字数や大文字・小文字を含むなど認証パスワードの規定のことです。
アカウント設定
IAMダッシュボードの左の"アカウント設定"を押してください。
パスワードポリシーを変更するというボタンがあります。 こちらの上にグレーで表示されている部分が、デフォルトで設定されているパスワードポリシーとなります。 ポリシーを変更するをクリックします。
こちらでポリシーの要件を有効を増やして、強化することができます。例えば、パスワードの有効期限を持たしたい場合は、7番目をチェックして変更の保存に進めると適用されます。 このようにチェックを増やして、認証を強化することができますので、組織の形態に合わして設定をしてください。
IAMユーザーの作成
ルートアカウントは、アカウントを削除や支払い操作の権限を有していて、根本的な権限も全て持っているので普段の管理ではあまり使用しないことが推奨されています。その為、管理者権限を持ったIAMユーザーを作成して、そちらを使用することが求められています。
ユーザー
IAMダッシュボードの左タブにある"ユーザー"を押してください。
右上のユーザーを追加をクリックして進めます。
ここでユーザー名を決めます。AWSにサインインする際に必要となります。
その下で、アクセスの種類を選択します。
画面に書いてある通りですが、"アクセスキー・プログラムによるアクセス"はCLIなどからアクセスを可能にする場合は、チェックを入れます。
"パスワード・AWSマネジメントコンソールへのアクセス"は、AWSマネジメントコンソールへのサインインを許可する場合にチェックを入れます。
今回管理者権限を有したIAMユーザーを作成しているので、両方チェック入れて進めます。下にパスワードを自動生成かカスタムパスワードの選択ができます。
自動生成の場合はメールで受信することとなります。新しいパスワードに変更してもらう設定もできますので、組織の管理者の場合、ユーザーごとにパスワードを作成しなくても良いの便利な場合があります。 次のステップを押してください。
ユーザーにたいしてどのように権限を与えるのかこちらで選択ができます。 今回は、ポリシーを探してアタッチしていきたいと思うので一番右の既存のポリシーを直接アタッチを選択して進めます。
選択するとポリシーを検索できるようになります。 一番上にAdministratorAccessがあるので、こちらをアタッチします。 こちらが一番強い権限を与えられる管理者権限のポリシーとなります。こちらはIAMを操作する権限も与えられます。
ただし、一部の請求処理やキー管理、一部の契約などはルートアカウントのみ持っている権限があります。それ以外の全ての権限を有しているのがAdministratorAccessです。ルートユーザーも独自の権限とAdministratorAccessの権限を有しています。
タグはメタデータとしてリソースに追加の名前をつけることができます。 ユーザー管理の整理などにも利用することができます。 例えば、キーにdepartmentで値にsalesで営業部署のユーザーという管理が出来ます。
次の画面で確認を行って問題なければ進めます。
これでIAMユーザーの作成は完了です。 ルートユーザーと違って自動で生成されるアクセスIDが必要となります。緑のエリアの中にあるURLのhttps://のあとに数字で記載されている部分がアクセスIDとなります。そちらのURLをクリックしてサインイン画面に移行するので一度試してみましょう。 アクセスIDは、ユーザー名をクリックして確認もできます。
AWS Cloud Trailを有効化する
Cloud Trailとは、ルートアカウント/IAMユーザーの操作とAPIコールをトラッキングしてアクセスログ(アクティビティログ)を取得するサービスです。要するにユーザーがどのような操作を行ったかという履歴のデータを取得できます。
ログファイルは暗号化されてS3バケットに保存されます。S3バケットはAWSの主要のストレージサービスです。S3バケットに保存して、CloudWatch上で解析ができるようになります。
デフォルトでは90日間ログが保存されています。有効化すると半永久的に保存される。 CloudTrailサービスは無料ですが、S3のストレージが5GBの無料枠を超過すると有料となります。
CloudTrailのサービスに入る
マネジメントコンソール画面の検索からCloudTrailと検索してクリックして進めます。
右上の証跡の作成をクリックしてください。
クイック証跡の作成で簡単に作成できますが、ここでは詳細の設定を理解する為に左タブのダッシュボードをクリックして進めてください。
ダッシュボードの証跡の作成があるのでこちらをクリックします。
クイック作成とは違って、ここで詳細に設定を行うことができます。
証跡名を設定します。ここでは"logs-for-test"としています。
S3バケットは現在持っていないので新しく作成する必要があります。 バケット名は、自動で生成されるのでそのまま使用しても良いですし、自由に変えることができます。ただし、世界中のAWSユーザーが作成しているS3バケット名の一意である必要があります。
ここでは、他の設定はデフォルトで進めます。 因みに下部にCloudWatchLogsとあります。こちらはログを貯め込んで可視化する機能で有料となります。
次の画面で、どのイベント(操作・タイミング)でログを取得するかを設定することができます。 設定内容については、それぞれの項目の下に説明書きあります。 本来は、全てチェックして有効化にしたほうが良いですが、追加料金が適用されるのでここでは管理イベントのみチェックしています。 ここでは、他の設定をそのままで進めます。
これで、設定は完了できましたのでAWSアカウントで実行されるログ(イベントタイプで設定した内容)をS3バケットに保存されます。 S3バケットのリンクをクリックして進むとCloudTrailで作成したログ内容などが確認できます。
請求アラートの設定
AWS利用額が一定額を超過した場合に、アラート通知が来るように設定することが可能です。 設定することで料金の使いすぎを事前に防ぐことが出来るので推奨とされています。
請求ダッシュボードで有効化にする
デフォルトでは、ルートアカウントでしか設定権限がないのでIAMユーザーでも設定出来るように設定を行います。IAMユーザーに管理者権限を付与している場合は、推奨されているのでこちらを設定してきます。
ルートユーザーから設定行います。
マネジメントコンソールを開いてください。
右上に名前をクリックして、マイアカウントと表示されるので、そちらをクリックします。
アカウント設定画面が開きます。
下にスクロールしていくと下記画面部分が表示されます。
こちらでIAMユーザーのアクセスが無効に設定されているので、編集を押して、IAMアクセスのアクティブ化にチェックを入れて更新を押します。これでルートユーザーでなくても請求情報にアクセスできるようになります。
ここからは、ルートユーザーでもIAMユーザーのどちらでも大丈夫です。 マネジメントコンソールへ戻って、右上の名前をクリックして請求ダッシュボードをクリックします。 左のタブから請求設定をクリックしてください。
ここで、"無料利用枠の使用アラートを受信する"と"請求アラートを受け取る"にチェックを入れてください。
Eメールアドレスに受け取り先のメールアドレスを入力してください。
"請求アラートを受け取る"にチェックを入れるとCloudWatch上で請求アラートの設定ができるようになります。
保存を押して進めてください。
CloudWatchを使用して請求アラートを設定
マネジメントコンソールでCloudWatchを検索してサービスに入ります。 CloudWatchはAWSのモニタリングをするサービスです。
ここで請求自体のアラームを設定することもできます。
左のタブのアラームの請求から設定します。
ただし、東京リージョンだと請求アラームが設定できない(2022/1/16現在)ようになっているので、米国東部(バージニア北部)のリージョンに切り替える必要があります。
リージョンを切り替えると画像のように左タブに請求が表示されています。 こちらをクリックして進めてください。 アラームの作成とあるので、こちらクリックして進めていきます。
アラームの規定値など画面に沿って自由に設定してきます。 次に進むと、通知方法が設定できます。
SNSトピックの選択が既存のSNSトピックの選択となっており、こちらの場合は最初にSNSサービスに入って設定をする必要があるので、ここでは新しいトピックの作成して"送信先"にメールアドレスを入力をします。
ここでは、その他の設定はデフォルトのままでいきます。
これで設定アラームを設定ができました。 先程、設定したメールアドレスに確認メールが届いているので、"confirm subscription"のリンクをクリックするとアラーム通知が受信できるようになります。 完了したらリージョンを元に戻しておきましょう。
以上で、設定は完了です! お疲れ様でした!