【Security Hub修復手順】[CloudTrail.1] CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります

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

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!AWS事業本部のおつまみです。

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

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

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

[CloudTrail.1] CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります

[CloudTrail.1] CloudTrail should be enabled and configured with at least one multi-Region trail that includes read and write management events

前提条件

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

対象コントロールの説明

このコントロールは、マルチリージョンの CloudTrail 追跡が少なくとも 1 つあることをチェックします。

CloudTrailとはAWS リソースを「誰が」「いつ」「何に」対して「どうような」操作をしたのかを記録するサービスです。このサービスによりセキュリティ分析、リソース変更の追跡、およびコンプライアンスの監査を行うことができます。
またマルチリージョン追跡には、次の利点もあります。

  • 使用していないリージョンで発生する予期しないアクティビティを検出できる。
  • グローバルサービスイベントのログ記録がデフォルトで有効になっている。
  • すべての読み取りオペレーションと書き込みオペレーションの管理イベントによって、CloudTrail がすべての AWS アカウントのリソースに対する管理オペレーションを確実に記録する。

トラブル発生時の解析等に利用できるため設定を有効にしておきましょう。

修正手順

1. CloudTrailに新しい追跡を作成する場合

  1. AWS マネージメントコンソールを開きます。
  2. ヘッダーナビゲーションのサービス検索より「CloudTrail」を検索し、サービスを選択します。

  3. CloudTrailサービスより[証跡の作成]をクリックします。

  4. [証跡名]に任意の追跡の名前を入力します。
  5. 同じ[証跡属性の選択]画面より、[ストレージの場所]で、次のいずれかの操作を行います。
    1. CloudTrail ログ用に新しい S3 バケットを作成するには、[新しい S3 バケットを作成します]を選択し、新しい S3 バケットの名前を入力します。
    2. 既存の S3 バケットを使用するには、[既存のS3バケットを使用する]を選択し、使用する S3 バケットを選択します。
  6. 同じ[証跡属性の選択]画面より、下記の通り設定し、[次へ]をクリックする。

    フィールド名 設定値 備考
    ログファイルのSSE-KMS暗号化 無効 ログファイルを暗号化するかどうかを設定する項目です。
    デフォルトで[有効]が選択されています。
    ログファイルの検証 有効 AWS CloudTrail がログ配信後にログファイルが修正、削除、または変更されていないかどうかを判断するための設定項目です。
    デフォルトで[有効]が選択されています。
  7. [ログイベントの選択]画面より、下記の通り設定し、[次へ]をクリックする。

    フィールド名 設定値 備考
    イベント 管理イベント 各イベントの内容は下記の通りです。
    管理イベント:AWS アカウントのリソースに対して実行される API の使用などの管理操作(例:ユーザがAWSアカウントにログインする )
    データイベント:AWSリソース上またはリソース内で実行されるリソース操作(例:ユーザがs3バケットにファイルをアップロードする)
    insightsイベント:書き込みAPIに関する異常なアクティビティ、エラー、またはユーザーの動作(例:一般的な使用パターンとは大幅に異なる、アカウントの API 使用の変化を CloudTrail が検出した場合)

    デフォルトで[管理イベント]が選択されています。
    データイベントとinsightsイベントには追加料金が発生するため、必要に応じて有効にして下さい。

    管理イベント 読み取り・書き込み デフォルトで[読み取り][書き込み]が選択されています。
    読み取り:リソースを読み取るが変更を加えない API 操作
    書き込み:リソースを変更する (または変更する可能性がある) API 操作
  8. [確認と作成]画面より、設定内容に誤りがないか確認します。確認後、[証跡の作成]をクリックします。

  9. ナビゲーションペインから[証跡]をクリックし、証跡が作成されていることを確認します。以上で設定は完了となります。

  10. (補足)AWSマネジメントコンソールを操作し、しばらくすると設定したS3バケットにログが保管されていることが確認できます。

2. CloudTrail の既存の追跡を更新する場合

  1. CloudTrailサービスより追跡の名前を選択します。
  2. [全般的な詳細]で、[マルチリージョンの証跡]が[はい]になっていることを確認します。※コンソールで作成された証跡は、マルチリージョンの証跡となります。

    1. [いいえ]の場合、CLIから設定を変更します。ここでは簡単にCLIを実行できるCloudShellで変更を行います。コンソール右上のCloudShellをクリックします。
    2. CloudShell起動後、下記のコマンドを実行します。※$CLOUDTRAIL_NAME}は更新対象のトレイル名に変更します。
      aws cloudtrail update-trail \
      --name $CLOUDTRAIL_NAME} \
      --is-multi-region-trail
    3. 実行後、[マルチリージョンの証跡]が[はい]になっていることを確認します。
  3. [管理イベント]で、[編集]をクリックします。

  4. 下記の通り設定されていることを確認します。設定されていない場合、[変更の保存]を選択します。

    フィールド名 設定値 備考
    イベント 管理イベント 各イベントの内容は下記の通りです。
    管理イベント:AWS アカウントのリソースに対して実行される API の使用などの管理操作(例:ユーザがAWSアカウントにログインする )
    データイベント:AWSリソース上またはリソース内で実行されるリソース操作(例:ユーザがs3バケットにファイルをアップロードする)
    insightsイベント:書き込みAPIに関する異常なアクティビティ、エラー、またはユーザーの動作(例:一般的な使用パターンとは大幅に異なる、アカウントの API 使用の変化を CloudTrail が検出した場合)

    デフォルトで[管理イベント]が選択されています。
    データイベントとinsightsイベントには追加料金が発生するため、必要に応じて有効にして下さい。

    管理イベント 読み取り・書き込み デフォルトで[読み取り][書き込み]が選択されています。
    読み取り:リソースを読み取るが変更を加えない API 操作
    書き込み:リソースを変更する (または変更する可能性がある) API 操作
  5. SecurityHubにて、失敗しているリソースが0になっていること及びステータスが[成功]になっていることを確認します。 ※リソースの更新には数分、ステータスの更新には1日程度かかります。

クラスメソッドメンバーズのお客様はアカウント発行時にCloudTrailが自動で有効化されています。お客様にて無効化した場合は、メンバーズサービス設定画面の[セキュリティ設定]→[AWS Config(ベーシック設定)]もしくは[AWS Config(セキュア設定)]のオプトインをオンにすることで、今回ご紹介した手順を実施せずに簡単に設定を有効化することができます。(セキュア設定では、SSE-KMSを使用してログファイルを暗号化するため、KMSの利用費がかかることにご注意ください。)

最後に

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

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

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

以上、おつまみ(@AWS11077)でした!