コンテンツにスキップ

マルチテナントノードのデプロイおよび設定

multi-tenantノードは、複数の独立した企業インフラまたは分離された環境を同時に保護します。

マルチテナントノードのデプロイオプション

インフラおよび解決する問題に基づき、マルチテナントノードのデプロイオプションを選択してください。

  • 以下のように、全クライアントまたは隔離環境のトラフィックをフィルタリングするために1つのWallarmノードをデプロイします:

    Partner node scheme

    • 1つのWallarmノードが複数のテナント(Tenant 1、Tenant 2)のトラフィックを処理します。

      The term "partner client"

      Previously, "tenant" was referred to as "partner client". We further use the term "tenant".

    • Wallarmノードは、Envoyインストールの場合、テナントの一意の識別子(wallarm_partner_client_uuidまたはpartner_client_uuid)を用いて、トラフィックを受信するテナントを識別します。

    • ドメインhttps://tenant1.comおよびhttps://tenant2.comに対して、パートナーまたはクライアントのIPアドレス225.130.128.241を含むDNS Aレコードが設定されます。これは一例として示しており、パートナー側とテナント側で異なる設定を使用することができます。
    • パートナー側では、正当なリクエストをテナントTenant 1(http://upstream1:8080)およびTenant 2(http://upstream2:8080)のアドレスにプロキシする設定が行われます。これは一例として示しており、パートナー側とテナント側で異なる設定を使用することができます。
  • 以下のように、各テナントのトラフィックをそれぞれフィルタリングする複数のWallarmノードをデプロイします:

    Client several nodes scheme

    • 各テナント(Tenant 1、Tenant 2)のトラフィックをフィルタリングする複数のWallarmノード。
    • ドメインhttps://tenant1.comに対して、クライアントIPアドレス225.130.128.241を含むDNSレコードが設定されます。
    • ドメインhttps://tenant2.comに対して、クライアントIPアドレス225.130.128.242を含むDNSレコードが設定されます。
    • 各ノードが、そのテナントのアドレスに正当なリクエストをプロキシします:

マルチテナントノードの特徴

マルチテナントノードは:

  • 通常のフィルタリングノードと同じプラットフォームおよび同じ手順でインストールが可能ですが、以下の場合を除きます:

    • MuleSoftコネクタ
    • Amazon CloudFrontコネクタ
    • Cloudflareコネクタ
    • Broadcom Layer7 API Gatewayコネクタ
    • Fastlyコネクタ
    • Kong API Gatewayコネクタ
    • Istioコネクタ
  • technical tenantまたはtenantレベルにインストールできます。テナントにWallarm Consoleへのアクセスを提供する場合、そのフィルタリングノードは該当するテナントレベルにインストールする必要があります。

  • 通常のフィルタリングノードと同じ手順で設定が可能です。

  • ディレクティブwallarm_partner_client_uuidは、テナント毎にトラフィックを分割するために使用されます。

  • ディレクティブwallarm_applicationは、アプリケーション毎に設定を分割するために使用されます。

デプロイ要件

マルチテナントノードデプロイの推奨事項

  • テナントがWallarm Consoleにアクセスする必要がある場合、適切なテナントアカウント内でフィルタリングノードを作成してください。

  • テナントのNGINX設定ファイルを使用してフィルタリングノードを設定してください。

マルチテナントノードデプロイの手順

  1. Wallarm Console → NodesCreate nodeをクリックし、Wallarm nodeを選択します。

    既存のWallarmノードをマルチテナントモードに切り替える

    既存のWallarmノードをマルチテナントモードに切り替えたい場合は、Nodesセクションの対象ノードメニューからMake it multi-tenantオプションを使用してください。

    切り替えと確認が済んだら、4番目のステップに進んでください。

  2. Multi-tenant nodeオプションを選択します。

    Multi-tenant node creation

  3. ノード名を設定し、Createをクリックします。

  4. フィルタリングノードトークンをコピーします。

  5. フィルタリングノードのデプロイ形態に応じて、該当する手順に従ってください。

  6. 各テナントの一意の識別子を使用してトラフィックを分割します.

    テナントのNGINX設定ファイルを開き、wallarm_partner_client_uuidディレクティブを使用して各テナント間のトラフィックを分割します。以下の例をご確認ください。

    各IngressリソースにテナントUUIDを設定するために、Ingressのannotationnginx.ingress.kubernetes.io/wallarm-partner-client-uuidを使用します。1つのリソースは1つのテナントに関連しています:

    kubectl annotate --overwrite ingress <YOUR_INGRESS_NAME> -n <YOUR_INGRESS_NAMESPACE> nginx.ingress.kubernetes.io/wallarm-partner-client-uuid=VALUE
    
    1. NGINX設定ファイルを開き、wallarm_partner_client_uuidディレクティブを使用して各テナント間のトラフィックを分割します。以下の例をご確認ください。
    2. Dockerコンテナを実行します設定ファイルのマウント.
    1. envoy.yaml設定ファイルを開き、partner_client_uuidパラメーターを使用して各テナント間のトラフィックを分割します。
    2. Dockerコンテナを実行します準備済みenvoy.yamlのマウント.
    1. NGINX設定ファイルを開き、wallarm_partner_client_uuidディレクティブを使用して各テナント間のトラフィックを分割します。
    2. NGINX設定ファイルをWallarmサイドカーコンテナにマウントします。

    以下は、2つのクライアントのトラフィックを処理するフィルタリングノード向けのNGINX設定ファイルの例です:

    server {
        listen       80;
        server_name  tenant1.com;
        wallarm_mode block;
        wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111;
    
        location / {
            proxy_pass      http://upstream1:8080;
        }
    }
    
    server {
        listen       80;
        server_name  tenant2.com;
        wallarm_mode monitoring;
        wallarm_partner_client_uuid 22222222-2222-2222-2222-222222222222;
    
        location / {
            proxy_pass      http://upstream2:8080;
        }
    }
    
    • テナント側では、パートナーIPアドレスを含むDNS Aレコードが設定されます。
    • パートナー側では、テナント(wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111のテナントの場合はhttp://upstream1:8080wallarm_partner_client_uuid 22222222-2222-2222-2222-222222222222のテナントの場合はhttp://upstream2:8080)のアドレスにリクエストをプロキシする設定が行われます。
    • すべての着信リクエストはパートナーのアドレスで処理され、正当なリクエストはwallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111のテナントの場合はhttp://upstream1:8080へ、wallarm_partner_client_uuid 22222222-2222-2222-2222-222222222222のテナントの場合はhttp://upstream2:8080へプロキシされます。
  7. 必要に応じて、wallarm_applicationディレクティブを使用してテナントのアプリケーションのIDを指定します。

    例:

    server {
        listen       80;
        server_name  tenant1.com;
        wallarm_mode block;
        wallarm_partner_client_uuid 11111111-1111-1111-1111-111111111111;
    
        location / {
            proxy_pass      http://upstream1:8080;
        }
    
        location /login {
            wallarm_application 21;
            ...
        }
        location /users {
            wallarm_application 22;
            ...
        }
    }
    

    テナント11111111-1111-1111-1111-111111111111に属する2つのアプリケーション:

    • tenant1.com/loginはアプリケーション21です。
    • tenant1.com/usersはアプリケーション22です。

マルチテナントノードの設定

フィルタリングノードの設定をカスタマイズするには、利用可能なディレクティブを使用してください。

Common customization options: