AWS ログを Google Security Operations に取り込む

このドキュメントでは、AWS CloudTrail ログとコンテキスト データの Google セキュリティ オペレーションへの取り込みを構成する手順について詳しく説明します。これらの手順は、AWS GuardDuty、AWS VPC Flow、AWS CloudWatch、AWS Security Hub などの他の AWS サービスからのログの取り込みにも適用されます。

イベントログを取り込むには、この構成によって、必要に応じて Amazon Simple Queue Service(Amazon SQS)キューを使用して、CloudTrail ログを Amazon Simple Storage Service(Amazon S3)バケットに転送します。Amazon SQS キューが使用されている場合、Google Security Operations は、Amazon SQS キューに送信される Amazon S3 通知を読み取り、対応するファイルを Amazon S3 バケットから pull します。これは実質的に、Amazon S3 フィードの push ベースのバージョンであり、スループットの向上に使用できます。

このドキュメントの最初の部分では、フィードソース タイプとして Amazon S3 を使用する場合、またはフィードソース タイプとして Amazon SQS で Amazon S3 を使用する場合の簡単な手順を説明します。第 2 の部分では、Amazon S3 をフィードソース タイプとして使用するために、スクリーンショットで詳細な手順を説明します。第 2 の部分では、Amazon SQS の使用については説明しません。第 3 の部分では、ホスト、サービス、VPC ネットワーク、ユーザーに関する AWS コンテキスト データを取り込む方法について説明します。

SQS を使用して S3 または S3 からログを取り込む基本的な手順

このセクションでは、AWS CloudTrail ログを Google Security Operations インスタンスに取り込む基本的な手順について説明します。このステップでは、フィードソースタイプとして Amazon S3 を使用するか、必要に応じて、フィードソースタイプとして Amazon SQS で Amazon S3 を使用して、これを行う方法を説明します。

AWS CloudTrail と S3 を構成する

この手順では、AWS CloudTrail ログが S3 バケットに書き込まれるように構成します。

  1. AWS コンソールで「CloudTrail」を検索します。
  2. [Create trail] をクリックします。
  3. [Trail name] を指定します。
  4. [新しい S3 バケットを作成する] を選択します。既存の S3 バケットを使用するよう選択することもできます。
  5. [AWS KMS Alias] の名前を指定するか、既存の [AWS KMS Key] を選択します。
  6. その他の設定はデフォルトのままにして、[Next] をクリックします。
  7. [イベントタイプ] を選択し、必要に応じて [データイベント] を追加して、[次へ] をクリックします。
  8. [Review and create] で設定を確認し、[Create trail] をクリックします。
  9. AWS コンソールで「Amazon S3 Buckets」を検索します。
  10. 新しく作成したログバケットをクリックし、フォルダ [AWSLogs] を選択します。[Copy S3 URI] をクリックして、次の手順で使用するために保存します。

SQS キューを作成する

必要に応じて、SQS キューを使用できます。SQS キューを使用する場合は、FIFO キューではなく標準キューである必要があります。

SQS キューの作成の詳細については、Amazon SQS スタートガイドをご覧ください。

SQS キューへの通知を設定する

SQS キューを使用する場合は、SQS キューに書き込むように S3 バケットに通知を設定します。必ずアクセス ポリシーをアタッチしてください。

AWS IAM ユーザーを構成する

Google Security Operations が SQS キュー(使用する場合)と S3 バケットの両方にアクセスするために使用する AWS IAM ユーザーを構成します。

  1. AWS コンソールで [IAM] を検索します。
  2. [ユーザー] をクリックし、次の画面で [ユーザーを追加] をクリックします。
  3. ユーザー名を指定します(例: chronicle-feed-user)。[アクセスキー - プログラムでアクセス] としてAWS 認証情報タイプを選択して、[次へ: 権限] をクリックします。
  4. 次のステップでは、[既存のポリシーを直接アタッチする] を選択し、必要に応じて [AmazonS3ReadOnlyAccess] または [AmazonS3FullAccess] を選択します。AWS S3 のストレージの費用を最適化するために、ログの読み取り後に Google Security Operations が S3 バケットをクリアする場合は、AmazonS3FullAccess が使用されます。
  5. 前の手順の代わりとして、カスタム ポリシーを作成することで、指定された S3 バケットのみにアクセスをさらに制限できます。[ポリシーを作成] をクリックし、AWS のドキュメントに従ってカスタム ポリシーを作成します。
  6. ポリシーを適用する際は、sqs:DeleteMessage が含まれていることを確認してください。sqs:DeleteMessage 権限が SQS キューに接続されていない場合、Google セキュリティ オペレーションはメッセージを削除できません。すべてのメッセージは AWS 側に蓄積され、Google Security Operations が同じファイルを繰り返し転送しようとするため、遅延が発生します。
  7. [次へ: タグ] をクリックします。
  8. 必要に応じてタグを追加し、[次へ: 確認] をクリックします。
  9. 構成を確認し、[ユーザーを作成] をクリックします。
  10. 作成したユーザーのアクセスキー IDシークレット アクセスキーをコピーして、次のステップで使用します。

フィードを作成する

上の手順を完了したら、Amazon S3 バケットから Google Security Operations インスタンスに AWS ログを取り込むフィードを作成します。SQS キューも使用している場合、次の手順では、Amazon S3 ではなく、ソースタイプに [Amazon SQS] を選択します。

フィードを作成するには:

  1. ナビゲーション バーで、[Settings]、[SIEM Settings]、[Feed] の順に選択します。
  2. [フィード] ページで、[新規追加] をクリックします。
  3. [フィードを追加] ダイアログで、[ソースタイプ] ダイアログを使用して [Amazon S3] または [Amazon SQS] を選択します。
  4. [ログタイプ] メニューで、[AWS CloudTrail](または別の AWS サービス)を選択します。
  5. [Next(次へ)] をクリックします。
  6. 各項目にフィードの入力パラメータを入力します。

    ソースタイプが Amazon S3 の場合:
    1. [リージョン] を選択し、先ほどコピーした Amazon S3 バケットの [S3 URI] を指定します。さらに、次のとおり S3 URI を追加できます。
      
          {{datetime("yyyy/MM/dd")}}
      
          
      次の例のように、Google Security Operations が特定の 1 日だけログをスキャンするようになります。
      
          s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
      
          
    2. [URI IS A] では、[サブディレクトリを含むディレクトリ] を選択します。[ソースの削除オプション] で適切なオプションを選択します。これは、以前に作成した IAM ユーザー アカウントの権限と一致している必要があります。
    3. 以前に作成した IAM ユーザーアカウントのアクセスキー IDシークレット アクセスキーを指定します。

  7. [Next] をクリックして [Finish] をクリックします。

S3 からログを取り込む詳細な手順

AWS CloudTrail(またはその他のサービス)を構成する

AWS CloudTrail ログを構成し、これらのログを以前の手順で作成した AWS S3 バケットに書き込むようにこれらのログに指示するために、以下の手順を行います。

  1. AWS コンソールで「CloudTrail」を検索します。
  2. [Create trail] をクリックします。

    alt_text

  3. [Trail name] を指定します。

  4. [新しい S3 バケットを作成する] を選択します。既存の S3 バケットを使用するよう選択することもできます。

  5. [AWS KMS Alias] の名前を指定するか、既存の [AWS KMS Key] を選択します。

    alt_text

  6. その他の設定はデフォルトのままにして、[次へ] をクリックします。

  7. [イベントタイプ] を選択し、必要に応じて [データイベント] を追加して、[次へ] をクリックします。

    alt_text

  8. [Review and create] で設定を確認し、[Create trail] をクリックします。

  9. AWS コンソールで「Amazon S3 Buckets」を検索します。

    alt_text

  10. 新しく作成したログバケットをクリックし、フォルダ [AWSLogs] を選択します。[Copy S3 URI] をクリックして、次の手順で使用するために保存します。

    alt_text

AWS IAM ユーザーを構成する

このステップでは、Google セキュリティ オペレーションが AWS からログフィードを取得するために使用する AWS IAM ユーザーを構成します。

  1. AWS コンソールで [IAM] を検索します。

    alt_text

  2. [ユーザー] をクリックし、次の画面で [ユーザーを追加] をクリックします。

    alt_text

  3. ユーザー名を指定します(例: chronicle-feed-user)。[アクセスキー - プログラムでアクセス] としてAWS 認証情報タイプを選択して、[次へ: 権限] をクリックします。

    alt_text

  4. 次のステップでは、[既存のポリシーを直接アタッチする] を選択し、必要に応じて [AmazonS3ReadOnlyAccess] または [AmazonS3FullAccess] を選択します。AWS S3 のストレージの費用を最適化するために、ログの読み取り後に Google Security Operations が S3 バケットをクリアする場合は、AmazonS3FullAccess が使用されます。[次へ: タグ] をクリックします。

    alt_text

  5. 前の手順の代わりとして、カスタム ポリシーを作成することで、指定された S3 バケットのみにアクセスをさらに制限できます。[ポリシーを作成] をクリックし、AWS のドキュメントに従ってカスタム ポリシーを作成します。

    alt_text

  6. 必要に応じてタグを追加し、[次へ: 確認] をクリックします。

  7. 構成を確認し、[ユーザーを作成] をクリックします。

    alt_text

  8. 作成したユーザーのアクセスキー IDシークレット アクセスキーをコピーして、次のステップで使用します。

    alt_text

AWS ログを取り込むように Google Security Operations のフィードを構成する

  1. Google Security Operations の設定に移動し、[フィード] をクリックします。
  2. [Add New] をクリックします。
  3. [ソースタイプ] で [Amazon S3] を選択します。
  4. [ログタイプ] で [AWS CloudTrail](またはその他の AWS サービス)を選択します。

alt_text

  1. [Next] をクリックします。
  2. [リージョン] を選択し、先ほどコピーした Amazon S3 バケットの [S3 URI] を指定します。さらに、次のとおり S3 URI を追加できます。

    
    {{datetime("yyyy/MM/dd")}}
    
    

    次の例のように、Google Security Operations が特定の 1 日だけログをスキャンするようになります。

    
    s3://aws-cloudtrail-logs-XXX-1234567/AWSLogs/1234567890/CloudTrail/us-east-1/{{datetime("yyyy/MM/dd")}}/
    
    
  3. [URI IS A] で [サブディレクトリを含むディレクトリ] を選択します。[ソースの削除オプション] で適切なオプションを選択します。これは、先ほど作成した IAM ユーザー アカウントの権限と一致している必要があります。

  4. 前に作成した [IAM ユーザー] アカウントの [アクセスキー ID] と [シークレット アクセスキー] を指定します。 alt_text

  5. [次へ] をクリックして [終了] をクリックします。

AWS コンテキスト データを取り込む手順

AWS エンティティ(ホスト、インスタンス、ユーザーなど)に関するコンテキスト データを取り込むには、次のログタイプごとにフィードを作成します。それは説明と取り込みラベルで一覧表示されます。

  • AWS EC2 ホスト(AWS_EC2_HOSTS
  • AWS EC2 インスタンス(AWS_EC2_INSTANCES
  • AWS EC2 VPCS(AWS_EC2_VPCS
  • AWS Identity and Access Management (IAM) (AWS_IAM)

上記のログタイプごとにフィードを作成するには、以下を行います。

  1. ナビゲーション バーで、[設定]、[SIEM 設定]、[フィード] を選択します。
  2. [フィード] ページで、[次を追加する] をクリックします。[フィードを追加する] ダイアログが表示されます。
  3. [ソースタイプ] メニューで、[サードパーティ API] を選択します。
  4. [ログタイプ] メニューで、[AWS EC2 ホスト] を選択します。
  5. [次へ] をクリックします。
  6. フィールドにフィードの入力パラメータを入力します。
  7. [次へ]、[完了] の順にクリックします。

ログタイプごとにフィードを設定する方法について詳しくは、以下のフィード管理のドキュメントをご覧ください。

フィードの作成に関する一般的な情報については、フィード管理ユーザーガイドまたは フィード管理 API をご覧ください。