Wallarm SidecarがサポートするPodのアノテーション¶
Wallarm Sidecarソリューションは、Pod単位のアノテーションによって設定できます。本ドキュメントでは、本ソリューションでサポートされるアノテーションの一覧を説明します。
グローバル設定とPod単位設定の優先順位
Pod単位のアノテーションは、Helmチャートの値よりも優先されます。
アノテーション一覧¶
| アノテーションと対応するチャート値 | 説明 |
|---|---|
アノテーション: sidecar.wallarm.io/sidecar-injection-schemaconfig.injectionStrategy.schema | Wallarmコンテナのデプロイパターン: single(デフォルト)またはsplit。 |
アノテーション: sidecar.wallarm.io/sidecar-injection-iptables-enableconfig.injectionStrategy.iptablesEnable | iptablesのinitコンテナを起動するかどうか: true(デフォルト)またはfalse。 |
アノテーション: sidecar.wallarm.io/wallarm-application対応するチャート値なし | WallarmアプリケーションID。 |
アノテーション: sidecar.wallarm.io/wallarm-block-page対応するチャート値なし | ブロックされたリクエストに返すブロッキングページとエラーコード。 |
アノテーション: sidecar.wallarm.io/wallarm-enable-libdetectionconfig.wallarm.enableLibDetection | libdetectionライブラリを使用してSQLインジェクション攻撃を追加検証するかどうか: on(デフォルト)またはoff。 |
アノテーション: sidecar.wallarm.io/wallarm-fallbackconfig.wallarm.fallback | Wallarmのフォールバックモード: on(デフォルト)またはoff。 |
アノテーション: sidecar.wallarm.io/wallarm-modeconfig.wallarm.mode | トラフィックフィルタリングモード: monitoring(デフォルト)、safe_blocking、block、またはoff。 |
アノテーション: sidecar.wallarm.io/wallarm-mode-allow-overrideconfig.wallarm.modeAllowOverride | Cloudの設定でwallarm_modeの値を上書きできる可否を管理します: on(デフォルト)、off、またはstrict。 |
アノテーション: sidecar.wallarm.io/wallarm-node-groupconfig.wallarm.api.nodeGroup | 新しくデプロイするノードを追加したいフィルタリングノードグループの名前を指定します。この方法でのノードのグルーピングは、使用タイプがNode deployment/DeploymentのAPIトークンを使用してCloudにノードを作成・接続する場合にのみ利用できます(値はconfig.wallarm.api.tokenパラメーターに渡します)。この値はpostanalyticsポッドには適用されません。postanalytics用のノードは常に、 config.wallarm.api.nodeGroupのHelmチャート値で指定されたノードグループにリンクされます。 |
アノテーション: sidecar.wallarm.io/wallarm-parser-disable対応するチャート値なし | パーサーの無効化を許可します。ディレクティブの値は無効化するパーサー名に対応します(例: json)。複数のパーサーを指定する場合はセミコロン区切りにします(例: json;base64)。 |
アノテーション: sidecar.wallarm.io/wallarm-parse-responseconfig.wallarm.parseResponse | アプリケーションのレスポンスを攻撃解析するかどうか: on(デフォルト)またはoff。パッシブ検出や脅威リプレイテストによる脆弱性検出にレスポンス解析が必要です。 |
アノテーション: sidecar.wallarm.io/wallarm-acl-export-enableconfig.wallarm.aclExportEnable | ノードからCloudへ、denylistに登録されたIPからのリクエストに関する統計情報の送信をonで有効化/offで無効化します。
|
アノテーション: sidecar.wallarm.io/wallarm-parse-websocketconfig.wallarm.parseWebsocket | WallarmはWebSocketsを完全にサポートしています。デフォルトでは、WebSocketsのメッセージは攻撃解析されません。この機能を有効にするには、API Securityのサブスクリプションプランを有効化し、このアノテーションを使用します: onまたはoff(デフォルト)。 |
アノテーション: sidecar.wallarm.io/wallarm-unpack-responseconfig.wallarm.unpackResponse | アプリケーションのレスポンスで返される圧縮データを展開するかどうか: on(デフォルト)またはoff。 |
アノテーション: sidecar.wallarm.io/wallarm-upstream-connect-attemptsconfig.wallarm.upstream.connectAttempts | postanalyticsまたはWallarm APIへの即時再接続の試行回数を定義します。 |
アノテーション: sidecar.wallarm.io/wallarm-upstream-reconnect-intervalconfig.wallarm.upstream.reconnectInterval | 即時再接続の試行回数のしきい値を超えた後に、postanalyticsまたはWallarm APIへ再接続を試みる間隔を定義します。 |
アノテーション: sidecar.wallarm.io/application-portconfig.nginx.applicationPort | 公開されているアプリケーションPodのポートが見つからない場合、Wallarmコンテナはこのポート宛の受信リクエストを待ち受けます。 |
アノテーション: sidecar.wallarm.io/nginx-listen-portconfig.nginx.listenPort | Wallarmコンテナが待ち受けるポートです。このポートはWallarm Sidecarソリューションで使用するために予約されており、application-portと同じにはできません。 |
アノテーション: sidecar.wallarm.io/nginx-http-include対応するチャート値なし | NGINX設定のhttpレベルにインクルードすべきNGINX設定ファイルへのパスの配列です。ファイルはコンテナにマウントされている必要があり、このパスはコンテナ内のそのファイルを指している必要があります。 |
アノテーション: sidecar.wallarm.io/nginx-http-snippet対応するチャート値なし | NGINX設定のhttpレベルに含める追加のインライン設定です。 |
アノテーション: sidecar.wallarm.io/nginx-server-include対応するチャート値なし | NGINX設定のserverレベルにインクルードすべきNGINX設定ファイルへのパスの配列です。ファイルはコンテナにマウントされている必要があり、このパスはコンテナ内のそのファイルを指している必要があります。 |
アノテーション: sidecar.wallarm.io/nginx-server-snippet対応するチャート値なし | NGINX設定のserverレベルに含める追加のインライン設定です。 |
アノテーション: sidecar.wallarm.io/nginx-location-include対応するチャート値なし | NGINX設定のlocationレベルにインクルードすべきNGINX設定ファイルへのパスの配列です。ファイルはコンテナにマウントされている必要があり、このパスはコンテナ内のそのファイルを指している必要があります。 |
アノテーション: sidecar.wallarm.io/nginx-location-snippet対応するチャート値なし | NGINX設定のlocationレベルに含める追加のインライン設定です。 |
アノテーション: sidecar.wallarm.io/nginx-extra-modules対応するチャート値なし | 有効化する追加のNGINXモジュールの配列です。 |
アノテーション: sidecar.wallarm.io/nginx-worker-connectionsconfig.nginx.workerConnections | NGINXワーカープロセスが開くことのできる同時接続の最大数です。デフォルトではチャート値は4096に設定されています。 |
アノテーション: sidecar.wallarm.io/nginx-worker-processesconfig.nginx.workerProcesses | NGINXのワーカープロセス数です。デフォルトではチャート値はautoに設定され、ワーカー数はCPUコア数に設定されます。 |
アノテーション: sidecar.wallarm.io/proxy-extra-volumes対応するチャート値なし | Podに追加するカスタムボリューム(配列)です。アノテーション値は単一引用符''で囲む必要があります。 |
アノテーション: sidecar.wallarm.io/proxy-extra-volume-mounts対応するチャート値なし | sidecar-proxyコンテナに追加するカスタムボリュームマウント(JSONオブジェクト)です。アノテーション値は単一引用符''で囲む必要があります。 |
アノテーション: sidecar.wallarm.io/proxy-cpuconfig.sidecar.containers.proxy.resources.requests.cpu | sidecar-proxyコンテナの要求CPUです。 |
アノテーション: sidecar.wallarm.io/proxy-memoryconfig.sidecar.containers.proxy.resources.requests.memory | sidecar-proxyコンテナの要求メモリです。 |
アノテーション: sidecar.wallarm.io/proxy-cpu-limitconfig.sidecar.containers.proxy.resources.limits.cpu | sidecar-proxyコンテナのCPU制限です。 |
アノテーション: sidecar.wallarm.io/proxy-memory-limitconfig.sidecar.containers.proxy.resources.limits.memory | sidecar-proxyコンテナのメモリ制限です。 |
アノテーション: sidecar.wallarm.io/helper-cpuconfig.sidecar.containers.helper.resources.requests.cpu | sidecar-helperコンテナの要求CPUです。 |
アノテーション: sidecar.wallarm.io/helper-memoryconfig.sidecar.containers.helper.resources.requests.memory | sidecar-helperコンテナの要求メモリです。 |
アノテーション: sidecar.wallarm.io/helper-cpu-limitconfig.sidecar.containers.helper.resources.limits.cpu | sidecar-helperコンテナのCPU制限です。 |
アノテーション: sidecar.wallarm.io/helper-memory-limitconfig.sidecar.containers.helper.resources.limits.memory | sidecar-helperコンテナのメモリ制限です。 |
アノテーション: sidecar.wallarm.io/init-iptables-cpuconfig.sidecar.initContainers.iptables.resources.requests.cpu | sidecar-init-iptablesコンテナの要求CPUです。 |
アノテーション: sidecar.wallarm.io/init-iptables-memoryconfig.sidecar.initContainers.iptables.resources.requests.memory | sidecar-init-iptablesコンテナの要求メモリです。 |
アノテーション: sidecar.wallarm.io/init-iptables-cpu-limitconfig.sidecar.initContainers.iptables.resources.limits.cpu | sidecar-init-iptablesコンテナのCPU制限です。 |
アノテーション: sidecar.wallarm.io/init-iptables-memory-limitconfig.sidecar.initContainers.iptables.resources.limits.memory | sidecar-init-iptablesコンテナのメモリ制限です。 |
アノテーション: sidecar.wallarm.io/init-helper-cpuconfig.sidecar.initContainers.helper.resources.requests.cpu | sidecar-init-helperコンテナの要求CPUです。 |
アノテーション: sidecar.wallarm.io/init-helper-memoryconfig.sidecar.initContainers.helper.resources.requests.memory | sidecar-init-helperコンテナの要求メモリです。 |
アノテーション: sidecar.wallarm.io/init-helper-cpu-limitconfig.sidecar.initContainers.helper.resources.limits.cpu | sidecar-init-helperコンテナのCPU制限です。 |
アノテーション: sidecar.wallarm.io/init-helper-memory-limitconfig.sidecar.initContainers.helper.resources.limits.memory | sidecar-init-helperコンテナのメモリ制限です。 |
アノテーション: sidecar.wallarm.io/profile対応するチャート値なし | TLS/SSL終端のためにアプリケーションPodに特定のTLSプロファイルを割り当てるために使用します。 このアノテーションとTLS/SSL終端はHelmチャート4.6.1以降でサポートされます。 |
直接のアノテーションで網羅されていないものの、WallarmがサポートするNGINXディレクティブは他にもあります。とはいえ、nginx-*-snippetおよびnginx-*-includeアノテーションを使用すれば、それらも設定できます。
アノテーションの使用方法¶
Podにアノテーションを適用するには、対象アプリケーション設定のDeploymentオブジェクトの設定に指定します。例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
wallarm-sidecar: enabled
annotations:
sidecar.wallarm.io/wallarm-mode: block
spec:
containers:
- name: application
image: kennethreitz/httpbin
ports:
- name: http
containerPort: 80