AWS VPC のフローログを収集する

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

このドキュメントでは、Google Security Operations フォワーダーを使用して AWS VPC のフローログを収集する方法について説明します。

詳細については、Google Security Operations へのデータの取り込みの概要をご覧ください。

取り込みラベルによって、未加工のログデータを構造化 UDM 形式に正規化するパーサーが識別されます。このドキュメントの情報は、取り込みラベル AWS_VPC_FLOW が付加されたパーサーに適用されます。

始める前に

AWS VPC フローを構成する

ログを Amazon S3 に転送するか、Amazon CloudWatch に転送するかに応じて、AWS VPC フローを構成します。

ログを Amazon S3 に転送するようにフローログを構成する

Amazon S3 バケットを作成して構成したら、ネットワーク インターフェース、サブネット、VPC ネットワークのフローログを作成できます。

ネットワーク インターフェースのフローログを作成する

  1. Amazon EC2 コンソールにログインします。
  2. ナビゲーション パネルで [Network Interfaces] を選択します。
  3. 1 つ以上のネットワーク インターフェースを選択します。
  4. [Actions] > [Create flow log] を選択します。
  5. フローログの設定を構成します。詳細については、このドキュメントのフローログの設定を構成するをご覧ください。

サブネットのフローログを作成する

  1. Amazon VPC コンソールにログインします。
  2. ナビゲーション パネルで [Subnets] を選択します。
  3. 1 つ以上のサブネットを選択します。
  4. [Actions] > [Create flow log] を選択します。
  5. フローログの設定を構成します。詳細については、このドキュメントのフローログの設定を構成するをご覧ください。

VPC のフローログを作成する

  1. Amazon VPC コンソールにログインします。
  2. ナビゲーション パネルで [VPC] を選択します。
  3. 1 つ以上の VPC を選択します。
  4. [Actions] > [Create flow log] を選択します。
  5. フローログの設定を構成します。詳細については、このドキュメントのフローログの設定を構成するをご覧ください。

フローログの設定を構成する

  1. [Filter] セクションで、ロギングする IP トラフィックを指定します。

    • Accept: 受け入れられたトラフィックのみをログに記録します。

    • Reject: 拒否されたトラフィックのみをログに記録します。

    • All: 承認されたトラフィックと拒否されたトラフィックをログに記録します。

  2. [Maximum aggregation interval] セクションで、[1 minute] を選択します。

  3. [Destination] セクションで、[Send to an Amazon S3 bucket] を選択します。

  4. [S3 bucket ARN] セクションで、Amazon S3 バケットの ARN を指定します。

  5. [Log record format] セクションで、フローログレコードの形式を次のように指定します。

    1. デフォルトのフローログ レコード形式を使用するには、[AWS default format] を選択します。
    2. カスタム フォーマットを作成するには、[Custom format] を選択します。
  6. MSS の True IP 機能を使用するように、カスタム AWS ログ形式で VPC ログフローを構成します。

  7. [Log format] リストで、すべての属性を選択します。

  8. [Format preview] セクションで、カスタム形式を確認します。

  9. [Log file format] セクションで、[Text (default)] を選択します。

  10. [Hive-compatible S3 prefix] セクションで、[Enable] チェックボックスをオフのままにします。

  11. [Partition logs by time] セクションで、[Every 1 hour (60 mins)] を選択します。

  12. フローログにタグを追加するには、[Add new tag] を選択してタグキーと値を指定します。

  13. [Create flow log] を選択します。詳細については、フローログを Amazon S3 にパブリッシュするをご覧ください。

Amazon CloudWatch へのフローログを構成する

フローログは、VPC、サブネット、ネットワーク インターフェースのいずれかから構成できます。

  1. [Filter] セクションで、ログに記録する IP トラフィックのタイプを指定します。

    • Accept: 受け入れられたトラフィックのみをログに記録します。

    • Reject: 拒否されたトラフィックのみをログに記録します。

    • All: 承認されたトラフィックと拒否されたトラフィックをログに記録します。

  2. [Maximum aggregation interval] セクションで、[1 minute] を選択します。

  3. [Destination] セクションで、[Send to CloudWatch Logs] を選択します。

  4. [Destination log group] セクションで、作成した宛先ロググループの名前を指定します。

  5. [IAM role] リストで、ロール名を選択します。選択したロール名には、CloudWatch Logs にログをパブリッシュする権限があります。

    IAM ロールには、次の権限が必要です。

       {
         "Version": "2012-10-17",
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "logs:CreateLogGroup",
               "logs:CreateLogStream",
               "logs:PutLogEvents",
               "logs:DescribeLogGroups",
               "logs:DescribeLogStreams"
           ],
           "Resource": "*"
         }
        ]
       }
    
  6. [Log record format] セクションで、フローログ レコードの [Custom format] を選択します。

  7. フローログにタグを追加するには、[Add new tag] を選択してタグキーと値を指定します。

  8. [Create flow log] を選択します。詳細については、フローログを Amazon S3 にパブリッシュするをご覧ください。

Amazon S3 は、イベント通知を Amazon SQS に送信するように構成できます。詳細については、通知用のバケットの構成(SNS トピックまたは SQS キュー)をご覧ください。

ログ収集方法として Amazon SQS(Amazon SQS を使用する Amazon S3)を使用する場合は、Amazon S3 と Amazon SQS に IAM ユーザー ポリシーが必要です。詳細については、AWS KMS での IAM ポリシーの使用をご覧ください。

サービスとリージョンに基づいて、次の AWS ドキュメントを参照して接続のエンドポイントを特定します。

AWS VPC フローログを取り込むように Google Security Operations フォワーダーと Syslog を構成する

  1. [SIEM の設定] > [フォワーダー] を選択します。
  2. [新しいフォワーダーの追加] をクリックします。
  3. [Forwarder name] に一意の名前を入力します。
  4. [Submit]、[Confirm] の順にクリックします。フォワーダーが追加され、[Add collector configuration] ウィンドウが表示されます。
  5. [Collector name] フィールドに名前を入力します。
  6. [Log type] フィールドで、[AWS VPC Flow] を選択します。
  7. [Collector type] フィールドで [Syslog] を選択します。
  8. 次の必須入力パラメータを構成します。
    • Protocol: コレクタが syslog データのリッスンに使用する接続プロトコルを指定します。
    • Address: コレクタが存在し、syslog データのアドレスが設定されているターゲット IP アドレスまたはホスト名を指定します。
    • Port: コレクタが存在し、syslog データをリッスンするターゲット ポートを指定します。
  9. [Submit]、[Confirm] の順にクリックします。

Google Security Operations フォワーダーの詳細については、Google Security Operations フォワーダーのドキュメントをご覧ください。各フォワーダ タイプの要件については、タイプ別のフォワーダ構成をご覧ください。

フォワーダーの作成時に問題が発生した場合は、Google Security Operations サポートにお問い合わせください。

フィールド マッピング リファレンス

このパーサーコードは、EC2 VPC イベントを記述する未加工の AWS CloudTrail ログを JSON 形式で取得し、構造化 UDM 形式に変換します。関連するフィールドを抽出し、UDM スキーマに合わせて名前を変更します。また、リソースタイプ、クラウド環境、ラベルなどの追加のコンテキストでデータを拡充し、分析を容易にします。

AWS EC2 VPC パーサー向けの UDM マッピング テーブル

ログフィールド(昇順) UDM マッピング 論理
CidrBlock event.idm.entity.entity.resource.attribute.labels.cidr_block 未加工ログの「CidrBlock」フィールドから直接マッピングされます。
CidrBlock event.idm.entity.entity.network.ip_subnet_range 未加工ログの「CidrBlock」フィールドから直接マッピングされます。
CidrBlockAssociation.AssociationID event.idm.entity.entity.resource.attribute.labels.cidr_block_association_association_id 未加工ログの「CidrBlockAssociation」配列内の「AssociationID」フィールドから直接マッピングされます。
CidrBlockAssociation.CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_state 未加工ログの「CidrBlockAssociation」配列の「CidrBlockState」オブジェクト内の「State」フィールドから直接マッピングされます。
CidrBlockAssociation.CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.cidr_block_association_cidr_block_state_status_message 未加工ログの「CidrBlockAssociation」配列の「CidrBlockState」オブジェクト内の「StatusMessage」フィールドから直接マッピングされます。
DhcpOptionsID event.idm.entity.entity.resource.attribute.labels.dhcp_options_id 未加工ログの「DhcpOptionsID」フィールドから直接マッピングされます。
ID event.idm.entity.entity.resource.product_object_id 未加工ログの「ID」フィールドから直接マッピングされます。このフィールドは、パーサーで「VpcID」に名前が変更されています。
ID event.idm.entity.metadata.product_entity_id 未加工ログの「ID」フィールドから直接マッピングされます。このフィールドは、パーサーで「VpcID」に名前が変更されています。
InstanceTenancy event.idm.entity.entity.resource.attribute.labels.instance_tenancy 未加工ログの「InstanceTenancy」フィールドから直接マッピングされます。
IsDefault event.idm.entity.entity.resource.attribute.labels.is_default 未加工ログの「IsDefault」フィールドから直接マッピングされます。
Ipv6CidrBlockAssociationSet.AssociationID event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_association_id 未加工ログの「Ipv6CidrBlockAssociationSet」配列内の「AssociationID」フィールドから直接マッピングされます。
Ipv6CidrBlockAssociationSet.Ipv6CidrBlock event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block 未加工ログの「Ipv6CidrBlockAssociationSet」配列内の「Ipv6CidrBlock」フィールドから直接マッピングされます。
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.State event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_state 未加工ログの「Ipv6CidrBlockAssociationSet」配列の「Ipv6CidrBlockState」オブジェクト内の「State」フィールドから直接マッピングされます。
Ipv6CidrBlockAssociationSet.Ipv6CidrBlockState.StatusMessage event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_cidr_block_state_status_message 未加工ログの「Ipv6CidrBlockAssociationSet」配列の「Ipv6CidrBlockState」オブジェクト内の「StatusMessage」フィールドから直接マッピングされます。
Ipv6CidrBlockAssociationSet.Ipv6Pool event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_ipv6_pool 未加工ログの「Ipv6CidrBlockAssociationSet」配列内の「Ipv6Pool」フィールドから直接マッピングされます。
Ipv6CidrBlockAssociationSet.NetworkBorderGroup event.idm.entity.entity.resource.attribute.labels.ipv6_cidr_block_association_set_network_border_group 未加工ログの「Ipv6CidrBlockAssociationSet」配列内の「NetworkBorderGroup」フィールドから直接マッピングされます。
OwnerID event.idm.entity.entity.resource.attribute.labels.owner_id 未加工ログの「OwnerID」フィールドから直接マッピングされます。
State event.idm.entity.entity.resource.attribute.labels.state 未加工ログの「State」フィールドから直接マッピングされます。
TagSet.Key event.idm.entity.entity.resource.attribute.labels.key 未加工ログの「TagSet」配列内の「Key」フィールドから直接マッピングされます。これにより、「TagSet」内のタグごとに新しいラベルが作成されます。
TagSet.Value event.idm.entity.entity.resource.attribute.labels.value 未加工ログの「TagSet」配列内の「Value」フィールドから直接マッピングされます。これにより、[Key] フィールドから作成された対応する各ラベルの値が入力されます。
N/A event.idm.entity.entity.resource.attribute.cloud.environment パーサーコードで「AMAZON_WEB_SERVICES」にハードコードされています。
N/A event.idm.entity.entity.resource.resource_type パーサーコードで「VPC_NETWORK」にハードコードされます。
N/A event.idm.entity.metadata.collected_timestamp イベントのタイムスタンプが入力されます。このタイムスタンプは、未加工ログの「collection_time」フィールドから取得されます。
N/A event.idm.entity.metadata.entity_type パーサーコードで「RESOURCE」にハードコードされます。
N/A event.idm.entity.metadata.product_name パーサーコードで「Amazon VPC」にハードコードされます。
N/A event.idm.entity.metadata.vendor_name パーサーコードで「AWS」にハードコードされます。
N/A events.timestamp イベントのタイムスタンプが入力されます。このタイムスタンプは、未加工ログの「collection_time」フィールドから取得されます。

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