Ana içeriğe geç

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

Wallarm Native Node, NGINX'den bağımsız olarak çalışacak şekilde tasarlanmış olup bazı bağlayıcılarla dağıtım için öngörülmüştür. Native Node'u, Helm chart kullanarak Kubernetes kümeniz içerisinde ayrı bir servis olarak veya bir yük dengeleyici olarak çalıştırabilirsiniz.

Kullanım Durumları

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

  • MuleSoft, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway, Fastly için Wallarm bağlayıcısını dağıttığınız ve node'un self-hosted olmasını istediğiniz durumlarda. Bu, OpenShift, Amazon EKS, Azure AKS veya Google GKE gibi Kubernetes yönetim platformlarını zaten kullanıyorsanız idealdir. Node, trafik yönlendirmesini kolaylaştırmak için halka açık IP ile bir yük dengeleyici olarak yapılandırılmıştır.

  • Kong API Gateway veya Istio için Wallarm bağlayıcısını dağıttığınız durumlarda. Node, halka açık IP açığa çıkarmadan, dahili trafik için ClusterIP tipiyle dağıtılır.

Gereksinimler

Native Node'u Helm chart ile dağıtmak için Kubernetes kümenizin aşağıdaki kriterleri karşılaması gerekmektedir:

  • Helm v3 paket yöneticisinin kurulmuş olması.

  • API'lerinizin çalıştığı API geçidi veya CDN'den gelen erişime izin verilmiş olması.

  • Aşağıdakilere giden dış 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ının güncellemelerini ve API specification indirmek, ayrıca izin verilen, reddedilen veya gri listeye alınan ülke, bölge veya veri merkezleri için kesin IP'leri almak amacıyla aşağıdaki IP adresleri

      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 tipiyle dağıtım yapıyorsanız, bir alan adı ve güvenilir SSL/TLS sertifikasına sahip olmanız gerekmektedir.

  • Yukarıdakilere ek olarak, Wallarm Console'da Administrator rolünün atanmış olması gerekmektedir.

Sınırlamalar

  • Wallarm servisini LoadBalancer tipiyle dağıtırken, alan adı için güvenilir bir SSL/TLS sertifikası gereklidir. Self-signed sertifikalar henüz desteklenmemektedir.

  • Özel engelleme sayfası ve engelleme kodu yapılandırmaları henüz desteklenmemektedir.

  • Wallarm kuralı tarafından rate limiting desteklenmemektedir.

  • Multitenancy henüz desteklenmemektedir.

Dağıtım

1. Wallarm Token'ınızı Hazırlayın

Node'u yüklemek için, Wallarm Cloud'da node kaydı yapabilmeniz için bir tokena ihtiyacınız olacaktır. Token hazırlamak için:

  1. US Cloud veya EU Cloud içerisindeki Wallarm Console → SettingsAPI tokens bölümünü açın.

  2. Deploy kaynak rolü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. Konfigürasyon Dosyasını Hazırlayın

Halka açık IP ile LoadBalancer olarak yerleştirilen native Wallarm node, MuleSoft, Cloudflare, Amazon CloudFront, Broadcom Layer7 API Gateway ve Fastly'den gelen trafiği güvenlik analizi ve filtreleme amacıyla bu IP'ye 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 minimal konfigürasyon ile values.yaml dosyasını oluşturun. Sertifikayı uygulamak için tercih ettiğiniz yöntemi gösteren sekmeye geçin:

    Cluster'ınızda cert-manager kullanıyorsanız, bununla SSL/TLS sertifikasını oluşturabilirsiniz.

    config:
      connector:
        certificate:
          enabled: true
          certManager:
            enabled: true
            issuerRef:
              # The name of the cert-manager Issuer or ClusterIssuer
              name: letsencrypt-prod
              # If it is Issuer (namespace-scoped) or ClusterIssuer (cluster-wide)
              kind: ClusterIssuer
    processing:
      service:
        type: LoadBalancer
    

    Aynı namespace içerisindeki mevcut Kubernetes secret'tan SSL/TLS sertifikasını alabilirsiniz.

    config:
      connector:
        certificate:
          enabled: true
          existingSecret:
            enabled: true
            # The name of the Kubernetes secret containing the certificate and private key
            name: my-secret-name
    processing:
      service:
        type: LoadBalancer
    

    customSecret konfigürasyonu ile sertifikayı doğrudan base64 kodlanmış değerler olarak tanımlayabilirsiniz.

    config:
      connector:
        certificate:
          enabled: true
          customSecret:
            enabled: true
            ca: LS0...  # Base64-encoded CA
            crt: LS0... # Base64-encoded certificate
            key: LS0... # Base64-encoded private key
    processing:
      service:
        type: LoadBalancer
    

Wallarm'i Kong API Gateway veya Istio bağlayıcısı olarak dağıtırken, bu bağlayıcı için Native Node'u, halka açık IP açığa çıkarmadan dahili trafik için ClusterIP tipiyle dağıtırsınız.

Aşağıdaki minimal konfigürasyon ile values.yaml dosyasını oluşturun:

processing:
  service:
    type: ClusterIP

All configuration parameters

4. Wallarm Servisini Dağıtın

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 Load Balancer'ı Alın

Eğer LoadBalancer tipiyle dağıtım yapıyorsanız:

  1. Wallarm load balancer için dış IP'yi alın:

    kubectl get svc -n wallarm-node
    

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

  2. DNS sağlayıcınızda, alan adınızı bu dış IP'ye işaret eden bir A kaydı oluşturun.

    DNS yayılımı tamamlandıktan sonra, servise alan adı üzerinden erişebilirsiniz.

6. Wallarm Kodunu Bir API Yönetim Servisine Uygulayın

Node dağıtıldıktan sonra, bir sonraki adım dağıtılan node'a trafiği yönlendirmek amacıyla Wallarm kodunu API yönetim platformunuza veya servisinize uygulamaktır.

  1. Bağlayıcınız için Wallarm kod paketini almak üzere sales@wallarm.com ile iletişime geçin.

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

Yükseltme

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