Istio Ingress için Wallarm Filtresi¶
Wallarm, Istio tarafından yönetilen API’leri güvence altına almak için trafiği satır içi veya bant dışı analiz eden bir filtre sağlar. Wallarm node’u harici olarak dağıtırsınız ve gRPC tabanlı external processing filtresi aracılığıyla analize yönelik trafiği Wallarm node’una yönlendirmek için Envoy ayarlarında Wallarm tarafından sağlanan yapılandırmayı uygularsınız.
OOB modu (aynalanmış trafik)
observability_mode
Envoy parametresini burada açıklandığı şekilde ayarlayarak Wallarm filtresini bant dışı (OOB) trafik analizi için de kullanabilirsiniz.
Kullanım senaryoları¶
Bu, Envoy proxy ile çalışan ve Istio tarafından yönetilen API’leri gerçek zamanlı olarak güvenceye almak için en uygun seçimdir.
Sınırlamalar¶
-
When deploying the Wallarm service with the
LoadBalancer
type using the Helm chart, a trusted SSL/TLS certificate is required for the domain. Self-signed certificates are not yet supported. -
Custom blocking page and blocking code configurations are not yet supported.
All blocked malicious traffic is returned with status code
403
and the default block page. -
Rate limiting by Wallarm rules is not supported.
Rate limiting cannot be enforced on the Wallarm side for this connector. If you need rate limiting, use the features built into your API gateway or cloud platform.
-
Multitenancy is not supported.
All protected APIs are managed under a single Wallarm account; separating protection across multiple accounts for different infrastructures or environments is not yet supported.
Gereksinimler¶
Dağıtıma devam edebilmek için aşağıdaki gereksinimleri karşıladığınızdan emin olun:
-
Istio teknolojilerine hakimiyet
-
API trafiğini yöneten Envoy proxy ile Istio
Dağıtım¶
1. Bir Wallarm Node dağıtın¶
Wallarm node’u, dağıtmanız gereken Wallarm platformunun temel bileşenidir. Gelen trafiği inceler, kötü amaçlı aktiviteleri tespit eder ve tehditleri azaltacak şekilde yapılandırılabilir.
Self-hosted node dağıtımı için bir yapıt seçin ve envoy-external-filter
modu için ekli talimatları izleyin:
-
Bare metal veya VM’lerde Linux altyapıları için Hepsi-bir-arada yükleyici
-
Container tabanlı dağıtımlar kullanan ortamlar için Docker image
-
AWS altyapıları için AWS AMI
-
Kubernetes kullanan altyapılar için Helm chart
2. Envoy’u trafiği Wallarm node’una proxy’lemek için yapılandırın¶
-
envoy.yaml
→http_filters
bölümünüzde, istek ve yanıtları analiz için harici Wallarm Node’a gönderecek external processing filtresini yapılandırın. Bunun için aşağıdaki şablonu kullanın:... http_filters: - name: ext_proc typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor grpc_service: envoy_grpc: cluster_name: wallarm_cluster processing_mode: request_body_mode: STREAMED response_body_mode: STREAMED request_attributes: ["request.id", "request.time", "source.address"]
-
envoy.yaml
→clusters
bölümünüzde, verileri Wallarm Node’a iletmek için kullanılan Wallarm kümesini yapılandırın. Bunun için aşağıdaki şablonu kullanın:clusters: - ... - name: wallarm_cluster connect_timeout: 30s load_assignment: cluster_name: wallarm_cluster endpoints: # Wallarm Node'un uç noktası - lb_endpoints: - endpoint: address: socket_address: address: 127.0.0.1 port_value: 5080 http2_protocol_options: {} # http2'yi etkinleştirmek için ayarlanmalıdır transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext common_tls_context: validation_context: trusted_ca: filename: /path/to/node-ca.pem # Node örneği tarafından kullanılan sertifikayı veren CA
Olası 500 hatalarından kaçınma
Harici filtrede sorunlar oluştuğunda olası 500 hatalarından kaçınmak için yapılandırmaya failure_mode_allow
parametresini ekleyebilirsiniz.
Test¶
Dağıtılan filtrenin işlevselliğini test etmek için şu adımları izleyin:
-
Istio Gateway’e test amaçlı Yol Geçişi saldırısı içeren isteği gönderin:
-
Wallarm Console → Attacks bölümünü US Cloud veya EU Cloud üzerinde açın ve saldırının listede görüntülendiğinden emin olun.