フローログレコード - Amazon Virtual Private Cloud

フローログレコード

フローログレコードは、VPC のネットワークの流れを表します。デフォルトでは、各レコードは、集約間隔 (キャプチャウィンドウとも呼ばれる) 内で発生するネットワークインターネットプロトコル (IP) トラフィックフロー (ネットワークインターフェイスごとに 5 タプルによって特徴付けられる) をキャプチャします。

各レコードは、スペースで区切られたフィールドから成る文字列です。送信元、送信先、プロトコルなど、レコードには IP フローのさまざまなコンポーネントの値が含まれています。

フローログを作成するときは、フローログレコードのデフォルトの形式を使用するか、カスタム形式を指定できます。

集約間隔

集約間隔は、特定のフローがキャプチャされ、フローログレコードに集約される期間です。デフォルトでは、最大の集約間隔が 10 分に設定されています。フローログを作成する場合、オプションで最大集約間隔を 1 分に指定できます。最大集約間隔が 1 分のフローログでは、最大集約間隔が 10 分のフローログよりも多くのフローログレコードが生成されます。

ネットワークインターフェイスが Nitro ベースのインスタンスにアタッチされている場合、指定した最大集約間隔に関係なく、集約間隔は常に 1 分以下になります。

集約間隔内にデータが取得された後、データの処理および CloudWatch Logs または Amazon S3 へのパブリッシュにさらに時間がかかります。フローログサービスは、通常、約 5 分で CloudWatch Logs に、約 10 分で Amazon S3 にログを配信します。ただし、ログの配信はベストエフォートベースであり、通常の配信時間を超えてログが遅れる可能性があります。

デフォルトの形式

デフォルトの形式では、フローログレコードには、使用可能なフィールドテーブルに表示される順序でバージョン 2 のフィールドが含まれます 。デフォルトの形式をカスタマイズまたは変更することはできません。使用可能なすべてのフィールドまたはフィールドの異なるサブセットをキャプチャするには、代わりにカスタム形式を指定します。

カスタム形式

カスタム形式を使用して、フローログレコードに含めるフィールドと順序を指定します。これにより、ニーズに合ったフローログを作成し、関連のないフィールドを省略できます。カスタム形式を使用すると、発行されたフローログから特定の情報を抽出する別個のプロセスが不要になります。使用可能なフローログフィールドは任意の数指定できますが、少なくとも 1 つ指定する必要があります。

使用可能なフィールド

次に表に、フローログレコードの使用可能なすべてのフィールドを示します。[Version (バージョン)] 列には、フィールドが導入された VPC フローログのバージョンが表示されます。デフォルトの形式には、すべてのバージョン 2 フィールドが含まれ、順番はテーブルと同じです。

Amazon S3 にフローログデータを公開する場合、フィールドのデータ型はフローログ形式によって異なります。形式がプレーンテキストの場合、すべてのフィールドは STRING 形式です。形式が Parquet の場合は、フィールドのデータ型の表を参照してください。

フィールドが特定のレコードに該当しないか、特定のレコードに対して計算できなかった場合、レコードでそのエントリには「-」記号が表示されます。パケットヘッダーから直接取得されないメタデータフィールドは、ベストエフォート近似値であり、値が欠落しているか、不正確である可能性があります。

フィールド 説明 バージョン

version

VPC フローログバージョン。デフォルトの形式を使用する場合、バージョンは 2 です。カスタム形式を使用する場合、そのバージョンは指定されたフィールドの中で最も高いバージョンです。例えば、バージョン 2 のフィールドのみを指定した場合、バージョンは 2 です。バージョン 2、3、4 のフィールドを混在させて指定すると、バージョンは 4 になります。

Parquet データ型: INT_32

2

account-id

トラフィックが記録されるソースネットワークインターフェイスの所有者の AWS アカウント ID。ネットワークインターフェイスが AWS のサービスによって作成された場合 (VPC エンドポイントまたは Network Load Balancer の作成時など)、このフィールドに対してレコードに unknown と表示されることがあります。

Parquet データ型: STRING

2

interface-id

トラフィックが記録されるネットワークインターフェイスの ID。

Parquet データ型: STRING

2

srcaddr

受信トラフィックの送信元アドレスか、ネットワークインターフェイスにおける送信トラフィックのネットワークインターフェイスの IPv4 または IPv6 アドレス。ネットワークインターフェイスの IPv4 アドレスは常にそのプライベート IPv4 アドレスです。「pkt-srcaddr」も参照してください。

Parquet データ型: STRING

2

dstaddr

送信トラフィックの送信先アドレスか、ネットワークインターフェイスにおける受信トラフィックのネットワークインターフェイスの IPv4 または IPv6 アドレス。ネットワークインターフェイスの IPv4 アドレスは常にそのプライベート IPv4 アドレスです。「pkt-dstaddr」も参照してください。

Parquet データ型: STRING

2

srcport

トラフィックの送信元ポート。

Parquet データ型: INT_32

2

dstport

トラフィックの送信先ポート。

Parquet データ型: INT_32

2

protocol

トラフィックの IANA プロトコル番号。詳細については、「割り当てられたインターネットプロトコル番号」を参照してください。

Parquet データ型: INT_32

2

packets

フロー中に転送されたパケットの数。

Parquet データ型: INT_64

2

bytes

フロー中に転送されたバイト数。

Parquet データ型: INT_64

2

start

集約間隔内にフローの最初のパケットが受信された時間 (UNIX 秒)。これは、パケットがネットワークインターフェイス上で送信または受信されてから最大 60 秒になる場合があります。

Parquet データ型: INT_64

2

end

集約間隔内にフローの最後のパケットが受信された時間 (UNIX 秒)。これは、パケットがネットワークインターフェイス上で送信または受信されてから最大 60 秒になる場合があります。

Parquet データ型: INT_64

2

action

トラフィックに関連付けられたアクション:

  • ACCEPT ― トラフィックが承認されました。

  • REJECT ― トラフィックが拒否されました。例えば、トラフィックがセキュリティグループまたはネットワーク ACL により許可されなかった、接続終了後にパケットが到着したなどです。

Parquet データ型: STRING

2

log-status

フローログのロギングステータス。

  • OK — データは選択された送信先に正常に記録されます。

  • NODATA — 集約間隔内にネットワークインターフェイスとの間で行き来するネットワークトラフィックはありませんでした。

  • SKIPDATA — 集約間隔内に一部のフローログレコードがスキップされました。これは、内部的なキャパシティー制限、または内部エラーが原因である可能性があります。

    集計間隔中に一部のフローログレコードがスキップされることがあります (使用可能なフィールド の log-status を参照)。これは、内部の AWS キャパシティの制限または内部エラーが原因で発生する場合があります。VPC フローログの請求金額を表示するために AWS Cost Explorer を使用しており、一部のフローログがフローログの集計間隔中にスキップされた場合は、AWS Cost Explorer で報告されるフローログの数が Amazon VPC により発行されたフローログの数よりも多くなります。

Parquet データ型: STRING

2

vpc-id

トラフィックが記録されるネットワークインターフェイスが含まれる VPC の ID。

Parquet データ型: STRING

3

subnet-id

トラフィックが記録されるネットワークインターフェイスが含まれるサブネットの ID。

Parquet データ型: STRING

3

instance-id

インスタンスをお客様が所有している場合、トラフィックが記録されるネットワークインターフェイスに関連するインスタンスの ID。リクエスタマネージド型のネットワークインターフェイス (NAT ゲートウェイのネットワークインターフェイスなど) の場合、「-」記号を返します。

Parquet データ型: STRING

3

tcp-flags

次の TCP フラグのビットマスク値:

  • FIN — 1

  • SYN — 2

  • RST — 4

  • SYN-ACK — 18

サポートされているフラグが記録されていない場合、TCP フラグ値は 0 です。例えば、tcp-flags は ACK または PSH フラグのロギングをサポートしていないため、これらのサポートされていないフラグを持つトラフィックのレコードは TCP フラグの値が 0 になります。ただし、サポートされていないフラグにサポートされているフラグが付いている場合は、サポートされているフラグの値を報告します。たとえば、ACK が SYN-ACK の一部であれば、18 と報告します。また、SYN+ECE のようなレコードがある場合、SYN はサポートされているフラグで ECE はサポートされていないため、TCP フラグの値は 2 になります。何らかの理由でフラグの組み合わせが無効で値を計算できない場合、値は「-」になります。フラグが送信されていない場合、TCP フラグの値は 0 です。

TCP フラグは、集約間隔内に OR 処理することができます。短い接続の場合、フラグがフローログレコードの同じ行に設定されることがあります (例えば、SYN-ACK と FIN の場合は 19、SYN と FIN の場合は 3 など)。例については、「TCP フラグシーケンス」を参照してください。

TCP フラグの一般的な情報 (FIN、SYN、ACK などのフラグの意味など) については、Wikipedia の「TCP セグメント構造」を参照してください。

Parquet データ型: INT_32

3

type

トラフィックの種類。指定できる値は IPv4 | IPv6 | EFA です。詳細については、Elastic Fabric Adapterを参照してください。

Parquet データ型: STRING

3

pkt-srcaddr

トラフィックのパケットレベルの (元の) 送信元 IP アドレス。srcaddr フィールドとともにこのフィールドを使用し、トラフィックが通過する中間レイヤーの IP アドレスとトラフィックの元の送信元 IP アドレスを区別します。例えば、トラフィックが NAT ゲートウェイのネットワークインターフェイスを通過する場合や、Amazon EKS 内のポッドの IP アドレスが、ポッドが実行されているインスタンスノードのネットワークインターフェイスの IP アドレスとは異なる場合などです (VPC 内の通信の場合)。

Parquet データ型: STRING

3

pkt-dstaddr

トラフィックのパケットレベルの (元の) 送信先 IP アドレス。dstaddr フィールドとともにこのフィールドを使用し、トラフィックが通過する中間レイヤーの IP アドレスとトラフィックの最終的な送信元 IP アドレスを区別します。例えば、トラフィックが NAT ゲートウェイのネットワークインターフェイスを通過する場合や、Amazon EKS 内のポッドの IP アドレスが、ポッドが実行されているインスタンスノードのネットワークインターフェイスの IP アドレスとは異なる場合などです (VPC 内の通信の場合)。

Parquet データ型: STRING

3

region

トラフィックが記録されるネットワークインターフェイスが含まれるリージョン。

Parquet データ型: STRING

4

az-id

トラフィックが記録されるネットワークインターフェイスが含まれるアベイラビリティーゾーンの ID。トラフィックがサブロケーションからの場合、レコードにはこのフィールドに「-」記号が表示されます。

Parquet データ型: STRING

4

sublocation-type

sublocation-id フィールドに返されるサブロケーションのタイプ。指定可能な値は次のとおりです: wavelength | outpost | localzone。トラフィックがサブロケーションからではない場合、レコードにはこのフィールドに「-」記号が表示されます。

Parquet データ型: STRING

4

sublocation-id

トラフィックが記録されるネットワークインターフェイスが含まれるサブロケーションの ID。トラフィックがサブロケーションからではない場合、レコードにはこのフィールドに「-」記号が表示されます。

Parquet データ型: STRING

4

pkt-src-aws-service

pkt-srcaddr フィールド用の IP アドレスの範囲のサブセットの名前 (送信元 IP アドレスが AWS のサービス用の場合)。pkt-srcaddr が重複範囲に属している場合、pkt-src-aws-service には AWS サービスコードの 1 つだけが表示されます。指定可能な値は次のとおりです:AMAZON |AMAZON_APPFLOW |AMAZON_CONNECT |API_GATEWAY |CHIME_MEETINGS |CHIME_VOICECONNECTOR |CLOUD9 |CLOUDFRONT |CODEBUILD |DYNAMODB |EBS |EC2 |EC2_INSTANCE_CONNECT |GLOBALACCELERATOR |KINESIS_VIDEO_STREAMS |ROUTE53 |ROUTE53_HEALTHCHECKS |ROUTE53_HEALTHCHECKS_PUBLISHING |ROUTE53_RESOLVER |S3 |WORKSPACES_GATEWAYS。

Parquet データ型: STRING

5

pkt-dst-aws-service

pkt-dstaddr フィールド用の IP アドレスの範囲のサブセットの名前 (送信先 IP アドレスが AWS のサービス用の場合)。可能な値の一覧については、pkt-src-aws-service フィールドをご参照ください。

Parquet データ型: STRING

5

flow-direction

トラフィックがキャプチャされるインターフェイスに対するフローの方向。指定できる値は次のとおりです: ingress | egress。

Parquet データ型: STRING

5

traffic-path

出力トラフィックが送信先につながるパス。トラフィックが出力トラフィックであるかどうかを判断するには、flow-direction フィールドを確認します。指定できる値は次のとおりです。いずれの値も適用されない場合、フィールドは - に設定されます。

  • 1 — 同じ VPC 内の別のリソース (VPC 内のネットワークインターフェイスを作成するリソースを含む) を経由する

  • 2 — インターネットゲートウェイまたはゲートウェイ VPC エンドポイント経由

  • 3 — 仮想プライベートゲートウェイ経由

  • 4 — リージョン内 VPC ピア接続経由

  • 5 — リージョン間 VPC ピア接続経由

  • 6 — ローカルゲートウェイ経由

  • 7 — ゲートウェイ VPC エンドポイント経由 (Nitro ベースのインスタンスのみ)

  • 8 — インターネットゲートウェイ経由 (Nitro ベースのインスタンスのみ)

Parquet データ型: INT_32

5

ecs-cluster-arn

トラフィックが実行中の ECS タスクからのものである場合の ECS クラスターの AWS リソースネーム (ARN)。このフィールドをサブスクリプションに含めるには、ecs:ListClusters を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-cluster-name

トラフィックが実行中の ECS タスクからのものである場合の ECS クラスターの名前。このフィールドをサブスクリプションに含めるには、ecs:ListClusters を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-container-instance-arn

トラフィックが EC2 インスタンスで実行中の ECS タスクからのものである場合の ECS コンテナインスタンスの ARN。キャパシティープロバイダーが AWS Fargate の場合、このフィールドは「-」になります。このフィールドをサブスクリプションに含めるには、ecs:ListClusters と ecs:ListContainerInstances を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-container-instance-id

トラフィックが EC2 インスタンスで実行中の ECS タスクからのものである場合の ECS コンテナインスタンスの ID。キャパシティープロバイダーが AWS Fargate の場合、このフィールドは「-」になります。このフィールドをサブスクリプションに含めるには、ecs:ListClusters と ecs:ListContainerInstances を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-container-id

トラフィックが実行中の ECS タスクからのものである場合のコンテナの Docker ランタイム ID。ECS タスクに 1 つまたは複数のコンテナがある場合、これは最初のコンテナの Docker ランタイム ID になります。このフィールドをサブスクリプションに含めるには、ecs:ListClusters を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-second-container-id

トラフィックが実行中の ECS タスクからのものである場合のコンテナの Docker ランタイム ID。ECS タスクに 1 つ以上のコンテナがある場合、これは 2 番目のコンテナの Docker ランタイム ID になります。このフィールドをサブスクリプションに含めるには、ecs:ListClusters を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-service-name

トラフィックが実行中の ECS タスクからのもので、ECS タスクが ECS サービスによって開始される場合の ECS サービスの名前。ECS サービスによって ECS タスクが開始されない場合、このフィールドは「-」になります。このフィールドをサブスクリプションに含めるには、ecs:ListClusters と ecs:ListServices を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-task-definition-arn

トラフィックが実行中の ECS タスクからのものである場合の ECS タスク定義の ARN。このフィールドをサブスクリプションに含めるには、ecs:ListClusters と ecs:ListTaskDefinitions を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-task-arn

トラフィックが実行中の ECS タスクからのものである場合の ECS タスクの ARN。このフィールドをサブスクリプションに含めるには、ecs:ListClusters と ecs:ListTasks を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

ecs-task-id

トラフィックが実行中の ECS タスクからのものである場合の ECS タスクの ID。このフィールドをサブスクリプションに含めるには、ecs:ListClusters と ecs:ListTasks を呼び出すアクセス許可が必要です。

Parquet データ型: STRING

7

reject-reason

トラフィックが拒否された理由。可能な値: BPA。他の拒否理由の場合は「-」を返します。VPC ブロックパブリックアクセス (BPA) についての詳細は、「VPC とサブネットへのパブリックアクセスをブロックする」を参照してください。

Parquet データ型: STRING

8