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

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

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

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

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

始める前に

AWS VPC フローを構成する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. [最大集計間隔] セクションで、[1 分] を選択します。

  3. [宛先] セクションで、[Amazon S3 バケットに送信] を選択します。

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

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

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

  7. [ログ形式] リストで、すべての属性を選択します。

  8. [形式のプレビュー] セクションで、カスタム形式を確認します。

  9. [ログファイル形式] セクションで、[テキスト(デフォルト)] を選択します。

  10. [Hive 互換の S3 接頭辞] セクションで、[有効にする] チェックボックスをオフのままにします。

  11. [時間でログを分割] セクションで、[1 時間ごと(60 分)] を選択します。

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

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

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

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

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

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

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

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

  2. [最大集計間隔] セクションで、[1 分] を選択します。

  3. [宛先] セクションで、[CloudWatch Logging に送信] を選択します。

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

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

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

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

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

  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. [転送元の名前] に一意の名前を入力します。
  4. [送信]、[確認] の順にクリックします。フォワーダーが追加され、[コレクタの構成を追加する] ウィンドウが表示されます。
  5. [コレクタ名] フィールドに名前を入力します。
  6. [ログタイプ] フィールドで、[AWS VPC Flow] を選択します。
  7. [コレクタのタイプ] フィールドで [Syslog] を選択します。
  8. 次の必須入力パラメータを構成します。
    • プロトコル: コレクタが syslog データのリッスンに使用する接続プロトコルを指定します。
    • アドレス: コレクタが存在し、Syslog データのアドレスが設定されているターゲット IP アドレスまたはホスト名を指定します。
    • ポート: コレクタが存在し、syslog データをリッスンするターゲット ポートを指定します。
  9. [送信]、[確認] の順にクリックします。

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] フィールドから作成された対応する各ラベルの値が入力されます。
なし event.idm.entity.entity.resource.attribute.cloud.environment パーサーコードで「AMAZON_WEB_SERVICES」にハードコードされています。
なし event.idm.entity.entity.resource.resource_type パーサーコードで「VPC_NETWORK」にハードコードされています。
なし event.idm.entity.metadata.collected_timestamp イベントのタイムスタンプが入力されます。このタイムスタンプは、元のログの「collection_time」フィールドから取得されます。
なし event.idm.entity.metadata.entity_type パーサーコードで「RESOURCE」にハードコードされています。
なし event.idm.entity.metadata.product_name パーサーコードで「Amazon VPC」にハードコードされています。
なし event.idm.entity.metadata.vendor_name パーサーコードで「AWS」にハードコードされています。
なし events.timestamp イベントのタイムスタンプが入力されます。このタイムスタンプは、元のログの「collection_time」フィールドから取得されます。