🍼

[AWS]AWSアカウント取得後にやるべき9つの設定

2022/11/15に公開約5,500字

背景

ゴリゴリ系エンジニア、pageoです。
最近、AWSの初期設定が適当なPJをよく目にするので、備忘録的にpageo的ベストプラクティスなAWSアカウント 初期設定を解説したいと思います。

最初に

この記事で解説する設定は以下9つになります

  1. MFA有効化
  2. エイリアス設定
  3. クレデンシャル削除
  4. CloudTrail有効化
  5. Config有効化
  6. GuardDuty有効化&通知設定
  7. 請求情報へのアクセス許可&予算超過通知設定
  8. IAMパスワードポリシー修正
  9. Admin用IAMユーザ作成

1. MFA有効化

Root User(AWSアカウント)の初期状態では、メールアドレスとパスワードのみでの認証可能なため、セキュリティ的に脆弱です。
MFAを有効化することで、Root Userを不正認証から保護することができます。

設定手順

Security credentials」の管理画面に遷移し、

Manage MFA device」を押下し、選択したタイプの設定順序に従いMFAを有効化する。

2. エイリアス設定

IAMユーザーでのログイン時、ID/PWとAWSアカウントID(12桁の数字)を記憶するのは困難です。
エイリアス文字列を設定することで、ログイン時にアカウントIDの代わりにエイリアスを記入することが可能になります。

設定手順

サービス検索で「IAM」を検索し、IAMの管理コンソールに移動する。

IAMの管理コンソール右上部の「Account Alias」より、記憶しやすいエイリアス名を設定する

3. クレデンシャル削除

Root UserのAccess KeyとSecret Access Key(以降、クレデンシャルと呼ぶ)が漏洩してしまうと、AWSアカウント内の全てのリソースにアクセスできてしまいます。
Root Userのクレデンシャルを必要とするケースはほぼないため、既に作成されてしまっている場合は必ず削除しましょう。

設定手順

Security credentials」の管理画面に遷移し、

クレデンシャルが未作成であることを確認する。
既にクレデンシャルが作成されている場合は、すぐに削除する。

4. CloudTrail有効化

AWSアカウント内の監査ログを監視/保持することは、インシデントが発生した場合の原因調査に役立つため、CloudTrailの有効化は必須になります。

設定手順

サービス検索より「CloudTrail」を検索し、CloudTrail管理画面に遷移する

Create a trailを押下し、

CloudTailの設定をする

また、PJの特性によっては、EventBridgeとSNSを使用して、特定の操作が実行された場合に自動通知される機構を導入するのも良いかもしれません。
https://dev.classmethod.jp/articles/tsnote-eventbridge-how-do-i-configure-event-patterns-for-eventbridge-to-detect-cloudtrail-events/

5. Config有効化

AWSアカウント内のリソース状態を監視/保持することは、インシデントが発生した場合の原因調査に役立つため、Configの有効化は必須になります。

設定手順

サービス検索より「Config」を検索し、Config有効化管理画面に遷移する

Settingsの管理画面に移動し

Editボタンを押下する

Enable recordingを有効化する

また、PJの特性によっては、Config RuleとSNSを使用して、特定のリソースが該当Ruleに抵触した場合に自動通知/自動修復される機構を導入するのも良いかもしれません。
https://dev.classmethod.jp/articles/aws-config-launches-28-additional-managed-rules/

6. GuardDuty有効化&通知設定

GuardDutyを有効化することにより、悪意のあるアクティビティや不正な動作を継続的に監視することができます。

設定手順

サービス検索より「GuardDuty」を検索し、GuardDuty管理画面に遷移する

Get Startedボタンを押下し、

Enable GuardDutyで有効化する

7. 請求情報へのアクセス許可&予算超過通知設定

AWSアカウントの初期設定状態では、Root Userのみが請求情報を閲覧可能になっています。
Root Userは特殊なケース(AWSアカウントの譲渡など)を除いて使用することはほとんどないので、IAMユーザーも請求情報を閲覧可能にする必要があります。また、請求額が月の予算を超過しそうな場合に、すぐに察知できるよう通知が自動で送信されるように設定するのも必要になります。

設定手順

Accountの管理画面に遷移し、

画面下部の「IAM User and Role Access to Billing Information」ののEditボタンを押下する
Activate IAM Accessを有効化し、Updateボタンを押下する

左メニュー「Budgets」を押下して Budgets管理画面に遷移し、

予算アラートの設定を行う

8. IAMパスワードポリシー修正

AWSアカウントの初期状態ではパスワードポリシーが緩く、そのポリシーでIAM Userが管理されるとセキュリティ的に脆弱な状態になってしまいます。
そのため、パスワードポリシーを強固にする必要があります。

設定手順

サービス検索より「IAM」を検索し、IAM管理画面に遷移する

Account settingsの画面に移動する

Password policyの項目からポリシーを更新する

9. Admin用IAMユーザ作成

Root UserでのAWS管理画面操作はセキュリティ的にリスクがあるため、Admin権限のあるIAMユーザを作成し、Root Userの代替として使用するのが望ましいです。

設定手順

サービス検索より「IAM」を検索し、IAM管理画面に遷移する

Usersの画面に移動し、

Add usersボタンでIAM Userを作成する

AWS access typeは、特に理由がない限りは"Password"のみを有効にする

IAM PolicyとしてAdministratorAccessの管理Policyを選択する

Create Usesrを押下して作成を完了する

最後に

AWSアカウントの初期設定を疎かにすると、後のインシデント発生時の原因調査で手間取ったりすることがあるので、AWSアカウント取得後はすぐに上記設定を行うことをオススメします。
(実際に、知り合いのスタートアップでCloudTrailを有効化していなかったためにセキュリティインシデント発生時に何も原因調査ができなかった、、、なんてことも耳にしています)

Discussion

ログインするとコメントできます