【Security Hub修復手順】[APIGateway.9] API Gateway V2 ステージにアクセスロギングを設定する必要があります

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
2024.06.25

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介します。

本記事の対象コントロール

[APIGateway.9] API Gateway V2 ステージにアクセスロギングを設定する必要があります

[APIGateway.9] Access logging should be configured for API Gateway V2 Stages

前提条件

本記事はAWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容です。 AWS Security Hubの詳細についてはこちらのブログをご覧ください。

コントロールの説明

このコントロールは、Amazon API Gateway V2 ステージのアクセスログが設定されているかどうかをチェックします。アクセスログが設定されていない場合、コントロールは失敗します。

API Gateway アクセスログは、誰が API にアクセスしたかや、API にアクセスした方法に関する詳細情報を提供します。これらのログは、セキュリティ監査やアクセス監査、証拠調査などのアプリケーションに役立ちます。トラフィックパターンの分析や問題のトラブルシューティングを行うには、これらのアクセスログを有効にすることをお勧めします。

アクセスログの送信先は、Amazon Data Firehose もしくは Amazon CloudWatch Logs です。

費用との兼ね合いを考慮した上で、アクセスログの有効化を検討してください。検証環境においては必須ではありません。

修正手順

1 対象のリソースの確認方法

  1. AWSマネージメントコンソールにログインし、AWS 基礎セキュリティのベストプラクティス v1.0.0にて、「APIGateway.9」を検索し、タイトルを選択します。
  2. リソースの欄から失敗しているリソースを確認できます。

2 ステークホルダーに確認

ステークホルダー(リソースの作成者や管理している部署などの関係者)に以下の条件を満たせているか確認します。

  • アクセスログを有効にしてよいか確認する
    • 有効化しない場合、抑制済みとします。

3 アクセスログを有効にする

アクセスログの送信先は、CloudWatch Logsにします。

  1. API Gatewayからログに書き込む権限を持つIAM ロールを作成します。
  2. ユースケースはAPI Gatewayを設定します。
  3. IAMポリシーは、AmazonAPIGatewayPushToCloudWatchLogsが自動で設定されています
  4. IAMロール名を記入し作成します。
  5. API Gatewayに遷移し、[設定]から[編集]をクリックします
  6. 先ほど作成したIAMロールのARNを貼り付け、保存します。
  7. ログを有効化するAPI Gatewayのステージに遷移し、[ログとトレース]から[編集]をクリックします
  8. アクセスログを取得するよう設定します。
    • カスタムのアクセスログ:有効化
    • アクセスログの送信先 ARN:CloudWatch LogsロググループのARN
    • ログの形式:AWSドキュメントに例がありますので、そのまま貼り付けました。

これでアクセスログが有効化されました。 ログ設定の更新だけであればAPIを再デプロイする必要はありません。

アクセスログの送信先をData Firehoseにしたい場合、以下のドキュメントをご参照ください。設定するIAMロールが異なる点や送信先Data Firehoseの名前に制限があります。

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。