AWS EC2 ホストログを収集する

以下でサポートされています。

このドキュメントでは、モニタリングと分析のために AWS EC2 ホストログを Google Security Operations に統合する方法について説明します。この統合では、EC2 ホストログの解析と Unified Data Model(UDM)へのマッピング、データ変換の実行、EC2 ホストとインスタンス間の関係の作成を行います。ログには、セキュリティ モニタリング、監査、コンプライアンスに使用できるインスタンス、ホスト プロパティ、インスタンス タイプ、パフォーマンス指標に関する貴重な情報が含まれています。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • AWS への特権アクセス権があることを確認します。

AWS IAM と S3 を構成する

  1. バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
  2. 後で使用するために、バケットの名前リージョンを保存します。
  3. IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
  4. 作成した [ユーザー] を選択します。
  5. [セキュリティ認証情報] タブを選択します。
  6. [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
  7. [ユースケース] として [サードパーティ サービス] を選択します。
  8. [次へ] をクリックします。
  9. 省略可: 説明タグを追加します。
  10. [アクセスキーを作成] をクリックします。
  11. [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
  12. [完了] をクリックします。
  13. [権限] タブを選択します。
  14. [権限ポリシー] セクションで、[権限を追加] をクリックします。
  15. [権限を追加] を選択します。
  16. [ポリシーを直接アタッチする] を選択します。
  17. AmazonS3FullAccess ポリシーを検索して選択します。
  18. [次へ] をクリックします。
  19. [権限を追加] をクリックします。

AWS KMS 用に CloudTrail を構成する

  1. AWS Management Console にログインします。
  2. 検索バーに「CloudTrail」と入力し、サービスリストから [CloudTrail] を選択します。
  3. [トレイルを作成] をクリックします。
  4. [Trail name] を指定します(例: EC2-Activity-Trail)。
  5. [組織内のすべてのアカウントで有効にする] チェックボックスをオンにします。
  6. 前に作成した S3 バケット URI(形式は s3://your-log-bucket-name/)を入力するか、新しい S3 バケットを作成します。
  7. SSE-KMS が有効になっている場合は、[AWS KMS Alias] の名前を指定するか、[既存の AWS KMS 鍵] を選択します。
  8. その他の設定はデフォルトのままにします。
  9. [次へ] をクリックします。
  10. [イベントタイプ] で [管理イベント] と [データイベント] を選択して、EC2 ホスト アクティビティをキャプチャします。
  11. [次へ] をクリックします。
  12. [Review and create] で設定を確認します。
  13. [トレイルを作成] をクリックします。
  14. 省略可: 新しいバケットを作成した場合は、次のプロセスに進みます。
    • S3 に移動します。
    • 新しく作成したログバケットを特定して選択します。
    • フォルダ [AWSLogs] を選択します。
    • [Copy S3 URI] をクリックして保存します。

AWS EC2 ホストを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: AWS EC2 Hosts Logs)。
  4. [ソースタイプ] として [Amazon S3] を選択します。
  5. [ログタイプ] として [AWS EC2 Hosts] を選択します。
  6. [次へ] をクリックします。
  7. 次の入力パラメータの値を指定します。

    • リージョン: Amazon S3 バケットが配置されているリージョン。
    • S3 URI: バケット URI。
      • s3://your-log-bucket-name/
        • your-log-bucket-name は、バケットの実際の名前に置き換えます。
    • URI is a: [ディレクトリ] または [サブディレクトリを含むディレクトリ] を選択します。
    • Source deletion options: 必要に応じて削除オプションを選択します。

    • アクセスキー ID: s3 バケットにアクセスできるユーザー アクセスキー。

    • シークレット アクセスキー: s3 バケットにアクセスできるユーザーのシークレット キー。

    • アセットの名前空間: アセットの名前空間

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  8. [次へ] をクリックします。

  9. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
AllocationTime entity.metadata.creation_timestamp AllocationTime フィールドはタイムスタンプとして解析され、creation_timestamp フィールドにマッピングされます。パーサーはさまざまな形式(yyyy-MM-dd HH:mm:ss、RFC 3339、UNIX、ISO8601)を試します。
AllowsMultipleInstanceTypes entity.entity.asset.attribute.labels.value 未加工ログの AllowsMultipleInstanceTypes の値がラベルの値として使用されます。このラベルのキーは allows_multiple_instance_types に設定されます。
AutoPlacement entity.entity.asset.attribute.labels.value 未加工ログの AutoPlacement の値がラベルの値として使用されます。このラベルのキーは auto_placement に設定されます。
AvailabilityZone entity.entity.asset.attribute.cloud.availability_zone AvailabilityZone フィールドは availability_zone フィールドに直接マッピングされます。
AvailabilityZoneID entity.entity.asset.attribute.labels.value 未加工ログの AvailabilityZoneID の値がラベルの値として使用されます。このラベルのキーは availability_zone_id に設定されます。
AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableInstanceCapacity.AvailableCapacity(または名前変更後の AvailableCapacity.Instance.Available)の値は文字列に変換され、ラベルの値として使用されます。キーは available_instance_capacity_available_capacity に設定されます。
AvailableCapacity.AvailableInstanceCapacity.InstanceType entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableInstanceCapacity.InstanceType(または名前変更後の AvailableCapacity.Instance.Type)の値は、ラベルの値として使用されます。キーは available_instance_capacity_instance_type に設定されます。
AvailableCapacity.AvailableInstanceCapacity.TotalCapacity entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableInstanceCapacity.TotalCapacity(または名前変更後の AvailableCapacity.Instance.Total)の値は文字列に変換され、ラベルの値として使用されます。キーは total_capacity に設定されます。
AvailableCapacity.AvailableVCpus entity.entity.asset.attribute.labels.value AvailableCapacity.AvailableVCpus(または名前変更後の AvailableCapacity.VCPUs)の値は文字列に変換され、ラベルの値として使用されます。キーは available_v_cpus に設定されます。
ClientToken entity.entity.asset.attribute.labels.value 未加工ログの ClientToken の値がラベルの値として使用されます。このラベルのキーは client_token に設定されます。
HostID entity.metadata.product_entity_id HostID(または名前変更後の ID)フィールドは、product_entity_id フィールドに直接マッピングされます。
HostID entity.entity.asset.asset_id HostID(または名前変更後の ID)フィールドは、asset_id フィールドに直接マッピングされます。
HostMaintenance entity.entity.asset.attribute.labels.value 未加工ログの HostMaintenance(または名前変更後の Maintenance)の値がラベルの値として使用されます。このラベルのキーは host_maintenance に設定されます。
HostProperties.Cores entity.entity.asset.hardware.cpu_number_cores HostProperties.Cores の値は符号なし整数に変換され、cpu_number_cores にマッピングされます。
HostProperties.InstanceFamily entity.entity.asset.attribute.labels.value 未加工ログの HostProperties.InstanceFamily の値がラベルの値として使用されます。このラベルのキーは host_properties_instance_family に設定されます。
HostProperties.InstanceType entity.entity.asset.attribute.labels.value 未加工ログの HostProperties.InstanceType の値がラベルの値として使用されます。このラベルのキーは host_properties_instance_type に設定されます。
HostProperties.Sockets entity.entity.asset.attribute.labels.value HostProperties.Sockets の値は文字列に変換され、ラベルの値として使用されます。キーは host_properties_sockets に設定されます。
HostProperties.TotalVCpus entity.entity.asset.attribute.labels.value HostProperties.TotalVCpus(または名前変更後の HostProperties.TotalVCPUs)の値は文字列に変換され、ラベルの値として使用されます。キーは host_properties_total_v_cpus に設定されます。
HostRecovery entity.entity.asset.attribute.labels.value 未加工ログの HostRecovery(または名前変更後の Recovery)の値がラベルの値として使用されます。このラベルのキーは host_recovery に設定されます。
HostReservationID entity.entity.asset.attribute.labels.value 未加工ログの HostReservationID(または名前変更後の ReservationID)の値がラベルの値として使用されます。このラベルのキーは host_reservation_id に設定されます。
MemberOfServiceLinkedResourceGroup entity.entity.asset.attribute.labels.value MemberOfServiceLinkedResourceGroup の値は文字列に変換され、ラベルの値として使用されます。キーは member_of_service_linked_resource_group に設定されます。
OwnerID entity.entity.asset.attribute.labels.value 未加工ログの OwnerID の値がラベルの値として使用されます。このラベルのキーは owner_id に設定されます。
ReleaseTime entity.entity.asset.attribute.labels.value 未加工ログの ReleaseTime の値がラベルの値として使用されます。このラベルのキーは release_time に設定されます。
State entity.entity.asset.attribute.labels.value 未加工ログの State の値がラベルの値として使用されます。このラベルのキーは state に設定されます。
TagSet entity.entity.asset.attribute.labels TagSet 配列が反復処理され、各タグの KeyValue がそれぞれラベルのキーと値として使用されます。値 AMAZON_WEB_SERVICES は、パーサーによってこのフィールドに割り当てられます。未加工ログの collection_timecollected_timestamp フィールドにマッピングされます。値 ASSET は、パーサーによってこのフィールドに割り当てられます。値 AWS EC2 HOSTS は、パーサーによってこのフィールドに割り当てられます。値 AWS は、パーサーによってこのフィールドに割り当てられます。関係は Instances フィールドと OutpostArn フィールドから派生しますが、これらのフィールド自体は IDM オブジェクトに直接マッピングされません。パーサーのロジックは、これらのフィールドに基づいて関係オブジェクトを作成し、それらを relations 配列にマージします。
collection_time entity.metadata.collected_timestamp ログの collection_time は、イベントの collected_timestamp として使用されます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。