【Security Hub修復手順】[APIGateway.1] API Gateway REST と WebSocket API 実行のログ記録を有効にする必要があります

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

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

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

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

[APIGateway.1] API Gateway REST と WebSocket API 実行のログ記録を有効にする必要があります

[APIGateway.1] API Gateway REST and WebSocket API execution logging should be enabled

前提条件

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

コントロールの説明

このコントロールは、Amazon API Gateway REST API または WebSocket API のステージでログ記録が有効になっているかどうかをチェックします。

ログ記録が有効になっていない場合、コントロールは失敗します。

API GatewayのうちREST API または WebSocket APIは、実行ログとアクセスログを記録できます。 このコントロールは、実行ログが対象で、監査ログやデバッグとして活用できます。

保存先にはCloudWatch ロググループが利用できます。費用と相談の上、有効にして下さい。検証環境であれば必須ではありません。

修正手順

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

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

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

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

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

3 実行ログを有効にする

  1. API Gatewayからログに書き込む権限を持つIAM ロールを作成します。
  2. ユースケースはAPI Gatewayを設定します。
  3. IAMポリシーは、AmazonAPIGatewayPushToCloudWatchLogsが自動で設定されています
  4. IAMロール名を記入し作成します。
  5. API Gatewayに遷移し、[設定]から[編集]をクリックします
  6. 先ほど作成したIAMロールのARNを貼り付け、保存します。
  7. ログを有効化するAPI Gatewayのステージに遷移し、[ログとトレース]から[編集]をクリックします
  8. 実行ログを取得するよう設定します。今回は、[エラーと情報ログ]を取得します。

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

ロググループは以下の命名規則に従って自動作成されます。該当APIへリクエストすると、ログが確認できます。

  • API-Gateway-Execution-Logs_<API Gateway ID>/<ステージ名>

最後に

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

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

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