IBM Cloud Docs
TCP トラフィックの保護 (「範囲」)

TCP トラフィックの保護 (「範囲」)

「範囲」機能は、DDoS 対策、ロード・バランシング、およびコンテンツの加速を、任意の TCP ベースのプロトコルにもたらします。 「範囲」とは、IBM Cloud® Internet Services (Cloudflare) のエッジ・ノードで実行されるグローバルな TCP プロキシーのことです。

「範囲」は、以下の目的に使用できます。

  • TCP ポートやプロトコルをレイヤー 3 およびレイヤー 4 の DDoS 攻撃から保護する。
  • レイヤー 7 のファイアウォール・ルールを使用して HTTP(S) の「範囲」アプリを保護する。
  • TLS 暗号化を有効にすることで、機密データのスヌープや窃盗を防ぐ。
  • CIS IP ファイアウォールと統合することで、IP アドレスまたは IP 範囲全体を、TCP サービスに届かないようにブロックしたり、チャレンジしたりする。
  • TCP ヘルス・チェック、フェイルオーバー、およびステアリング・ポリシーを搭載したロード・バランサーを構成して、トラフィックが流れる場所を指示する。

「範囲」は、エンタープライズ版でのみ、帯域幅使用量ごとの追加コストでご利用いただけます。

「範囲」の制限事項

固有の起点を持つ「範囲」アプリケーションを、最大 10 個作成できます。 固有の起点の「範囲」アプリケーションのそれぞれに固有の IP アドレスを割り当てる必要がありますが、IP アドレスは数に限りがあるリソースです。 10 個を超える範囲アプリケーションが必要な場合は、 IBM サポート Case をオープンしてください。 サポート Case で範囲アプリケーションを追加するには、ユース・ケースを確認する必要があります。このプロセスには数日かかる場合があります。

既存の起点を再使用しても、異なるポートを使用すれば、10 個を超えるアプリケーションを作成できます。

TCP の「範囲」アプリには、IP ルールしか適用されません。 これは、IP 規則が OSI レイヤー 3 およびレイヤー 4 に適用されるためです。 ただし、HTTP (S) 範囲アプリは、ファイアウォール・ルールと IP ルールの両方で機能します。 一般に、ファイアウォール・ルールは、要求ヘッダーや本体コンテンツの特性など、OSI レイヤー 7 (HTTP) で公開されるプロパティー用に設計されています。

コンソールを使用したアプリケーションの追加

UI を使用してアプリケーションを追加するには、以下の手順に従います。

  1. **「セキュリティー」>「範囲」**に移動します。
  2. 「作成」 をクリックします。
  3. リスト・メニューからアプリケーションのタイプを選択します。 TCP、UDP、HTTP、HTTPS、RDP、SSH、または Minversal を選択できます。
  4. アプリケーション名を入力します。 アプリケーションが、ご使用の CIS ドメインの DNS 名に関連付けられます。
  5. エッジ・ポートを入力します。CIS は、このポートでこれらのアドレスへの着信接続を listen します。 これらのアドレスへの接続はご使用の起点にプロキシー化されます。 ポート範囲を入力することはできますが (例: 8080-8090)、起点には連続した範囲で指定された同じ数量のポートがなければなりません。
  6. エッジ IP 接続を選択します。
  7. 「起点」セクションで、TCP アプリケーションの起点 IP とポートを入力します。 既存のロード・バランサーとそのポートを選択することもできます。
  8. IPファイアウォールを有効にする(オプション)。 有効にすると、「block」または「allowlist」アクションを持つIPアクセスルールがアプリケーションに適用される。
  9. エッジ TLS 終端を有効にします (オプション)。 有効にする場合は、使用する TLS 終端のタイプをリスト・メニューから選択します。
  10. PROXYプロトコルをサポートするプロキシをインラインで使用している場合は、 PROXYプロトコルを 選択します(オプション)。 この機能は、真のクライアント IP の知識が必要なサービスを実行している場合に役立ちます。 ほとんどの場合、この設定はoffのままです。
  11. 「作成」 をクリックします。

範囲アプリケーションをプロビジョニングすると、アプリケーションごとに使用される帯域幅の量に基づいて、追加コストが発生します。

これで、以下のプロパティーを持つタイル・ビューまたはテーブル・ビューにアプリケーションが表示されます。

  • アプリケーション名
  • アプリケーション・タイプ
  • エッジ・ポート
  • TLS エッジ終端
  • Proxy Protocol
  • 発信元
  • 過去 1 時間の接続数 (毎分ポーリングを実施)
  • 過去 1 時間のスループット (毎分ポーリングを実施)
  • アクションメニューアクションアイコン(右上隅)には以下のオプションがある:
    • アプリケーションの編集
    • 指定したアプリケーションのメトリックの表示
    • アプリケーションの削除

「範囲」アプリケーションが作成されると、それに固有の IPv4 アドレスと IPv6 アドレスが割り当てられます。 これらの IP アドレスは静的ではなく、変更される可能性があります。 割り当てられた IP アドレスは、DNS を使用して判別できます。 DNS 名は常に、アプリケーションに割り当てられた IP アドレスを戻します。

メトリックの表示

アプリケーションの TCP トラフィックを CIS (Cloudflare) でプロキシーできるようになりました。

**「メトリック」>「範囲」**に移動して、アプリケーションへの接続の数とスループットのトラフィックを表示します。 グラフには、最大で 10 個のアプリケーションのメトリックが表示されます。

アプリケーションのメトリックを切り替えるには、チャート・キーを使用するか、**「アプリケーションの選択」**ボタンをクリックします。 メトリック・データの時間フレームを変更するには、リスト・メニューを使用します。

範囲表示アプリケーション

Rangeアプリケーションを作成した後、Security > Range ページには、以下の情報を含むタイル(またはテーブルビューに切り替えるオプション)が表示されます:

  • アプリケーション名
  • Proxy Protocol
  • エッジ・ポート
  • 起点とポート
  • 過去 1 時間の接続数 (毎分ポーリングを実施)
  • 過去 1 時間のスループット (毎分ポーリングを実施)
  • TLSエッジ・ターミネーション(関連アプリケーション用)

アプリケーションリストには、アクションメニューもあります。アクションアイコン では、以下のタスクを実行できます:

  • アプリケーションの編集
  • 指定したアプリケーションのメトリックの表示
    • このページでは、そのアプリケーションのメトリックスのみを表示します
  • アプリケーションの削除

API の使用例

「範囲」を使用した、アプリケーションの作成とリストの例を示します。

「範囲」アプリの作成

Rangeアプリでオリジンを指定するには2つの方法があります。

  1. 起点 IP - パラメーター origin_direct を使用します
  2. ロード・バランサー - パラメーター origin_dns および origin_port を使用します

起点 IP 要求の場合:

curl -X POST \
  https://api.cis.cloud.ibm.com/v1/<url-encoded-crn>/zones/<zone-d>/range/apps \
  -H 'X-Auth-User-Token: <token>' \
  -d '{"protocol":"tcp/22","dns":{"type":"CNAME","name":"ssh.example.com"},"origin_direct":["tcp://172.0.2.1:22"],"proxy_protocol":true,"ip_firewall":true}'

応答は以下のとおりです。

{
    "result": {
        "id": "4f70c3d4f20576b79135b898295e8093",
        "protocol": "tcp/22",
        "dns": {
            "type": "CNAME",
            "name": "ssh.example.com"
        },
        "origin_direct": [
            "tcp://172.0.2.1:22"
        ],
        "ip_firewall": true,
        "proxy_protocol": true,
        "created_on": "2019-01-09T17:33:09.190606Z",
        "modified_on": "2019-01-09T17:33:09.190606Z"
    },
    "success": true,
    "errors": [],
    "messages": []
}

ロード・バランサー要求の場合:

curl -X POST \
  https://api.cis.cloud.ibm.com/v1/<url-encoded-crn>/zones/<zone-d>/range/apps \
  -H 'X-Auth-User-Token: <token>' \
  -d '{"protocol":"tcp/22","dns":{"type":"CNAME","name":"ssh.example.com"},"origin_dns": {"name": "test"},"proxy_protocol":true,"ip_firewall":true, "origin_port": 43}'

応答は以下のとおりです。

{
    "result": {
        "id": "4f70c3d4f20576b79135b898295e8093",
        "protocol": "tcp/22",
        "dns": {
            "type": "CNAME",
            "name": "ssh.example.com"
        },
        "origin_dns": {
          "name": "test"
        },
        "origin_port": 43,
        "ip_firewall": true,
        "proxy_protocol": true,
        "created_on": "2019-01-09T17:39:09.190606Z",
        "modified_on": "2019-01-09T17:39:09.190606Z"
    },
    "success": true,
    "errors": [],
    "messages": []
}
  • DNS 名 - アプリケーションがドメインの DNS 名に関連付けられます。
  • プロトコル/エッジ・ポート - アプリケーションを実行するポート。 これらのアドレスへの接続はご使用の起点にプロキシー化されます。
  • 起点ダイレクト - アプリケーションを実行する場所の IP と、エッジから起点までトラフィックを通すポート。
  • IP Firewall - 有効にすると、ブロック・アクションを含むファイアウォール・ルールがこの「範囲」アプリケーションに強制されます。
  • PROXY Protocol - PROXY Protocol v1 をサポートするプロキシーをインラインで持っている場合に有効にします。 ほとんどの場合、この設定は無効のままにします。
  • 起点 DNS - 起点として設定するロード・バランサーの名前。
  • 起点ポート - サービスのポート。

すべての「範囲」アプリのリスト表示

すべての「範囲」アプリをリストするには、以下の要求を使用します。

curl -X GET \
  https://api.cis.cloud.ibm.com/v1/<url-encoded-crn>/zones/<zone-d>/range/apps

応答は以下のとおりです。

{
    "result": [
        {
            "id": "4f70c3d4f20546b79135b898295e8093",
            "protocol": "tcp/22",
            "dns": {
                "type": "CNAME",
                "name": "ssh.example.com"
            },
            "origin_direct": [
                "tcp://172.0.2.1:22"
            ],
            "ip_firewall": true,
            "proxy_protocol": true,
            "created_on": "2019-01-09T17:33:09.190606Z",
            "modified_on": "2019-01-09T17:33:09.190606Z"
        }
    ],
    "success": true,
    "errors": [],
    "messages": []
}

特定の範囲アプリのリスト

特定の「範囲」アプリをリストするには、以下の要求を使用します。

curl -X GET \
  https://api.cis.cloud.ibm.com/v1/<url-encoded-crn>/zones/<zone-d>/range/apps/4f70c3d4f20546b79135b898295e8093

応答は以下のとおりです。

  • 起点 IP を使用するアプリ

    {
        "result": {
            "id": "4f70c3d4f20546b79135b898295e8093",
            "protocol": "tcp/22",
            "dns": {
                "type": "CNAME",
                "name": "ssh.example.com"
            },
            "origin_direct": [
                "tcp://172.0.2.1:22"
            ],
            "ip_firewall": true,
            "proxy_protocol": true,
            "created_on": "2019-01-09T17:33:09.190606Z",
            "modified_on": "2019-01-09T17:33:09.190606Z"
        },
        "success": true,
        "errors": [],
        "messages": []
    }
    
  • ロード・バランサーを使用するアプリ

    {
        "result": {
            "id": "555359036e7f4acc82d69b916f62caba",
            "protocol": "tcp/22",
            "dns": {
                "type": "CNAME",
                "name": "ssh.example.com"
            },
            "origin_dns": {
                "name": "test_update"
            },
            "origin_port": 76,
            "ip_firewall": true,
            "proxy_protocol": true,
            "created_on": "2019-01-10T22:26:47.167008Z",
            "modified_on": "2019-01-10T22:26:47.167008Z"
        },
        "success": true,
        "errors": [],
        "messages": []
    }