コンテンツにスキップ

Wallarm SidecarがサポートするPodのアノテーション

Wallarm Sidecarソリューションは、Pod単位のアノテーションによって設定できます。本ドキュメントでは、本ソリューションでサポートされるアノテーションの一覧を説明します。

グローバル設定とPod単位設定の優先順位

Pod単位のアノテーションは、Helmチャートの値よりも優先されます

アノテーション一覧

アノテーションと対応するチャート値 説明
アノテーション: sidecar.wallarm.io/sidecar-injection-schema

config.injectionStrategy.schema
Wallarmコンテナのデプロイパターン: single(デフォルト)またはsplit
アノテーション: sidecar.wallarm.io/sidecar-injection-iptables-enable

config.injectionStrategy.iptablesEnable
iptablesのinitコンテナを起動するかどうか: true(デフォルト)またはfalse
アノテーション: sidecar.wallarm.io/wallarm-application

対応するチャート値なし
WallarmアプリケーションID
アノテーション: sidecar.wallarm.io/wallarm-block-page

対応するチャート値なし
ブロックされたリクエストに返すブロッキングページとエラーコード
アノテーション: sidecar.wallarm.io/wallarm-enable-libdetection

config.wallarm.enableLibDetection
libdetectionライブラリを使用してSQLインジェクション攻撃を追加検証するかどうか: on(デフォルト)またはoff
アノテーション: sidecar.wallarm.io/wallarm-fallback

config.wallarm.fallback
Wallarmのフォールバックモード: on(デフォルト)またはoff
アノテーション: sidecar.wallarm.io/wallarm-mode

config.wallarm.mode
トラフィックフィルタリングモード: monitoring(デフォルト)、safe_blockingblock、またはoff
アノテーション: sidecar.wallarm.io/wallarm-mode-allow-override

config.wallarm.modeAllowOverride
Cloudの設定でwallarm_modeの値を上書きできる可否を管理します: on(デフォルト)、off、またはstrict
アノテーション: sidecar.wallarm.io/wallarm-node-group

config.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-response

config.wallarm.parseResponse
アプリケーションのレスポンスを攻撃解析するかどうか: on(デフォルト)またはoffパッシブ検出脅威リプレイテストによる脆弱性検出にレスポンス解析が必要です。
アノテーション: sidecar.wallarm.io/wallarm-acl-export-enable

config.wallarm.aclExportEnable
ノードからCloudへ、denylistに登録されたIPからのリクエストに関する統計情報の送信をonで有効化/offで無効化します。
  • "on"(デフォルト)の場合、denylistに登録されたIPからのリクエストの統計はAttacksセクションに表示されます
  • "off"の場合、denylistに登録されたIPからのリクエストの統計は表示されません。
アノテーション: sidecar.wallarm.io/wallarm-parse-websocket

config.wallarm.parseWebsocket
WallarmはWebSocketsを完全にサポートしています。デフォルトでは、WebSocketsのメッセージは攻撃解析されません。この機能を有効にするには、API Securityのサブスクリプションプランを有効化し、このアノテーションを使用します: onまたはoff(デフォルト)。
アノテーション: sidecar.wallarm.io/wallarm-unpack-response

config.wallarm.unpackResponse
アプリケーションのレスポンスで返される圧縮データを展開するかどうか: on(デフォルト)またはoff
アノテーション: sidecar.wallarm.io/wallarm-upstream-connect-attempts

config.wallarm.upstream.connectAttempts
postanalyticsまたはWallarm APIへの即時再接続の試行回数を定義します。
アノテーション: sidecar.wallarm.io/wallarm-upstream-reconnect-interval

config.wallarm.upstream.reconnectInterval
即時再接続の試行回数のしきい値を超えた後に、postanalyticsまたはWallarm APIへ再接続を試みる間隔を定義します。
アノテーション: sidecar.wallarm.io/application-port

config.nginx.applicationPort
公開されているアプリケーションPodのポートが見つからない場合、Wallarmコンテナはこのポート宛の受信リクエストを待ち受けます。
アノテーション: sidecar.wallarm.io/nginx-listen-port

config.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-connections

config.nginx.workerConnections
NGINXワーカープロセスが開くことのできる同時接続の最大数です。デフォルトではチャート値は4096に設定されています。
アノテーション: sidecar.wallarm.io/nginx-worker-processes

config.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-cpu

config.sidecar.containers.proxy.resources.requests.cpu
sidecar-proxyコンテナの要求CPUです。
アノテーション: sidecar.wallarm.io/proxy-memory

config.sidecar.containers.proxy.resources.requests.memory
sidecar-proxyコンテナの要求メモリです。
アノテーション: sidecar.wallarm.io/proxy-cpu-limit

config.sidecar.containers.proxy.resources.limits.cpu
sidecar-proxyコンテナのCPU制限です。
アノテーション: sidecar.wallarm.io/proxy-memory-limit

config.sidecar.containers.proxy.resources.limits.memory
sidecar-proxyコンテナのメモリ制限です。
アノテーション: sidecar.wallarm.io/helper-cpu

config.sidecar.containers.helper.resources.requests.cpu
sidecar-helperコンテナの要求CPUです。
アノテーション: sidecar.wallarm.io/helper-memory

config.sidecar.containers.helper.resources.requests.memory
sidecar-helperコンテナの要求メモリです。
アノテーション: sidecar.wallarm.io/helper-cpu-limit

config.sidecar.containers.helper.resources.limits.cpu
sidecar-helperコンテナのCPU制限です。
アノテーション: sidecar.wallarm.io/helper-memory-limit

config.sidecar.containers.helper.resources.limits.memory
sidecar-helperコンテナのメモリ制限です。
アノテーション: sidecar.wallarm.io/init-iptables-cpu

config.sidecar.initContainers.iptables.resources.requests.cpu
sidecar-init-iptablesコンテナの要求CPUです。
アノテーション: sidecar.wallarm.io/init-iptables-memory

config.sidecar.initContainers.iptables.resources.requests.memory
sidecar-init-iptablesコンテナの要求メモリです。
アノテーション: sidecar.wallarm.io/init-iptables-cpu-limit

config.sidecar.initContainers.iptables.resources.limits.cpu
sidecar-init-iptablesコンテナのCPU制限です。
アノテーション: sidecar.wallarm.io/init-iptables-memory-limit

config.sidecar.initContainers.iptables.resources.limits.memory
sidecar-init-iptablesコンテナのメモリ制限です。
アノテーション: sidecar.wallarm.io/init-helper-cpu

config.sidecar.initContainers.helper.resources.requests.cpu
sidecar-init-helperコンテナの要求CPUです。
アノテーション: sidecar.wallarm.io/init-helper-memory

config.sidecar.initContainers.helper.resources.requests.memory
sidecar-init-helperコンテナの要求メモリです。
アノテーション: sidecar.wallarm.io/init-helper-cpu-limit

config.sidecar.initContainers.helper.resources.limits.cpu
sidecar-init-helperコンテナのCPU制限です。
アノテーション: sidecar.wallarm.io/init-helper-memory-limit

config.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オブジェクトの設定に指定します。例:

kubectl edit deployment -n <APPLICATION_NAMESPACE> <APP_LABEL_VALUE>
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