Sidecar Helm Chart'ın Wallarm'a Özgü Değerleri¶
Bu belge, Wallarm Sidecar deployment veya upgrade sırasında değiştirebileceğiniz Wallarm'a özgü Helm chart değerlerini açıklamaktadır. Wallarm'a özgü ve diğer chart değerleri, Sidecar Helm chart'ın global yapılandırması içindir.
Küresel ve pod bazlı ayarların öncelikleri
Pod bazlı anotasyonlar, Helm chart değerleri üzerinde öncelik taşır.
Değiştirmeniz gerekebilecek Wallarm'a özgü varsayılan values.yaml
kısmı aşağıdaki gibidir:
config:
wallarm:
api:
token: ""
host: api.wallarm.com
port: 443
useSSL: true
caVerify: true
nodeGroup: "defaultSidecarGroup"
existingSecret:
enabled: false
secretKey: token
secretName: wallarm-api-token
apiFirewall:
mode: "on"
readBufferSize: 8192
writeBufferSize: 8192
maxRequestBodySize: 4194304
disableKeepalive: false
maxConnectionsPerIp: 0
maxRequestsPerConnection: 0
fallback: "on"
mode: monitoring
modeAllowOverride: "on"
enableLibDetection: "on"
parseResponse: "on"
aclExportEnable: "on"
parseWebsocket: "off"
unpackResponse: "on"
...
nginx:
workerProcesses: auto
workerConnections: 4096
logs:
extended: false
format: text
postanalytics:
external:
enabled: false
host: ""
port: 3313
...
# Optional part for custom admission webhook certificate provisioning
# controller:
# admissionWebhook:
# certManager:
# enabled: false
# secret:
# enabled: false
# ca: <base64-encoded-CA-certificate>
# crt: <base64-encoded-certificate>
# key: <base64-encoded-private-key>
config.wallarm.api.token¶
Bir filtreleme düğümü token değeridir. Wallarm API'ye erişim sağlamak için gereklidir.
Token, şu türlerden biri olabilir:
-
API token (recommended) - UI organizasyonu için düğüm gruplarını dinamik olarak ekleyip/çıkarmanız ya da ek güvenlik için token yaşam döngüsünü kontrol etmeniz gerektiğinde idealdir. API token oluşturmak için:
- Wallarm Console → Settings → API tokens bölümüne gidin; US Cloud veya EU Cloud üzerinden.
- Deploy source rolü ile bir API token oluşturun.
- Düğüm dağıtımı sırasında, oluşturulan token'ı kullanın ve
config.wallarm.api.nodeGroup
parametresi ile grup adını belirtin. Farklı API token'lar kullanarak birden fazla düğümü aynı gruba ekleyebilirsiniz.
-
Node token - Kullanılacak düğüm gruplarını önceden biliyorsanız uygundur.
Node token oluşturmak için:
Parametre, config.wallarm.api.existingSecret.enabled: true
olarak ayarlanmışsa göz ardı edilir.
config.wallarm.api.host¶
Wallarm API uç noktası. Aşağıdakilerden biri olabilir:
config.wallarm.api.nodeGroup¶
Bu, yeni dağıtılan düğümleri eklemek istediğiniz filtreleme düğümleri grubunun adını belirtir. Bu şekilde düğüm gruplama, yalnızca Deploy rolüne sahip bir API token kullanarak Cloud'a düğüm oluşturup bağladığınızda kullanılabilir (değeri config.wallarm.api.token
parametresine aktarılır).
Varsayılan değer: defaultSidecarGroup
Pod's annotation: sidecar.wallarm.io/wallarm-node-group
.
config.wallarm.api.existingSecret¶
Helm chart sürüm 4.4.4'ten itibaren, Kubernetes secret'larındaki bir Wallarm düğüm token değerini çekmek için bu yapılandırma bloğunu kullanabilirsiniz. Ayrı bir gizli yönetim sistemi olan ortamlarda (örneğin, bir external secrets operatörü kullanıyorsanız) faydalıdır.
Düğüm token'ını K8s secret içine kaydedip Helm chart'a çekmek için:
-
Wallarm düğüm token'ı içeren bir Kubernetes secret'ı oluşturun:
kubectl -n wallarm-sidecar create secret generic wallarm-api-token --from-literal=token=<WALLARM_NODE_TOKEN>
- Varsayılan dağıtım talimatlarını değiştirmeden izlediyseniz,
wallarm-sidecar
Helm release'i için oluşturulan Kubernetes ad alanıdır. Farklı bir ad alanı kullanıyorsanız adı değiştirin. wallarm-api-token
Kubernetes secret adıdır.<WALLARM_NODE_TOKEN>
, Wallarm Console UI'dan kopyalanan düğüm token değeridir.
External secret operatörü kullanıyorsanız, secret oluşturmak için uygun belgelere bakın.
- Varsayılan dağıtım talimatlarını değiştirmeden izlediyseniz,
-
values.yaml
içinde aşağıdaki yapılandırmayı ayarlayın:
Varsayılan değer: existingSecret.enabled: false
— bu, Helm chart'ın Wallarm düğüm token'ını config.wallarm.api.token
üzerinden alacağını gösterir.
config.wallarm.apiFirewall¶
API Specification Enforcement yapılandırmasını kontrol eder; sürüm 4.10'dan itibaren kullanılabilir. Varsayılan olarak etkinleştirilmiştir ve aşağıdaki gibi yapılandırılmıştır. Bu özelliği kullanıyorsanız, bu değerleri değiştirmemeniz önerilir.
config:
wallarm:
apiFirewall:
mode: "on"
readBufferSize: 8192
writeBufferSize: 8192
maxRequestBodySize: 4194304
disableKeepalive: false
maxConnectionsPerIp: 0
maxRequestsPerConnection: 0
sidecar-5.3.0-changelog itibaren, aşağıdakiler sunulmaktadır (örnekteki varsayılan değerlere bakınız):
Ayar | Açıklama |
---|---|
readBufferSize | İstek okuma için bağlantı başına tampon boyutu. Bu aynı zamanda maksimum header boyutunu sınırlar. İstemcileriniz multi-KB RequestURI ve/veya multi-KB header (örneğin, büyük çerezler) gönderiyorsa bu tamponu artırın. |
writeBufferSize | Yanıt yazma için bağlantı başına tampon boyutu. |
maxRequestBodySize | Maksimum istek gövde boyutu. Sunucu, bu limiti aşan gövdeli istekleri reddeder. |
disableKeepalive | Keep-alive bağlantılarını devre dışı bırakır. Bu seçenek true olarak ayarlanırsa, sunucu istemciye ilk yanıtı gönderdikten sonra gelen tüm bağlantıları kapatır. |
maxConnectionsPerIp | IP başına izin verilen eş zamanlı maksimum istemci bağlantısı sayısı. 0 = sınırsız . |
maxRequestsPerConnection | Bağlantı başına sunulan maksimum istek sayısı. Son isteğin ardından sunucu bağlantıyı kapatır. Son yanıta Connection: close header'ı eklenir. 0 = sınırsız . |
config.wallarm.fallback¶
Varsayılan olarak on
değerine ayarlandığında, NGINX servislerinin acil durum moduna geçebilme yeteneği bulunur. Proton.db veya özel kural seti, Wallarm Cloud'dan indirilemediğinde, bu ayar Wallarm modülünü devre dışı bırakır ve NGINX'in çalışmaya devam etmesini sağlar.
Pod's annotation: sidecar.wallarm.io/wallarm-fallback
.
config.wallarm.mode¶
Küresel trafik filtreleme modu. Olası değerler:
-
monitoring
(varsayılan) -
safe_blocking
-
block
-
off
Pod's annotation: sidecar.wallarm.io/wallarm-mode
.
config.wallarm.modeAllowOverride¶
Cloud'daki ayarlar aracılığıyla wallarm_mode
değerlerinin değiştirilmesine izin verilip verilmediğini yönetir filtration-mode-priorities-docs. Olası değerler:
-
on
(varsayılan) -
off
-
strict
Pod's annotation: sidecar.wallarm.io/wallarm-mode-allow-override
.
config.wallarm.enableLibDetection¶
SQL enjeksiyon saldırılarını libdetection kütüphanesi ile ek olarak doğrulayıp doğrulamayacağını belirler. Olası değerler:
-
on
(varsayılan) -
off
Pod's annotation: sidecar.wallarm.io/wallarm-enable-libdetection
.
config.wallarm.parseResponse¶
Uygulama yanıtlarını saldırılar açısından analiz edip etmeyeceğini belirler. Olası değerler:
-
on
(varsayılan) -
off
Yanıt analizi, passive detection ve active threat verification sırasında zafiyet tespiti için gereklidir.
Pod's annotation: sidecar.wallarm.io/wallarm-parse-response
.
config.wallarm.aclExportEnable¶
Node'dan Cloud'a, denylisted IP'lerden gelen isteklerle ilgili istatistiklerin gönderilmesini on
ile etkin, off
ile devre dışı bırakır.
-
config.wallarm.aclExportEnable: "on"
(varsayılan) ile denylisted IP'lerden gelen isteklerin istatistikleri, Attacks bölümünde görüntülenecektir. -
config.wallarm.aclExportEnable: "off"
ile denylisted IP'lerden gelen isteklerin istatistikleri görüntülenmeyecektir.
Pod's annotation: sidecar.wallarm.io/wallarm-acl-export-enable
.
config.wallarm.parseWebsocket¶
Wallarm tam WebSocket desteğine sahiptir. Varsayılan olarak, WebSocket mesajları saldırılar için analiz edilmez. Özelliği zorunlu kılmak için, API Security subscription plan'ını etkinleştirin ve bu ayarı kullanın.
Olası değerler:
-
on
-
off
(varsayılan)
Pod's annotation: sidecar.wallarm.io/wallarm-parse-websocket
.
config.wallarm.unpackResponse¶
Uygulama yanıtında dönen sıkıştırılmış verilerin dekomprese edilip edilmeyeceğini belirler:
-
on
(varsayılan) -
off
Pod's annotation: sidecar.wallarm.io/wallarm-unpack-response
.
config.nginx.workerConnections¶
Bir NGINX worker süreci tarafından açılabilecek eş zamanlı bağlantı sayısı'nın maksimum değeri.
Varsayılan değer: 4096
.
Pod's annotation: sidecar.wallarm.io/nginx-worker-connections
.
config.nginx.workerProcesses¶
Varsayılan değer: auto
, yani worker sayısı CPU çekirdek sayısına göre ayarlanır.
Pod's annotation: sidecar.wallarm.io/nginx-worker-processes
.
config.nginx.logs.extended¶
NGINX'de genişletilmiş loglamayı etkinleştirir. Genişletilmiş loglar; istek süresi, upstream yanıt süresi, istek boyutu, bağlantı detayları vb. bilgileri içerir.
5.3.0 sürümünden itibaren desteklenmektedir.
Varsayılan değer: false
.
config.nginx.logs.format¶
config.nginx.logs.extended
true
olarak ayarlandığında genişletilmiş logların formatını belirtir. text
ve json
formatlarını destekler.
5.3.0 sürümünden itibaren desteklenmektedir.
Varsayılan değer: text
.
postanalytics.external.enabled¶
Wallarm postanalytics (Tarantool) modülünün, Sidecar çözümü dağıtılırken kurulan yerine, ayrı bir host üzerine kurulup kurulmayacağını belirler.
Bu özellik, Helm sürüm 4.6.4'ten itibaren desteklenmektedir.
Olası değerler:
-
false
(varsayılan): Sidecar çözümü tarafından dağıtılan postanalytics modülü kullanılır. -
true
: Etkinleştirilirse, lütfenpostanalytics.external.host
vepostanalytics.external.port
değerlerinde postanalytics modülünün harici adresini sağlayın.
true
olarak ayarlandığında, Sidecar çözümü postanalytics modülünü çalıştırmaz, ancak belirtilen postanalytics.external.host
ve postanalytics.external.port
üzerinden erişim bekler.
postanalytics.external.host¶
Ayrı olarak kurulan postanalytics modülünün alan adı veya IP adresi. postanalytics.external.enabled
değeri true
olarak ayarlanırsa bu alan gereklidir.
Bu özellik, Helm sürüm 4.6.4'ten itibaren desteklenmektedir.
Örnek değerler: tarantool.domain.external
veya 10.10.0.100
.
Belirtilen host, Sidecar Helm chart'ının dağıtıldığı Kubernetes kümesinden erişilebilir olmalıdır.
postanalytics.external.port¶
Wallarm postanalytics modülünün çalıştığı TCP portudur. Varsayılan olarak, Sidecar çözümü modülü bu port üzerinden dağıttığından port 3313 kullanılır.
Eğer postanalytics.external.enabled
değeri true
olarak ayarlanırsa, modülün çalıştığı portu belirtin.
controller.admissionWebhook.certManager.enabled¶
Admission webhook sertifikasını varsayılan certgen
yerine oluşturmak için cert-manager
kullanılacağını belirler. Sürüm 4.10.7'den itibaren desteklenir.
Varsayılan değer: false
.
controller.admissionWebhook.secret.enabled¶
Admission webhook için sertifikaların manuel olarak yüklenip yüklenmeyeceğini, varsayılan certgen
yerine belirler. Sürüm 4.10.7'den itibaren desteklenir.
Varsayılan değer: false
.
true
olarak ayarlanırsa, base64 ile kodlanmış CA sertifikası, sunucu sertifikası ve özel anahtar belirtilmelidir, örneğin: