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

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

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: AWS EC2 Hosts Logs)。
  4. [ソースタイプ] として [Amazon S3] を選択します。
  5. [ログタイプ] として [AWS EC2 ホスト] を選択します。
  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 として使用されます。

変更点

2024-01-31

  • 新しいスキーマのサポートを追加しました。

2023-12-14

  • 新しく作成されたパーサー。

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