Wallarm Sidecarのアップグレード¶
本手順では、Wallarm Sidecarソリューションのアップグレード手順を説明します。
要件¶
-
Kubernetes platform version 1.19-1.29
-
Helm v3 package manager
-
An application deployed as a Pod in a Kubernetes cluster
-
Access to
https://us1.api.wallarm.com
for working with US Wallarm Cloud or tohttps://api.wallarm.com
for working with EU Wallarm Cloud -
Access to
https://charts.wallarm.com
to add the Wallarm Helm charts -
Access to the Wallarm repositories on Docker Hub
https://hub.docker.com/r/wallarm
-
Access to the IP addresses below for downloading updates to attack detection rules and API specifications, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers
-
Access to the account with the Administrator role in Wallarm Console for the US Cloud or the EU Cloud
ステップ1: Wallarm Helmチャートリポジトリの更新¶
ステップ2: これから適用されるK8sマニフェストの変更内容を確認¶
想定外のSidecar動作の変更を防ぐため、Helm Diff Pluginを使用して、デプロイ済みSidecarバージョンと新バージョンのK8sマニフェスト間の差分を確認します。
プラグインのインストールと実行方法は以下の通りです。
-
プラグインをインストールします:
-
プラグインを実行します:
helm diff upgrade <RELEASE_NAME> -n wallarm-sidecar wallarm/wallarm-sidecar --version 5.3.0 -f <PATH_TO_VALUES>
<RELEASE_NAME>
はWallarm Sidecar Helmリリースの名前です。wallarm-sidecar
はWallarm Sidecarソリューションをデプロイしたnamespaceです。当社のデプロイガイドに従い、通常はwallarm-sidecar
に設定されています。<PATH_TO_VALUES>
はSidecar設定を定義するvalues.yaml
ファイルへのパスです。以前のSidecarバージョン実行時に作成したものを使用できます。
-
すべての変更が稼働中のサービスの安定性に影響しないことを確認し、stdoutのエラーを慎重に確認してください。
stdoutが空の場合、
values.yaml
ファイルが有効であることを確認します。
バージョン4.10.6または4.10.x以前からのアップグレード¶
リリース 4.10.7では互換性に破壊的な変更が導入されたため、ソリューションの再インストールが必要となります。admission webhook証明書の生成デフォルト方式はcertgen
プロセスに置き換えられました。アップグレード中に、新しいcertgen
プロセスにより証明書が自動生成されます。
さらに、本リリースではcert-manager
を使用してadmission webhook証明書を提供するか、証明書を手動で指定することが可能です。
ステップ3: 前バージョンのソリューションをアンインストール¶
ステップ4: 以前の証明書アーティファクトを削除¶
kubectl delete MutatingWebhookConfiguration <RELEASE_NAME>-wallarm-sidecar
kubectl delete secret <RELEASE_NAME>-wallarm-sidecar-admission-tls -n wallarm-sidecar
ステップ5: 新バージョンのソリューションをデプロイ¶
helm install --version 5.3.0 <RELEASE_NAME> wallarm/wallarm-sidecar --wait -n wallarm-sidecar -f <PATH_TO_VALUES>
-
<RELEASE_NAME>
はHelmリリースの名称です。初回デプロイ時と同じ名称を使用することが推奨されます。 -
wallarm-sidecar
はHelmリリースをデプロイするnamespaceです。初回デプロイ時と同じnamespaceを使用することが推奨されます。 -
<PATH_TO_VALUES>
はvalues.yaml
ファイルへのパスです。初回デプロイ時に生成したものを再利用でき、アップグレード時に変更は必要ありません。
バージョン4.10.7以降からのアップグレード¶
ステップ3: Sidecarソリューションのアップグレード¶
デプロイ済みのSidecarソリューションコンポーネントをアップグレードします:
helm upgrade <RELEASE_NAME> -n <NAMESPACE> wallarm/wallarm-sidecar --version 5.3.0 -f <PATH_TO_VALUES>
-
<RELEASE_NAME>
:デプロイされたSidecarチャートのHelmリリース名 -
<NAMESPACE>
:Sidecarがデプロイされているnamespace -
<PATH_TO_VALUES>
:Sidecar 4.10設定を定義するvalues.yaml
ファイルへのパスです。以前のSidecarバージョン実行時に作成したものを使用できます。
アップグレード後のSidecarソリューションのテスト¶
-
Helmチャートのバージョンがアップグレードされたことを確認します:
ここで
wallarm-sidecar
はSidecarがデプロイされているnamespaceです。namespaceが異なる場合は、この値を変更してください。チャートバージョンは
wallarm-sidecar-5.3.0
に対応している必要があります。 -
Wallarmコントロールプレーンの詳細を取得し、正常に起動していることを確認します:
各podはREADY: N/NおよびSTATUS: Runningと表示されるはずです。例:
-
アプリケーションクラスターのアドレスに対して、テストパストラバーサル攻撃を送信します:
リクエストされたアプリケーションPodには
wallarm-sidecar: enabled
ラベルが付与されているはずです。新バージョンのソリューションが前バージョンと同様に悪意あるリクエストを処理することを確認してください。