コンテンツにスキップ

Helm Chart を使用したNative Nodeのデプロイ

Wallarm Native Nodeは、NGINXに依存せず動作し、一部のコネクタとのデプロイを目的としています。Helm Chartを使用することで、Native NodeをKubernetesクラスター内の個別サービスまたはロードバランサーとして実行できます。

ユースケース

以下の場合に、Helm Chartを使用してNative Nodeをデプロイします:

  • MuleSoftCloudflareAmazon CloudFrontBroadcom Layer7 API GatewayFastly向けのWallarmコネクタをデプロイし、ノードをセルフホストする必要がある場合。すでにOpenShift、Amazon EKS、Azure AKS、Google GKEなどのKubernetes管理プラットフォームをご利用の場合に最適で、ノードはパブリックIPを持つロードバランサーとして設定され、トラフィックルーティングが容易になります。

  • Kong API GatewayまたはIstio向けのWallarmコネクタをデプロイする場合。ノードはパブリックIPを公開せず、内部トラフィック用のClusterIPタイプでデプロイされます。

要件

Helm Chartを使用してNative NodeをデプロイするKubernetesクラスターは、以下の条件を満たす必要があります:

  • Helm v3のパッケージマネージャーがインストールされていること。

  • APIが稼働しているAPIゲートウェイまたはCDNからのインバウンドアクセスが可能であること。

  • アウトバウンドアクセスが以下に対して可能であること:

    • Wallarm Helm Chartをダウンロードするため https://charts.wallarm.com
    • デプロイに必要なDockerイメージをダウンロードするため https://hub.docker.com/r/wallarm
    • US/EU Wallarm Cloud用 https://us1.api.wallarm.com または https://api.wallarm.com
    • 攻撃検出ルールおよび[API仕様][api-spec-enforcement-docs]の更新のダウンロード、ならびに[ホワイトリスト、ブラックリスト、またはグレイリスト][ip-list-docs]に登録された国、地域、データセンターの正確なIP取得のために、以下のIPアドレスへのアクセス

      34.96.64.17
      34.110.183.149
      35.235.66.155
      34.102.90.100
      34.94.156.115
      35.235.115.105
      
      34.160.38.183
      34.144.227.90
      34.90.110.226
      
  • LoadBalancerタイプでデプロイする場合は、ドメインおよび信頼されたSSL/TLS証明書が必要です。

  • 加えて、Wallarm ConsoleにてAdministratorロールが割り当てられている必要があります。

制限事項

デプロイ手順

1. Wallarm tokenの準備

ノードをインストールするには、Wallarm Cloudにノードを登録するためのtokenが必要です。tokenの準備方法は以下の通りです:

  1. Wallarm Console の【Settings】→【API tokens】をUS CloudまたはEU Cloudで開いてください。

  2. DeployソースロールのAPI tokenを探すか作成してください。

  3. このtokenをコピーしてください。

2. Wallarm Helm Chartリポジトリの追加

helm repo add wallarm https://charts.wallarm.com
helm repo update wallarm

3. 設定ファイルの準備

パブリックIPを持つロードバランサーとしてnative Wallarm nodeをデプロイすることで、MuleSoft、Cloudflare、Amazon CloudFront、Broadcom Layer7 API Gateway、FastlyからこのIPへのトラフィックをセキュリティ解析およびフィルトレーションのためにルーティングできます。

  1. ロードバランサー用のドメインを登録してください。
  2. trustedなSSL/TLS証明書を取得してください。
  3. 以下の最小限の設定を使用して、values.yaml設定ファイルを作成してください。証明書の適用方法について、該当するタブを選択してください:

    クラスタ内でcert-managerを使用している場合、これを使用してSSL/TLS証明書を生成できます。

    config:
      connector:
        certificate:
          enabled: true
          certManager:
            enabled: true
            issuerRef:
              # cert-managerのIssuerまたはClusterIssuerの名前
              name: letsencrypt-prod
              # これがIssuer(namespaceスコープ)かClusterIssuer(クラスター全体)か
              kind: ClusterIssuer
    processing:
      service:
        type: LoadBalancer
    

    同一ネームスペース内にある既存のKubernetesシークレットからSSL/TLS証明書を取得できます。

    config:
      connector:
        certificate:
          enabled: true
          existingSecret:
            enabled: true
            # 証明書と秘密鍵を含むKubernetesシークレットの名前
            name: my-secret-name
    processing:
      service:
        type: LoadBalancer
    

    customSecret設定により、証明書をbase64エンコードされた値として直接定義できます。

    config:
      connector:
        certificate:
          enabled: true
          customSecret:
            enabled: true
            ca: LS0...  # Base64エンコードされたCA
            crt: LS0... # Base64エンコードされた証明書
            key: LS0... # Base64エンコードされた秘密鍵
    processing:
      service:
        type: LoadBalancer
    

Kong API GatewayまたはIstio用のWallarmコネクタとしてデプロイする場合、パブリックIPを公開せず、内部トラフィック用のClusterIPタイプでNative Nodeをデプロイします。

以下の最小限の設定を使用して、values.yaml設定ファイルを作成してください:

processing:
  service:
    type: ClusterIP

すべての設定パラメータ

4. Wallarmサービスのデプロイ

helm upgrade --install --version 0.11.0 <WALLARM_RELEASE_NAME> wallarm/wallarm-node-native -n wallarm-node --create-namespace --set config.api.token=<WALLARM_API_TOKEN> --set config.api.host=us1.api.wallarm.com
helm upgrade --install --version 0.11.0 <WALLARM_RELEASE_NAME> wallarm/wallarm-node-native -n wallarm-node --create-namespace --set config.api.token=<WALLARM_API_TOKEN> --set config.api.host=api.wallarm.com

5. Wallarmロードバランサーの取得

LoadBalancerタイプでデプロイする場合:

  1. Wallarmロードバランサーの外部IPを取得してください:

    kubectl get svc -n wallarm-node
    

    native-processingサービスの外部IPを確認してください。

  2. DNSプロバイダーでAレコードを作成し、ドメインを外部IPにポイントしてください。

    DNSが伝播した後、ドメイン名を介してサービスにアクセスできます。

6. API管理サービスへのWallarmコードの適用

ノードをデプロイした後、次のステップとして、デプロイしたノードへトラフィックをルーティングするために、API管理プラットフォームまたはサービスへWallarmコードを適用します。

  1. コネクタ用のWallarmコードバンドルを取得するため、sales@wallarm.comにお問い合わせください。

  2. プラットフォーム固有の手順に従い、API管理プラットフォーム上でバンドルを適用してください:

アップグレード

ノードをアップグレードするには、こちらの手順に従ってください。