Facebook Twitter
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > VCNフロー・ログ攻略

VCNフロー・ログ攻略

ブログ
Oracle Cloud
2024.12.10

こんにちは。g.saitoです。

Oracle Cloud Infrastructure Advent Calendar 2024のシリーズ2 Day10の記事です。

先日、とりあえず有効化しておいたVCNフロー・ログからある特定のトラフィックを探し出そうとしたところ、ログの流量が多く探し出すのに手間取ってしまったので、改めてVCNフロー・ログの取得設定を見直しました。

その際に気づいた注意すべきポイントやコツなどを有効化手順と併せてご紹介していこうと思います。


VCNフロー・ログの概要

VCNフロー・ログとは、VCNを通過するトラフィックの詳細を記録する機能です。

VCN内のVNICを通過するデータをキャプチャし、SLやNSGによって受入または拒否されたトラフィックの可視性を向上させます。

VCNフロー・ログは主に以下のような目的で使用します。

  • トラフィックのモニタリングや分析
  • ネットワーク関連のトラブルシューティング
  • セキュリティ監査証跡の保持

有効化手順

VCNフロー・ログを有効化する前に以下の2点を作成しておきます。
※どちらもVCNフロー・ログ有効化時にウィザード内でも作成可能

事前準備①:ログ・グループの作成

まずはじめにVCNフロー・ログの格納先ログ・グループを作成します。
※既存のログ・グループを使用する場合は本手順は不要

OCIコンソールにログインし、左上のメニューから[監視および管理]>[ログ・グループ]を押下します。
任意のコンパートメントを選択し、[ログ・グループの作成]を押下します。
ログ・グループの名前と、必要に応じて説明を追加し[作成]を押下します。

事前準備②:取得フィルタの作成

次に取得フィルタを作成します。

取得フィルタとは、VCNフロー・ログの収集時に特定の条件に基づいてログを選択または除外するメカニズムです。

左上のメニューから[ネットワーキング]>[取得フィルタ]を押下します。
[取得フィルタの作成]を押下し、名前、コンパートメント、フィルタ・タイプ、サンプリング・レート、ルールを入力して[取得フィルタの作成]を押下します。

フィルタ・タイプ:今回はVCNフロー・ログ用の取得フィルタなので[フロー・ログ取得フィルタ]を選択。
サンプリング・レート:取得するVCNフロー・ログの割合。プルダウンリスト(1%〜100%)から任意の割合を選択。
ルール:どのトラフィックを記録するかを設定する項目。送信元/宛先CIDRやプロトコル、ポート番号のマッチ条件を指定し、マッチしたトラフィックを取得するか除外するかのアクションを選択。
※ルールは最低1つ、最大で10個まで作成可能

VCNフロー・ログの有効化

事前準備が終わったらいよいよVCNフロー・ログを有効化していきます。

左上のメニューから[ネットワーキング]>[フロー・ログ]を押下します。
任意のコンパートメントを選択し、[フロー・ログの有効化]を押下します。

VCNフロー・ログの有効化ウィザードが展開するので、VCNフロー・ログの名前、事前準備で作成したログ・グループと取得フィルタを選択して[次]を押下します。

続いて任意の有効化ポイントを選択し、それに紐づけるリソースを選択後[続行]を押下します。

・有効化ポイント
 仮想クラウドネットワーク:特定のVCN内の全サブネットにある既存および将来のVNICについて記録される。
 サブネット:特定のサブネット内にある既存および将来のVNICについて記録される。
 リソース:特定のインスタンスまたはネットワーク・ロード・バランサのVNICについて記録される。
※有効化ポイントは複数選択可

最後に入力した内容を確認して[フロー・ログの有効化]を押下すれば完了です。

有効化後しばらくするとVCNフロー・ログがアクティブになります。

ログの探索

有効化後しばらくするとログが記録され始め、ロギングからログ探索が可能になります。

左上のメニューから[監視および管理]>[ログ]を押下し、コンパートメントとログ・グループを選択し作成したVCNフロー・ログを選択します。

画面右の[アクション]>[ログ検索で探索]を選択するとより細かい条件を指定して探索できます。

ログ探索の詳細については過去の記事を参照ください。

Oracle Cloud Infrastructure(OCI)Loggingの検索機能の実力を知る

注意すべきポイントとコツ

ここからは注意すべきポイントや設定のコツをご紹介していきます。

①ノイズを減らす

デフォルト設定で有効化してしまうとログの流量が膨大になり、目的のログを探索しづらくなるだけでなくロギングのコスト増加にも繋がります。

目的に応じて不必要なログは除外し、ログの流量を調節することをおすすめします。

VCNフロー・ログの流量に関わる設定は以下の通りです。

  • 取得フィルタ
    • サンプリング・レート
    • ルール
  • 有効化ポイント

サンプリング・レート

事前準備②でも記載した通り、サンプリング・レートを低く指定すれば取得するログの量を減らすことができます。

しかし、適切なシーンで利用しないと目的のログを取りこぼす可能性があります。

例えば全体的なトラフィックの傾向やパターンなど、概要レベルの分析だけできればいいようなシーンでは、サンプリング・レートを低めに設定することで効率よくログを収集できます。
また、一時的に集中して監視したい場合や特定のフローのテストをしたい場合など、必要時に動的にサンプリング・レートを上げるというのも一つの手です。

サンプリング・レートを上げることでコストがネックになる場合は、ログの保持期間で調節するという方法もあります。

ルール

必要(または不要)なトラフィックが明確な場合は、ルールを使用してログの流量を抑えるのが有効です。

送信元/宛先CIDRやプロトコル、ポート番号で絞り込むのはもちろん、許可または拒否された通信のみ取得することもできますし、内部通信は除外するといったことも可能です。

例 サブネット(10.0.0.0/24)間通信を除外

ここで注意したいのが、ルールには順序番号(=優先順位)が存在する点です。

ルールが複数ある場合は順序番号1のルールから順に照合されていき、ルールにマッチした時点でそれ以降のルールは無視されます

例えば10.1.1.1からのパケットを除外したい場合

順序番号1.ソースCIDR:10.1.1.1/32、除外
順序番号2.ソースCIDR:0.0.0.0/0、包含

→このようにルールを設定していれば、10.1.1.1からのパケットは順序番号1のルールにマッチし除外され、それ以外のすべてのパケットは順序番号2のルールにマッチし取得されます。

順序番号1.ソースCIDR:0.0.0.0/0、包含
順序番号2.ソースCIDR:10.1.1.1/32、除外

→しかしこのようにルールを設定してしまうと、10.1.1.1からのパケットは順序番号1のルールにマッチし、順序番号2の除外ルールにマッチする前に「取得」と判断されてしまいますので注意してください。

また、パケットがどのルールにもマッチしない場合はそのパケットは無視され、取得されません。
したがって除外ルールを設定し、それ以外のパケットを取得したい場合には、除外ルールの後ろに0.0.0.0/0からのパケットを取得するルールを追加してください。

有効化ポイント

有効化ポイントをVCN全体ではなく、サブネットや特定のVNICにすることでもログの流量を大きく抑えられます。

取得したいトラフィックが明確な場合は有効ですが、サンプリング・レートと同じく目的のログを取りこぼす可能性があることに注意してください。

また、サンプリング・レートにより取得できなかった場合には"SKIPDATA"として何らかのトラフィックがあった形跡が残りますが、有効化ポイントを狭めてしまうと、有効化ポイント範囲外のトラフィックについては気づくことすらできない点にも注意してください。

②SKIPDATAが発生するケース

VCNフロー・ログを有効化後にログ探索していると、ステータスがSKIPDATAになっているログに遭遇することがあります。

SKIPDATAとはログが収集・記録されなかったことを表します。

SKIPDATAの例

具体的には以下のようなケースで発生します。

・サンプリング・レートによるもの
 例えばサンプリング・レートを50%と設定していた場合、全トラフィックのうち半分はSKIPDATAとしてロギングに出力されることになります。
・取得フィルタのルールによるもの
 取得フィルタで設定した除外ルールにマッチした場合、そのトラフィックはSKIPDATAとなります。
 また、取得フィルタのどのルールにもマッチしなかった場合にも、SKIPDATAとなります。
・その他、何らかの理由で取得できなかった場合
 OCI側のリソース不足やその他何らかの理由で取得できなかった場合もSKIPDATAとなります。

したがって目的のログが見つからず、その時間帯にSKIPDATAが出力されている場合は、サンプリング・レートや取得フィルタのルールを見直すことで解消する場合があります。

③複数のVCNフロー・ログを有効化した場合の注意点

最後に、複数のVCNフロー・ログを有効化した場合のログの記録のされ方について説明していきます。

例えば以下のとおりVCNフロー・ログを有効化しているとします。

VCN1
フローログ①
サブネット1
フローログ②
VNIC1
VNIC2
フローログ③
サブネット2 VNIC3
VNIC4
サブネット3 VNIC5
VNIC6

この場合、フロー・ログ①にはVNIC3〜6のみのトラフィックが記録され、フロー・ログ②にはVNIC1のみのトラフィックが記録され、フロー・ログ③にはVNIC2のみのトラフィックが記録されます。

したがって、フロー・ログ②をいくら探索してもVNIC2のログは見つかりません。

つまり、有効化ポイントが入れ子の関係になっている場合は、より小さい有効化ポイントのフロー・ログにログが取られると覚えておきましょう。

さいごに

今回は、VCNフロー・ログの有効化手順と注意すべきポイントやコツついてご紹介しましたが、いかがでしたでしょうか。

ご紹介した中には多少マニアックな情報もありますが、覚えておいて損はないと思います。

有事の際に目的のログがすぐ見つけられるよう、VCNフロー・ログの設定見直しに本記事を役立てていただけるととても嬉しく思います。

以上、最後までご覧いただきありがとうございました。


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。