Ana içeriğe geç

Helm Chart ile Native Node Dağıtımı

NGINX’ten bağımsız çalışan Wallarm Native Node, bazı konektörlerle dağıtım için tasarlanmıştır. Helm chart kullanarak Native Node’u Kubernetes kümenizde ayrı bir servis olarak veya bir yük dengeleyici olarak çalıştırabilirsiniz.

Kullanım senaryoları

Aşağıdaki durumlarda Native Node’u Helm chart ile dağıtın:

  • MuleSoft Mule veya Flex Gateway, Akamai, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway, Fastly, IBM DataPower için bir Wallarm konektörü dağıtıyor ve node’un self-hosted olmasını istiyorsanız. Bu, OpenShift, Amazon EKS, Azure AKS veya Google GKE gibi Kubernetes yönetim platformlarını zaten kullanıyorsanız idealdir. Trafik yönlendirmesini kolaylaştırmak için node, genel bir IP’ye sahip bir yük dengeleyici olarak yapılandırılır.

    Node’u connector-server modunda kullanın.

  • Istio tarafından yönetilen API’ler için satır içi gRPC tabanlı external processing filter gerektiğinde. Trafik yönlendirmesini kolaylaştırmak için node, genel bir IP’ye sahip bir yük dengeleyici olarak yapılandırılır.

    Node’u envoy-external-filter modunda kullanın.

  • Kong API Gateway için bir Wallarm konektörü dağıttığınızda. Node, genel bir IP açığa çıkarmadan dahili trafik için ClusterIP türüyle dağıtılır.

    Node’u connector-server modunda kullanın.

Gereksinimler

Native Node’u Helm chart ile dağıtmak için Kubernetes kümeniz aşağıdaki kriterleri karşılamalıdır:

  • Helm v3 paket yöneticisi kurulu.

  • API’lerinizin çalıştığı API gateway veya CDN’den gelen inbound erişim.

  • Şuralara outbound erişim:

    • Wallarm Helm chart’ını indirmek için https://charts.wallarm.com
    • Dağıtım için gerekli Docker imajlarını indirmek için https://hub.docker.com/r/wallarm
    • US/EU Wallarm Cloud için https://us1.api.wallarm.com veya https://api.wallarm.com
    • Saldırı tespit kurallarına ve API spesifikasyonlarına güncellemeleri indirmek ve allowlist, denylist veya graylist içindeki ülke, bölge veya veri merkezleriniz için kesin IP’leri almak amacıyla aşağıdaki IP adresleri

      node-data0.us1.wallarm.com - 34.96.64.17
      node-data1.us1.wallarm.com - 34.110.183.149
      us1.api.wallarm.com - 35.235.66.155
      34.102.90.100
      34.94.156.115
      35.235.115.105
      
      node-data1.eu1.wallarm.com - 34.160.38.183
      node-data0.eu1.wallarm.com - 34.144.227.90
      api.wallarm.com - 34.90.110.226
      
  • LoadBalancer türüyle dağıtım yapıyorsanız bir alan adı ve güvenilir bir SSL/TLS sertifikası gerekir.

  • Bunlara ek olarak, Wallarm Console içinde size Administrator rolü atanmış olmalıdır.

Sınırlamalar

Dağıtım

1. Wallarm token’ını hazırlayın

Node’u kurmak için, node’u Wallarm Cloud’a kaydetmek üzere bir token gerekir. Token hazırlamak için:

  1. Wallarm Console → Settings → API tokens’ı US Cloud veya EU Cloud içinde açın.

  2. Node deployment/Deployment kullanım türüne sahip bir API token bulun veya oluşturun.

  3. Bu token’ı kopyalayın.

2. Wallarm Helm chart deposunu ekleyin

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

3. Yapılandırma dosyasını hazırlayın

Genel bir IP ile Native Wallarm node’unu bir LoadBalancer olarak dağıtmak, MuleSoft, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway, Fastly’den bu IP’ye trafiği güvenlik analizi ve filtreleme için yönlendirmenize olanak tanır.

  1. Yük dengeleyici için bir alan adı kaydedin.
  2. Güvenilir bir SSL/TLS sertifikası edinin.
  3. Aşağıdaki asgari yapılandırma ile values.yaml yapılandırma dosyasını oluşturun. Sertifikayı uygulamak için tercih ettiğiniz yöntemin sekmesini seçin:

    Kümemizde cert-manager kullanıyorsanız, SSL/TLS sertifikasını onunla üretebilirsiniz.

    config:
      connector:
        mode: connector-server
        certificate:
          enabled: true
          certManager:
            enabled: true
            issuerRef:
              # cert-manager Issuer veya ClusterIssuer adının belirtilmesi
              name: letsencrypt-prod
              # Issuer (namespace kapsamlı) mı yoksa ClusterIssuer (küme genelinde) mı olduğunu belirtir
              kind: ClusterIssuer
    processing:
      service:
        type: LoadBalancer
    

    Aynı ad alanındaki mevcut bir Kubernetes secret’ından SSL/TLS sertifikasını çekebilirsiniz.

    config:
      connector:
        mode: connector-server
        certificate:
          enabled: true
          existingSecret:
            enabled: true
            # Sertifika ve özel anahtarı içeren Kubernetes secret’ının adı
            name: my-secret-name
    processing:
      service:
        type: LoadBalancer
    

    customSecret yapılandırması, bir sertifikayı doğrudan base64 ile kodlanmış değerler olarak tanımlamanıza olanak tanır.

    config:
      connector:
        mode: connector-server
        certificate:
          enabled: true
          customSecret:
            enabled: true
            ca: LS0...  # Base64 ile kodlanmış CA
            crt: LS0... # Base64 ile kodlanmış sertifika
            key: LS0... # Base64 ile kodlanmış özel anahtar
    processing:
      service:
        type: LoadBalancer
    

Genel bir IP ile Native Wallarm node’unu bir LoadBalancer olarak dağıtmak, MuleSoft, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway, Fastly’den bu IP’ye trafiği güvenlik analizi ve filtreleme için yönlendirmenize olanak tanır.

  1. Yük dengeleyici için bir alan adı kaydedin.
  2. Güvenilir bir SSL/TLS sertifikası edinin.
  3. Aşağıdaki asgari yapılandırma ile values.yaml yapılandırma dosyasını oluşturun. Sertifikayı uygulamak için tercih ettiğiniz yöntemin sekmesini seçin:

    Kümemizde cert-manager kullanıyorsanız, SSL/TLS sertifikasını onunla üretebilirsiniz.

    config:
      connector:
        mode: envoy-external-filter
        certificate:
          enabled: true
          certManager:
            enabled: true
            issuerRef:
              # cert-manager Issuer veya ClusterIssuer adının belirtilmesi
              name: letsencrypt-prod
              # Issuer (namespace kapsamlı) mı yoksa ClusterIssuer (küme genelinde) mı olduğunu belirtir
              kind: ClusterIssuer
    processing:
      service:
        type: LoadBalancer
    

    Aynı ad alanındaki mevcut bir Kubernetes secret’ından SSL/TLS sertifikasını çekebilirsiniz.

    config:
      connector:
        mode: envoy-external-filter
        certificate:
          enabled: true
          existingSecret:
            enabled: true
            # Sertifika ve özel anahtarı içeren Kubernetes secret’ının adı
            name: my-secret-name
    processing:
      service:
        type: LoadBalancer
    

    customSecret yapılandırması, bir sertifikayı doğrudan base64 ile kodlanmış değerler olarak tanımlamanıza olanak tanır.

    config:
      connector:
        mode: envoy-external-filter
        certificate:
          enabled: true
          customSecret:
            enabled: true
            ca: LS0...  # Base64 ile kodlanmış CA
            crt: LS0... # Base64 ile kodlanmış sertifika
            key: LS0... # Base64 ile kodlanmış özel anahtar
    processing:
      service:
        type: LoadBalancer
    

Wallarm’ı Kong API Gateway veya Istio için bir konektör olarak dağıtırken, bu konektör için Native Node’u genel bir IP açığa çıkarmadan, dahili trafik için ClusterIP türüyle dağıtırsınız.

Aşağıdaki asgari yapılandırma ile values.yaml yapılandırma dosyasını oluşturun:

processing:
  service:
    type: ClusterIP

Tüm yapılandırma parametreleri

4. Wallarm servisini dağıtın

helm upgrade --install --version 0.17.1 <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.17.1 <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 yük dengeleyicisini alın

LoadBalancer türüyle dağıtıyorsanız:

  1. Wallarm yük dengeleyicisinin dış IP’sini alın:

    kubectl get svc -n wallarm-node
    

    native-processing servisi için dış IP’yi bulun.

  2. Alan adınızı dış IP’ye yönlendirecek şekilde DNS sağlayıcınızda bir A kaydı oluşturun.

    DNS yayıldıktan sonra servise alan adı üzerinden erişebilirsiniz.

6. Wallarm kodunu bir API yönetim servisine uygulayın

Node’u dağıttıktan sonra, trafiği dağıtılmış node’a yönlendirmek için Wallarm kodunu API yönetim platformunuza veya servisinize uygulamanız gerekir.

  1. Konektörünüz için Wallarm kod paketini edinmek üzere sales@wallarm.com ile iletişime geçin.

  2. Paketi API yönetim platformunuza uygulamak için platforma özel talimatları izleyin:

Yükseltme

Node’u yükseltmek için talimatları izleyin.