Wallarm Connector for Istio Ingress¶
Wallarm, Istio tarafından yönetilen API'leri güvence altına almak ve trafiği out-of-band (OOB) analiz etmek için bir connector sağlar. Wallarm node'larını, Istio'nun Envoy proxy'leri ile birlikte dağıtarak, connector gelen trafiği aynalar; analiz için asenkron olarak gönderirken, trafiğin kesintisiz akmasına izin verir.
Entegrasyon, Envoy proxy içerisinde dağıtılan ve trafik aynalama ile Wallarm node ile iletişimi sağlayan bir Lua eklentisine dayanır.
Use cases¶
Gerçek zamanlı trafik analizinin gerekli olmadığı, asenkron analizin yeterli olduğu durumlarda bu çözüm tavsiye edilir.
Desteklenen tüm Wallarm deployment options arasında, Kubernetes'te Envoy proxy ile çalışan Istio tarafından yönetilen API'leri güvence altına almak için en optimal seçenektir.
Limitations¶
Bu yapılandırma, Wallarm'ı yalnızca Wallarm Console UI aracılığıyla ince ayarlamanıza imkan tanır. Dosya tabanlı yapılandırma gerektiren bazı Wallarm özellikleri bu uygulamada desteklenmemektedir, örneğin:
Requirements¶
Dağıtıma devam etmek için aşağıdaki gereksinimleri karşıladığınızdan emin olun:
-
Kubernetes kümenizde API trafiğini yöneten Istio ve Envoy proxy
-
Helm v3 paket yöneticisi
-
https://us1.api.wallarm.com
(US Wallarm Cloud) veyahttps://api.wallarm.com
(EU Wallarm Cloud) erişimi -
Wallarm Helm chart'ını eklemek için
https://charts.wallarm.com
erişimi -
Docker Hub üzerindeki Wallarm depolarına
https://hub.docker.com/r/wallarm
erişimi -
Saldırı tespit kurallarının güncellemelerini indirmek ve allowlisted, denylisted, or graylisted ülkeler, bölgeler veya veri merkezleri için doğru IP'leri almak amacıyla aşağıdaki IP adreslerine erişim
-
US Cloud veya EU Cloud için Wallarm Console'a Administrator erişimi
Deployment¶
Istio ve Envoy proxy tarafından yönetilen API'leri güvence altına almak için, aşağıdaki adımları izleyin:
-
Kubernetes kümenizde Wallarm filtering node servisini dağıtın.
-
Envoy proxy'yi, trafiği aynalayıp Wallarm node'una asenkron analiz için gönderecek şekilde Istio'da yapılandırın.
1. Deploy a Wallarm Native Node¶
Kubernetes kümenizde Wallarm node'unu ayrı bir servis olarak dağıtmak için, talimatları izleyin.
2. Configure Envoy to mirror traffic to the Wallarm node¶
-
Istio için Wallarm Lua eklenti kodunu temin etmek üzere support@wallarm.com ile iletişime geçin. Destek ekibi tarafından sağlanan dosya adları aşağıdaki adımlarda kullanılacaktır.
-
Lua betikleri kullanarak trafiği Wallarm node'una aynalamak için Envoy filter ve cluster yapılandırmasını uygulayın:
-
Istio Ingress controller namespace'i içerisinde Wallarm connector ve onun Lua bağımlılıklarını monte etmek için ConfigMap'ler oluşturun:
-
ConfigMap'leri monte etmek için Istio Ingress Gateway dağıtımınızı güncelleyin. Istio'yu nasıl yönettiğinize bağlı olarak (Helm, IstioOperator veya özel dağıtım), değişiklikleri uygun şekilde uygulayın.
Örneğin, Istio IstioOperator kullanılarak yüklendiyse,
IstioOperator
kaynağını güncelleyerek ConfigMap'leri monte edebilirsiniz:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: volumes: - name: lua-mpack configMap: name: lua-msgpack-lib - name: lua-rrasync configMap: name: rr-async-packed volumeMounts: - name: lua-mpack mountPath: /usr/local/share/lua/5.1/msgpack container: istio-proxy - name: lua-rrasync mountPath: /usr/local/share/lua/5.1/rrasync container: istio-proxy
Testing¶
Dağıtılan connector'ün işlevselliğini test etmek için, aşağıdaki adımları izleyin:
-
Wallarm pod'larının çalıştığından emin olun:
wallarm-node
, Wallarm node servisinin dağıtıldığı namespace'tir.Her pod durumu STATUS: Running veya READY: N/N olmalıdır. Örneğin:
-
Test Path Traversal saldırısını kullanarak Istio Gateway'e istek gönderin:
-
Wallarm Console'u açın → US Cloud veya EU Cloud içerisindeki Attacks bölümüne gidin ve saldırının listede göründüğünden emin olun.
Connector, out-of-band modunda çalıştığından ve kötü niyetli istekleri engellemediğinden, Wallarm node saldırıyı engellemez ancak kaydeder.
-
Gerekirse, ayrı bir konsol penceresinde Wallarm loglarını izleyin:
Upgrading the Wallarm Lua plugin¶
Dağıtılan Wallarm Lua eklentisini yeni bir sürüme yükseltmek için:
-
Güncellenmiş Wallarm Lua eklenti kodunu elde etmek üzere support@wallarm.com ile iletişime geçin.
-
Güncellenmiş eklentiyi Adım 2 açıklamasında belirtildiği şekilde dağıtın.
Eklenti yükseltmeleri, özellikle ana sürüm güncellemeleri için Wallarm node yükseltmesini gerektirebilir. Sürüm güncellemeleri ve yükseltme talimatları için Wallarm Native Node changelog'a bakın. Gelecekteki yükseltmeleri basitleştirmek ve kullanım dışı bırakmaları önlemek için düzenli node güncellemeleri önerilir.