AWSアカウント作成後に最低限設定しておくもの

AWSアカウントを作成したあと、セキュリティ、請求の観点から最低限設定しておくべきものをご紹介します。各サービスの利用には料金がかかりますので、本番環境のみとするのか、一部のサービスのみ利用するのか、などは要件や予算に応じてご判断ください。

請求アラートの作成

予算を超えた場合にアラート通知する

AWSは利用量に応じた課金となるため、リソースの削除忘れ、設定誤り、想定外のトランザクション増加などにより、想定外にコストが発生する可能性があります。
AWS Billing and Cost Managementサービスを利用すると指定した予算を調査した場合にアラートを受け取ることが出来ます。必ず設定しておきましょう。

請求とコスト管理 > 予算 を選択し、「予算を作成」で予算、通知先を指定することが可能です。

定期的な請求レポート

予算を超えた場合の通知とは別に、作成した予算に対する請求について定期的にレポートを受け取ることが出来ます。レポート頻度は日、週、月単位で指定することが可能です。予想外の請求が発生していないかを早めに検知するためにもこちらも有効にしておきましょう。

請求とコスト管理 > 予算 > レポート から作成出来ます。

AWS CloudTrail証跡の作成

AWSアカウント、ユーザー、ロール、サービスなどによって実行されたアクションは全てAWS CloudTrail(以降、CloudTrail)にイベントとして記録されます。インシデント発生時にとても重要なログになりますが、デフォルトでは90日間しか保存されません。CloudTrail証跡を作成することでログをS3に保存することが出来るので要件に合わせて保存しましょう。

CloudTrail証跡は有効になっている全リージョンで有効にしておくことが重要です。2025年4月現在ではコンソールで作成する場合、マルチリージョンで有効なCloudTrail証跡しか作成出来ないようになっているためあまり意識することはありませんが、頭の片隅においておきましょう。

S3保存したログは課金対象です。
同一リージョンでCloudTrail証跡を複数有効にした場合、CloudTrailイベント自体も課金対象となります。

AWS Configによるリソース変更履歴の記録

AWSリソースの変更履歴を記録する

AWS Config はAWSリソースの設定変更を監視、記録してくれるサービスです。誰が、いつ、どのような変更を行ったのか?を知りたい場面は多いので有効にしておきましょう。

AWS Configの課金は、記録された設定項目数、アクティブな AWS Config ルール評価数、コンフォーマンスパックの評価数によって行われます。「記録された設定項目数」が変更履歴の数です。
Cloud Formation、CDK、SAMなどを利用し、CI/CDをやっている場合、想定以上に変更履歴が多く発生し、料金が多くかかってしまう場合があります。特に開発環境で色々試す場合などは注意してください。

記録頻度は「都度記録」または「日次(1日1回)」のどちらかを選択出来るので、環境が固まるまでは日次にする事でコストを抑えることも可能です。

AWS Config ルールによる監視

AWS Config ルールを利用すると、AWSリソースの変更内容を評価し、リソースの状態が適切かを確認することが出来ます。例えばIPアドレスが制限されていないSSHアクセスが有効になっていないか?IAMでMFAが有効になっているか?といった評価をリソース変更時に行うことが出来ます。

よく利用するルールはマネージドルールで用意されています。カスタムルールを作成することも可能です。マネージドルールの一例を紹介します。
全ての一覧はAWSの公式ドキュメント「AWS Config マネージドルールのリスト」を参照ください。

マネージドルール内容
db-instance-backup-enabledRDS DB インスタンスでバックアップが有効になっているかどうかを確認します。
ec2-ebs-encryption-by-defaultEBS暗号化がデフォルトで有効になっているかどうかを確認します。
mfa-enabled-for-iam-console-accessコンソールを使用するすべてのIAMユーザーに対して多要素認証 (MFA) が有効になっているかどうかを確認します。
s3-bucket-public-read-prohibitedAmazon S3 バケットでパブリック読み取りアクセスが許可されていないかどうかを確認します。
s3-bucket-public-write-prohibitedAmazon S3 バケットでパブリック書き込みアクセスが許可されていないかどうかを確認します。
restricted-sshセキュリティグループの受信 SSH トラフィックがアクセス可能かどうかを確認します。
iam-root-access-key-checkルートユーザーアクセスキーがあるかどうかを確認します。

Amazon GuardDutyによる脅威検知

Amazon GuardDuty(以降、GuardDuty)はAWS環境のログ等を継続的にチェックし、脅威インテリジェンや機械学習技術を活用して脅威を検出してくれるサービスです。データソースには主に以下のログが利用されます。これらのログはGuardDutyによって独立して取得されるので、各サービスを有効にしておく必要はありません

  • AWS CloudTrail
  • VPC Flow Logs
  • Route53 DNSクエリログ

GuardDutyを有効にすると以下のような脅威を検知することが出来ます。

  • ポートスキャン
  • 仮想通貨関連など、既知の悪意あるサーバーとの通信
  • EC2インスタンスがDDoS攻撃に利用されている可能性
  • 不審なAPIコールやログインアクセス
  • 普段利用しないリージョンからのアクセス

自分のサービスを守ることはもちろんですが、DDoS攻撃等の踏み台として利用され、外部にも迷惑をかけてしまうこともあります。しっかり監視をしていきましょう。

アカウントの保護

アカウント保護をおこなうために以下の設定を行います。

  • ルートアカウント、または管理者権限を持つIAMユーザーのMFA有効化とアクセスキーの削除。ルートアカウント以外も極力アクセスキーは利用しない。
  • パスワードポリシーの強制
  • アプリケーションで利用するシークレット情報はAWS Secrets ManagerやAWS Systems Manager Parameter Storeで管理

その他

各種サービスのログ有効化

VPC Flow Logs、Amazon CloudFront、ELBなど各種サービスのログ記録はデフォルトでは有効になっていません。セキュリティインシデント発生時の分析のために、可能な限り利用しているサービスのログ記録は有効化しておきましょう。

バックアップ、削除保護の有効化

重要度の高いデータのバックアップは自動取得しておきましょう。また重要なインスタンスやデータなど重要なものは削除保護も有効にしておきます。

参考資料

AWSが最低限の基盤構築を行うための指針として「AWSスタートアップセキュリティベースライン(AWS SSB)」を作成されているので、参考資料としてご紹介します。

以上

タイトルとURLをコピーしました