0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【IBM Cloud】IBM Cloud Flow Logs for VPCを使ってフロー・ログを確認してみた

Last updated at Posted at 2025-03-19

はじめに

今回はIBM Cloudの機能の中、Flow Logs for VPCを使ってネットワーク・ログを確認する流れについて整理します。
Flow Logs for VPCを使うことで、VPC内のネットワーク・インターフェースを出入りするIPトラフィック情報の収集、保管、表示が可能になり、運用にあたって以下の点で役に立ちます。

  • 特定のトラフィックがインスタンスに到達しない理由のトラブルシューティング
  • インスタンスに到達するメタデータ・ネットワーク・トラフィックの記録
  • ネットワーク・インターフェースの送信元トラフィックと宛先トラフィックの判別
  • コンプライアンス規制への準拠
  • 根本原因分析の支援

前提条件

1. 少なくとも1つのVPC、サブネット、Virtual Server Instance(VSI)が作成されている

今回実施する検証はVPC内のFlow Logs機能を試してみるものとなり、当然ですがVPCやサブネット、VSIが必要となります。まだ用意されていない場合には、こちらの作成手順をご参考ください。

2. Flow Logsを保管するためのObject Storage(ICOS)のインスタンス、またバケットが作成されている

また、上記の通り取得したFlow Logsを保管するためのICOS、バケットが必要となります。

(以下)IBM Cloud Object Storage(ICOS)のインスタンス作成

ICOS画面にてインスタンスの作成をクリックします。
スクリーンショット 2024-07-11 17.19.45.png
インフラの選択やインスタンス名、リソースグループなどの設定を行ってインスタンスを作成します。
FireShot Capture 008 - Cloud Object Storage - IBM Cloud - cloud.ibm.com.png

ICOSのインスタンスが作成されたら、次は「バケット」を作成します。
「バケット」とは、インタンス内で実際ログデータが保管される論理的区域であり、名前通りデータを入れておく箱のようなものとなります。

まずはバケットの作成をクリックします。
スクリーンショット 2024-07-11 17.20.23.png

Quick Startテンプレートを含め、複数のテンプレートが用意されていますが、今回はカスタムテンプレートにて作成しました。
スクリーンショット 2024-07-11 17.21.28.png

バケット名や可用性の設定、リージョン、Storage Tierなどを設定し、バケットを作成します。こちらの設定はバケット作成後には変更ができませんのでご注意ください。
ここではリージョンやストレージ・クラス(プラン)などを選択します。
FireShot Capture 009 - Cloud Object Storage - IBM Cloud - cloud.ibm.com.png
今回の検証では、回復力はRegional、ロケーションは東京、ストレージ・クラスはSmart Tierを選択しています。

ICOSの作成には以下を注意してください。

  • VPCのリージョンとICOS、Flow Logsのリージョンは全て同じリージョンである必要があります。
  • Flow Logs保管のためのバケットを作成する際、対象リソースと同じリージョンにある単一リージョンのバケットでなければなりません。そのため、回復力はCross Regionを選択しないようにしてください。

3. VPCからICOSにアクセスするためのIAM許可がされている

最後に、VPC上でFlow Logsを取得しICOSに保管するためにはVPCからICOSへのS2Sアクセス権限が必要です。

(以下)VPCからICOSへのアクセス権限許可

まず、IBM Cloudコンソールにて、管理IAMをクリックします。
スクリーンショット 2025-01-20 17.14.10.png

IAMの画面が表示されたら、許可カテゴリーをクリックします。
スクリーンショット 2025-01-20 17.14.21.png

許可画面が表示されたら、アクセス権限を付与するために作成ボタンをクリックします。
スクリーンショット 2025-01-20 17.14.32.png

ここでソース(VPC)とターゲット(ICOS)の各インスタンスを選択します。選択する際に、ソース・リソースをresourceType ストリングが等しいに選択しないとターゲットにICOSが表示されませんのでご注意ください。
なお、Flow Logs->Object Storageに対するWriter権限以上が必要となります。
image (12).png

Flown Logs Collectorの作成

上記の前提条件をクリアしている場合、Flow LogsのCollectorを作成します。
コンソール画面にて、ナビゲーション・メニューインフラストラクチャーネットワークフロー・ログにアクセスします。
スクリーンショット 2025-03-10 17.59.46.png

フロー・ログの画面が表示されたら、作成ボタンをクリックします。
スクリーンショット 2025-03-10 15.47.03.png

フロー・ログの作成画面に入ったら、各設定を行います。
ロケーションやFlow Logs名、Collectorの詳細(VPCなど)、保管用のICOSインスタンスやバケットなどを選択します。全ての選択が終わったらフロー・ログ・コレクターの作成をクリックします。
FireShot Capture 070 - フロー・ログ・コレクター のプロビジョン - インフラストラクチャー - IBM Cloud - [cloud.ibm.com].png

なお、Flow Logs Collectorを構成する際、ログの収集範囲を選択することができます。今回はVPCを選択し、全てのネットワーク・インターフェースのデータを収集するように設定しています。

  • VPC
    • 特定のVPC上のすべてのネットワーク・インターフェースのデータを収集
  • サブネット
    • 特定のサブネット上のすべてのネットワーク・インターフェースのデータを収集
  • インスタンス
    • 特定の仮想サーバー上の個別やすべてのネットワーク・インターフェースのデータを収集
  • インターフェース
    • 特定の仮想サーバー上の特定のネットワーク・インターフェースのデータを収集

Flow Logs Collectorが作成されたら、リストに表示されます。
スクリーンショット 2025-03-10 18.20.00.png

Flow Logs Objectの表示

次はFlow Logsが入ってきているかターミナルにて確認します。Flow Logsはリアルタイムではなく数分~最大15分程度でObject Storageに記録されますので、Collectorの作成後少しお待ちください。

まずはターミナルにて、IBM Cloudにログインします。
IBM Cloud右上のプロフィールアイコンをクリックし、CLIとAPIにログインをクリックしますと、以下のログインCLIが表示されます。IBM Cloud CLIをコピーしターミナルにコマンド入力することで簡単にログインできます。
また、必要に応じてリージョンを選択しますが、今回はインスタンス作成通り、東京(jp-tok)を選択します。
スクリーンショット 2023-01-27 14.52.45.png
スクリーンショット 2023-01-27 14.52.54.png

結果
moonsy@moon ~ % ibmcloud login -a https://cloud.ibm.com -u passcode -p xxxxxxxxxx
API エンドポイント: https://cloud.ibm.com
認証中です...
OK

ターゲットのアカウント itz-cp-jpn (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) <-> xxxxxxx


リージョンを選択します (または Enter キーを押してスキップします):
1. au-syd
2. in-che
3. jp-osa
4. jp-tok
5. eu-de
6. eu-es
7. eu-gb
8. ca-tor
9. us-south
10. us-south-test
11. us-east
12. br-sao
数値を入力してください> 4
ターゲットのリージョン jp-tok


API エンドポイント:   https://cloud.ibm.com
Region:               jp-tok
ユーザー:             S.Moon@ibm.com
アカウント:           itz-cp-jpn (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) <-> xxxxxxx
リソース・グループ:   リソース・グループがターゲットになっていません。'ibmcloud target -g RESOURCE_GROUP' を使用してください

次はObject StorageのCLIコマンドを利用するために、以下のコマンドにてCLIプラグインをダウンロードします。

ibmcloud plugin install cloud-object-storage
結果
moonsy@moon ~ % ibmcloud plugin install cloud-object-storage

リポジトリー 'IBM Cloud' から 'cloud-object-storage' を検索しています...
プラグイン 'cloud-object-storage[cos] 1.10.0' がリポジトリー 'IBM Cloud' 内で見つかりました
バイナリー・ファイルをダウンロードしようとしています...
 19.92 MiB / 19.92 MiB [===========================================================================================================] 100.00% 0s
20887330 バイトがダウンロードされました
バイナリーをインストールしています...
OK
プラグイン 'cloud-object-storage 1.10.0' は /Users/moonsungyun/.bluemix/plugins/cloud-object-storage に正常にインストールされました。 'ibmcloud plugin show cloud-object-storage' を使用して詳細を表示してください。

ICOSのCLIが利用できるようになったら、以下コマンドにてログ保管のバケットにアクセスし、Flow Logs Obejctを確認します。

ibmcloud cos objects --bucket <your-bucket-name>
結果
moonsy@moon ~ % ibmcloud cos objects --bucket flow-log
OK
見つかりました 2 バケットにオブジェクトがあります 'flow-log':

名前                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       最終変更日時               オブジェクト・サイズ   
ibm_vpc_flowlogs_v1/account=xxxxxxxxxxxxxxxxxxxxxxxx/region=jp-tok/vpc-id=crn%3xxxxxxuemix%3Apublxxxxxxs%3Ajp-tok%3Aa%2F27dc483dc1f14d2f821e8b3a4xxxxxxxxxxxxxxxxxxc%3Ar022-2ef7aa5e-c952-4b95-8db1-36aca1db685c/subnet-id=crn%3Av1%3Axxxxxxxxxxxxxxxxxxxxxxxxlic%3Ais%3Ajp-tok-2%3Aa%2F27dc483dc1xxxxxxxxxxxxxxxxxx93ad13%3A%3Asubnet%3A02f7-bf70cee2-6efe-47b2-b724-8c328xxxxxx/endpoint-type=vnics/instance-id=crn%3Avxxxxxxuemix%3ApublixxxxxxAjp-tok-2%3Aa%2F27dc483dc1f14d2f821e8b3a4193ad13%3A%3Ainstance%3A02f7_36a668ae-1615-42ac-9244-6ff884bd0cea/vnic-id=xxxx-41eec51e-xxxx-4e32-xxxx-7ad15a76a028/record-type=egress/year=2025/month=03/day=10/hour=08/stream-id=20250310T081450Z/00000000.gz    Mar 10, 2025 at 08:14:50   568 B   
ibm_vpc_flowlogs_v1/account=xxxxxxxxxxxxxxxxxxxxxxxx/region=jp-tok/vpc-id=crn%3xxxxxxuemix%3Apublxxxxxxs%3Ajp-tok%3Aa%2F27dc483dc1f14d2f821e8b3a4xxxxxxxxxxxxxxxxxxc%3Ar022-2ef7aa5e-c952-4b95-8db1-36aca1db685c/subnet-id=crn%3Av1%3Axxxxxxxxxxxxxxxxxxxxxxxxlic%3Ais%3Ajp-tok-2%3Aa%2F27dc483dc1xxxxxxxxxxxxxxxxxx93ad13%3A%3Asubnet%3A02f7-bf70cee2-6efe-47b2-b724-8c328xxxxxx/endpoint-type=vnics/instance-id=crn%3Avxxxxxxuemix%3ApublixxxxxxAjp-tok-2%3Aa%2F27dc483dc1f14d2f821e8b3a4193ad13%3A%3Ainstance%3A02f7_36a668ae-1615-42ac-9244-6ff884bd0cea/vnic-id=xxxx-41eec51e-xxxx-4e32-xxxx-7ad15a76a028/record-type=egress/year=2025/month=03/day=10/hour=08/stream-id=20250310T081450Z/00000000.gz    Mar 10, 2025 at 08:14:50   568 B   

moonsy@moon ~ % 

コンソール上でICOSのバケット画面を確認してもしっかりFlow Logs Objectが次々と入ってきていることを確認できます。
スクリーンショット 2025-03-10 18.35.25.png

ここで、特定のFlow Logs Objectをクリックし、ダウンロードすることで、json形式でデータを確認することができます。
スクリーンショット 2025-03-10 18.40.55.png

データの例
    {
        "version": "0.0.1",
        "collector_crn": "crn",
        "attached_endpoint_type": "vnic",
        "network_interface_id": "crn",
        "instance_crn": "crn",
        "vpc_crn": "crn"
        "capture_end_time": "2008-09-15T15:53:00Z",
        "capture_start_time": "2008-09-15T15:00:00Z",
        "state": "ok",
        "number_of_flow_logs" : 1,
        "flow_logs": [
            {
                "start_time": "2008-09-15T15:53:00",
                "end_time": "2008-09-15T15:40:00",
                "direction": "O",
                "action": "accepted",
                "initiator_ip": "1.2.3.4",
                "initiator_port": 20033,
                "target_ip": "5.6.7.8",
                "target_port": 80,
                "transport_protocol": 6,
                "ether_type": "IPv4",
                "was_initiated": true,
                "was_terminated": false,
                "bytes_from_initiator": 12000,
                "packets_from_initiator": 2212,
                "bytes_from_target": 323232,
                "packets_from_target": 3232
                "cumulative_packets_from_initiator": 2212,
                "cumulative_packets_from_target": 3232,
                "cumulative_bytes_from_target": 323232,
                "cumulative_bytes_from_initiator": 12000,
            }
        ],
    }

なお、今回はターミナルやUIで確認していますが、実際の運用ではこちらに記載のとおりAnalytics Engineを利用して分析することができるのでご参考ください。

うまくいかない時のTips

① Flow Log Collectorの設定確認
Flow Log Collectorを正しく設定しているか確認してください。

  • VPC全体or特定のサブネットを監視対象にしているか
  • 適切なObject Storageバケットを指定しているか
  • Flow Logのステータスが「Active」になっているか(IBM Cloudコンソールで確認)

② Object Storageの設定
Flow Logデータは IBM Cloud Object Storage (COS) に保存されるため、以下を確認してください。

  • ICOSバケットが 正しいリージョンに作成されているか(VPCのリージョンと一致しているか)
  • ICOSのアクセス権限(IAMでのS2S権限)が正しく設定されているか(Flow Log Collectorが書き込めるか)

③ CLIプラグイン
CLIプラグインがダウンロードされているか、最新バージョンか確認してください。

  • 以下のコマンドでIBM Cloud CLIのプラグインを確認し、ICOS CLIが存在するか確認
    • ibmcloud plugin list
  • もしない場合やバージョンが古い場合、以下のICOSプラグインのインストールコマンドにてダウンロード及び最新化
    • ibmcloud plugin install cloud-object-storage

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?