Amazon Virtual Private Cloud
ユーザーガイド

VPC フローログ

VPC フローログは、VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報をキャプチャできるようにする機能です。フローログデータは Amazon CloudWatch Logs と Amazon S3 に発行できます。フローログを作成すると、選択した送信先でそのデータを取得して表示できます。

フローログは、以下のような多くのタスクに役立ちます。

  • 制限の過度に厳しいセキュリティグループルールを診断する

  • インスタンスに到達するトラフィックをモニタリングする

  • ネットワークインターフェイスに出入りするトラフィックの方向を決定する

例については、「フローログレコードの例」を参照してください。

CloudWatch Logs の料金は、送信先が CloudWatch Logs であるか Amazon S3 であるかにかかわらず、フローログを使用するときに適用されます。詳細については、Amazon CloudWatch 料金表をご覧ください。

フローログの基礎

VPC、サブネット、またはネットワークインターフェイスのフローログを作成できます。サブネットまたは VPC のフローログを作成する場合、そのサブネットまたは VPC 内の各ネットワークインターフェイスがモニタリングされます。

モニタリングされるネットワークインターフェイスのフローログデータは、フローログレコードとして記録されます。これは、トラフィックフローについて説明するフィールドで構成されるログイベントです。詳細については、「フローログレコード」を参照してください。

フローログを作成するには、以下の内容を指定します。

  • フローログを作成するリソース

  • キャプチャするトラフィックの種類 (許可されたトラフィック、拒否されたトラフィック、またはすべてのトラフィック)

  • フローログデータを発行する送信先

フローログを作成した後で、データの収集と選択された送信先への発行が開始されるまでに数分かかる場合があります。フローログで、ネットワークインターフェイスのリアルタイムのログストリームはキャプチャされません。詳細については、「フローログの作成」を参照してください。

サブネットまたは VPC のフローログを作成した後で、サブネットにさらに多くのインスタンスを起動する場合、新しいネットワークインターフェイスごとに新しいログストリーム (CloudWatch Logs の場合) またはログファイルオブジェクト (Amazon S3 の場合) が作成されます。これは、そのネットワークインターフェイス用にネットワークトラフィックが記録されるとすぐに行われます。

他の AWS サービスによって作成されたネットワークインターフェイスのフローログを作成できます。たとえば、次のとおりです。

  • Elastic Load Balancing

  • Amazon RDS

  • Amazon ElastiCache

  • Amazon Redshift

  • Amazon WorkSpaces

  • NAT ゲートウェイ

  • トランジットゲートウェイ

ネットワークインターフェイスの種類にかかわらず、Amazon EC2 コンソールまたは Amazon EC2 API を使用してネットワークインターフェイスのフローログを作成する必要があります。

フローログが不要になった場合には、それを削除することができます。フローログを削除すると、リソースのフローログサービスは無効になり、新しいフローログレコードは作成されず、CloudWatch Logs または Amazon S3 にも発行されません。フローログを削除しても、ネットワークインターフェイスの既存のフローログレコードやログストリーム (CloudWatch Logs の場合) またはログファイルオブジェクト (Amazon S3 の場合) は削除されません。既存のログストリームを削除するには、CloudWatch Logs コンソールを使用します。既存のログファイルオブジェクトを削除するには、Amazon S3 コンソールを使用します。フローログを削除した後で、データの収集が中止するまでに数分かかる場合があります。詳細については、「フローログの削除」を参照してください。

フローログレコード

フローログレコードは、VPC のネットワークの流れを表します。デフォルトでは、各レコードはキャプチャウィンドウ内に発生するネットワークインターネットプロトコル (IP) トラフィックフローをキャプチャします。キャプチャウィンドウとは、データのすべてのフローがキャプチャされる最大 10 分間の期間のことです。データのキャプチャ、処理、発行にかかる合計時間は、集計期間と呼ばれます。集計期間は最大 15 分間です。

デフォルトでは、送信元、送信先、プロトコルなど、レコードには IP フローのさまざまなコンポーネントの値が含まれています。

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

デフォルトの形式

デフォルトでは、フローログレコードのログの行形式は、次のフィールドセットが次の順序で含まれているスペース区切り文字列です。

<version> <account-id> <interface-id> <srcaddr> <dstaddr> <srcport> <dstport> <protocol> <packets> <bytes> <start> <end> <action> <log-status>

フィールドの詳細については、「使用可能なフィールド」を参照してください。デフォルトの形式では、フローログレコードの使用可能なすべてのフィールドのサブセットのみキャプチャされます。使用可能なすべてのフィールドまたはフィールドの異なるサブセットをキャプチャするには、カスタム形式を指定します。デフォルトの形式をカスタマイズまたは変更することはできません。

デフォルトの形式は、CloudWatch Logs または Amazon S3 に発行されるフローログでサポートされます。

カスタム形式

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

カスタム形式は、Amazon S3 にのみ発行されるフローログでサポートされます。

使用可能なフィールド

次に表に、フローログレコードの使用可能なすべてのフィールドを示します。

重要

CloudWatch Logs に発行されるフローログでは、デフォルトの形式のみサポートされます。

フィールド 説明 フローログの送信先
version VPC フローログバージョン。デフォルトの形式を使用する場合、バージョンは 2 です。カスタム形式を指定した場合、バージョンは 3 です。 CloudWatch Logs または Amazon S3
account-id フローログの AWS アカウント ID。 CloudWatch Logs または Amazon S3
interface-id トラフィックが記録されるネットワークインターフェイスの ID。 CloudWatch Logs または Amazon S3
srcaddr 受信トラフィックの送信元アドレスか、ネットワークインターフェイスにおける送信トラフィックのネットワークインターフェイスの IPv4 または IPv6 アドレス。ネットワークインターフェイスの IPv4 アドレスは常にそのプライベート IPv4 アドレスです。「pkt-srcaddr」も参照してください。 CloudWatch Logs または Amazon S3
dstaddr 送信トラフィックの送信先アドレスか、ネットワークインターフェイスにおける受信トラフィックのネットワークインターフェイスの IPv4 または IPv6 アドレス。ネットワークインターフェイスの IPv4 アドレスは常にそのプライベート IPv4 アドレスです。「pkt-dstaddr」も参照してください。 CloudWatch Logs または Amazon S3
srcport トラフィックの送信元ポート。 CloudWatch Logs または Amazon S3
dstport トラフィックの送信先ポート。 CloudWatch Logs または Amazon S3
protocol トラフィックの IANA プロトコル番号。詳細については、「割り当てられたインターネットプロトコル番号」を参照してください。 CloudWatch Logs または Amazon S3
packets フロー中に転送されたパケットの数。 CloudWatch Logs または Amazon S3
bytes フロー中に転送されたバイト数。 CloudWatch Logs または Amazon S3
start フローの開始時刻 (Unix 時間)。 CloudWatch Logs または Amazon S3
end フローの終了時刻 (Unix 時間)。 CloudWatch Logs または Amazon S3
action トラフィックに関連付けられたアクション:
  • ACCEPT: 記録されたトラフィックは、セキュリティグループまたはネットワーク ACL で許可されています。

  • REJECT: 記録されたトラフィックは、セキュリティグループまたはネットワーク ACL で許可されていません。

CloudWatch Logs または Amazon S3
log-status フローログのロギングステータス。
  • OK: データは選択された送信先に正常に記録されます。

  • NODATA: キャプチャウィンドウ中にネットワークインターフェイスとの間で行き来するネットワークトラフィックはありませんでした。

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

CloudWatch Logs または Amazon S3
vpc-id トラフィックが記録されるネットワークインターフェイスが含まれる VPC の ID。 Amazon S3 のみ
subnet-id トラフィックが記録されるネットワークインターフェイスが含まれるサブネットの ID。 Amazon S3 のみ
instance-id インスタンスをお客様が所有している場合、トラフィックが記録されるネットワークインターフェイスに関連するインスタンスの ID。リクエスタが管理するネットワークインターフェイス (NAT ゲートウェイのネットワークインターフェイスなど) の場合、「-」記号を返します。 Amazon S3 のみ
tcp-flags

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

  • SYN: 2

  • SYN-ACK: 18

  • FIN: 1

  • RST: 4

ACK は、SYN に付随する場合のみ報告されます。

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

Amazon S3 のみ
type トラフィックの種類: IPv4IPv6、または EFA。Elastic Fabric Adapter (EFA) の詳細については、「Elastic Fabric Adapter」を参照してください。 Amazon S3 のみ
pkt-srcaddr トラフィックのパケットレベルの (元の) 送信元 IP アドレス。srcaddr フィールドとともにこのフィールドを使用し、トラフィックが通過する中間レイヤーの IP アドレスとトラフィックの元の送信元 IP アドレスを区別します。たとえば、トラフィックがNAT ゲートウェイのネットワークインターフェイスを通過する場合や、Amazon EKS 内のポッドの IP アドレスが、ポッドが実行されているインスタンスノードのネットワークインターフェイスの IP アドレスとは異なる場合などです。 Amazon S3 のみ
pkt-dstaddr トラフィックのパケットレベルの (元の) 送信先 IP アドレス。dstaddr フィールドとともにこのフィールドを使用し、トラフィックが通過する中間レイヤーの IP アドレスとトラフィックの最終的な送信元 IP アドレスを区別します。たとえば、トラフィックがNAT ゲートウェイのネットワークインターフェイスを通過する場合や、Amazon EKS 内のポッドの IP アドレスが、ポッドが実行されているインスタンスノードのネットワークインターフェイスの IP アドレスとは異なる場合などです。 Amazon S3 のみ

注記

フィールドが特定のレコードに該当しない場合、レコードでそのエントリには「-」記号が表示されます。

フローログの制限事項

フローログを使用するには、次の制限事項に注意する必要があります。

  • EC2-Classic プラットフォームにあるネットワークインターフェイスのフローログを有効にすることはできません。これには、ClassicLink を使用して VPC にリンクされた EC2-Classic インスタンスが含まれます。

  • ピア VPC がアカウントにない限り、VPC とピアリング接続された VPC のフローログを有効にすることはできません。

  • フローログにタグを付けることはできません。

  • フローログを作成すると、その設定やフローログレコードの形式を変更することはできません。たとえば、異なる IAM ロールをフローログに関連付けたり、フローログレコードのフィールドを追加または削除したりすることはできません。代わりにフローログを削除し、必要な設定で新しいログを作成できます。

  • フローログの API アクション (ec2:*FlowLogs) は、いずれもリソースレベルのアクセス権限をサポートしていません。フローログの API アクションの使用を管理するために IAM ポリシーを作成するには、ステートメントでリソース要素に対して * ワイルドカードを使用して、アクションにすべてのリソースを使用するユーザーアクセス権限を与える必要があります。詳細については、「Amazon VPC のリソースに対するアクセスの制御」を参照してください。

  • ネットワークインターフェイスに複数の IPv4 アドレスがある場合、トラフィックがセカンダリプライベート IPv4 アドレスに送信されても、フローログの dstaddr フィールドにはプライマリプライベート IPv4 アドレスが表示されます。元の送信先 IP アドレスをキャプチャするには、pkt-dstaddr フィールドを含むフローログを作成します。

  • トラフィックがネットワークインターフェイスに送信され、送信先がネットワークインターフェイスの IP アドレスのいずれでもない場合、フローログの dstaddr フィールドにはプライマリプライベート IPv4 アドレスが表示されます。元の送信先 IP アドレスをキャプチャするには、pkt-dstaddr フィールドを含むフローログを作成します。

  • トラフィックがネットワークインターフェイスから送信され、送信元がネットワークインターフェイスの IP アドレスのいずれでもない場合、フローログの srcaddr フィールドにはプライマリプライベート IPv4 アドレスが表示されます。元の送信元 IP アドレスをキャプチャするには、pkt-srcaddr フィールドを含むフローログを作成します。

  • ネットワークインターフェイスとの間でトラフィックが送受信される場合、パケットの送信元または送信先にかかわらず、フローログの srcaddr フィールドと dstaddr フィールドには常にプライマリのプライベート IPv4 アドレスが表示されます。パケットの送信元または送信先をキャプチャするには、pkt-srcaddr フィールドと pkt-dstaddr フィールドを含むフローログを作成します。

  • CloudWatch Logs に発行されるフローログレコードのカスタム形式を指定することはできません。

  • アジアパシフィック (香港) や 中東 (バーレーン) など、2019 年 3 月 20 日以降に導入されたリージョン (オプトインリージョン) でフローログを作成した場合、送信先 Amazon S3 バケットはフローログと同じリージョンに配置されている必要があります。

  • 2019 年 3 月 20 日より前に導入されたリージョンでフローログを作成した場合、送信先 Amazon S3 バケットはフローログと同じリージョン、または 2019 年 3 月 20 日より前に導入された別のリージョンに配置されている必要があります。オプトインリージョンにある Amazon S3 バケットを指定することはできません。

フローログですべての IP トラフィックはキャプチャされません。以下のトラフィックの種類は記録されません。

  • Amazon DNS サーバーに接続したときにインスタンスによって生成されるトラフィック。独自の DNS サーバーを使用する場合は、その DNS サーバーへのすべてのトラフィックが記録されます。

  • Amazon Windows ライセンスのアクティベーション用に Windows インスタンスによって生成されたトラフィック。

  • インスタンスメタデータ用に 169.254.169.254 との間を行き来するトラフィック。

  • Amazon Time Sync Service の 169.254.169.123 との間でやり取りされるトラフィック。

  • DHCP トラフィック。

  • デフォルト VPC ルーターの予約済み IP アドレスへのトラフィック。詳細については、「VPC とサブネットのサイズ設定」を参照してください。

  • エンドポイントのネットワークインターフェイスと Network Load Balancer のネットワークインターフェイスの間のトラフィック。詳細については、「VPC エンドポイントサービス (AWS PrivateLink)」を参照してください。