Helm チャートを使用した Kubernetes への Sophos Linux Sensor のインストール
Helm は Kubernetes エコシステムのパッケージマネージャです。Helm チャートは、Linux ソフトウェアのインストール用の RPM または DEB パッケージと同様に機能します。Helm Chartsは、Kubernetesでのアプリケーションの導入を合理化し、プロセスを簡単かつ便利にします。Helm Charts を使用して Kubernetes に Sophos Linux Sensor (SLS) をインストールできます。
Helm Charts は、Kubernetes のみを導入する場合と比較して、次のような利点があります。
- 繰り返し回数の削減:Helm では、異なる環境に対して YAML ファイルをコピーする代わりに、再利用可能なテンプレートを定義できます。
- より簡単な管理:
helm installまたはhelm upgradeコマンドを 1つ使用して、アプリケーションを配備、更新、および削除できます。 - バージョン管理とロールバック:Helm は変更を追跡し、以前のバージョンに簡単にロールバックできます。
- 依存関係のインストール:すべての依存関係を自動的にインストールします。
- 柔軟なバージョン管理:特定のバージョンを選択してそのまま使用するか、最新バージョンのチャートとセンサーを自動的に導入します。
要件
- このガイドの内容に従う前に、Kubernetes、Docker、および kubectl などのコマンドラインツールについて十分に理解しておくことをお勧めします。
- kubetcl v1.18 以降が必要です。詳細は、Kubernetes インストールツールを参照してください。
-
<LINUX_REPO_API_KEY>および<TENANT-ID>を取得します。詳細は、Sophos Linux Sensor パッケージレジストリ API トークンを生成する方法を参照してください 。<LINUX_REPO_API_KEY>は "SLS-" で始まる短い文字列です。-
<TENANT-ID>は以下の形式の文字列です。1a2345b6-78c9-012d-ef34-5a6b789c0de1
-
お客様の Sophos Central MCS URL を取得します。詳細は、MCS URLを参照してください 。
-
次のコマンドを実行して Helm レジストリで認証し、
<LINUX_REPO_API_KEY>を Sophos Linux レジストリ API キーに置き換えます。helm registry login https://registry.sophosupd.com -u <LINUX_REPO_API_KEY> -p <LINUX_REPO_API_KEY>警告
認証なしでは、このガイドの
helmコマンドは成功しません。
インストール
SLS は最新バージョンのグラフを使用して導入することを推奨します。これにより、常に最新の機能、セキュリティ修正、パフォーマンスの向上、および検出が保証されます。
SLS を推奨設定で導入するには、次の手順を実行します。
values.yamlという名前のファイルを作成します。場所はどこでもかまいません。-
ファイルに次の行を入力します。
<TENANT-ID>は Sophos Central 顧客 ID、<CENTRAL-URL>は Sophos Central MCS URL、<LINUX_REPO_API_KEY>は Sophos Linux レジストリ API キーに置き換えます。endpoint: sensor: params: customerID: <TENANT-ID> mcsURL: "<CENTRAL-URL>" mcsToken: "<LINUX_REPO_API_KEY>" -
次のコマンドを実行します。
<RELEASE_NAME>の箇所は、sophos-sensor-latestなど、導入に使用する名前に置き換えます。helm install <RELEASE_NAME> oci://registry.sophosupd.com/release/helm-sophos-linux-sensor \ --values values.yamlこのコマンドは、SLS を実行するたびに最新バージョンを自動的に取得します。特定のバージョンをインストールする場合は、
--version引数を使用して、インストールするバージョンを指定します。この引数を使用して、最新のパッチまたはグラフのマイナーバージョンにアップデートしながら、同じメジャーバージョンを維持するバージョン制約を適用できます。例
次のコマンドを実行すると、最新の 1.X.X バージョンがインストールされますが、2.X.X にはアップデートされません。
helm install <RELEASE_NAME> oci://registry.sophosupd.com/release/helm-sophos-linux-sensor \ --version ^1.0.0 \ --values values.yaml
アップグレード
クラスタが永続的で、使用しているセンサーのバージョンを定期的にアップグレードする場合は、helm upgrade を使用できます。--version 引数を使用して、グラフを最新バージョンにアップグレードし、既存の設定を再利用することもできます。
例
次のコマンドは、既存のグラフを 1.2.0-679 にアップグレードします。
helm upgrade <RELEASE_NAME> oci://registry.sophosupd.com/release/helm-sophos-linux-sensor \
--version ^1.2.0-679 --reuse-values
Sophos Central からのカスタムプロファイルの追加
要件
Sophos Central に Linux ランタイム検出プロファイルが必要です。プロファイルがない場合は、新しいプロファイルを作成し、環境に合わせてプロファイルを設定する必要があります。以下のリンクをご覧ください。
Sophos Central からダウンロードしたカスタムプロファイルを values.yaml に適用できます。Sophos Central からカスタムプロファイルをダウンロードするには、次の手順を実行します。
- Sophos Central にサインインします。
- 「マイプロダクト > Server > Linux プロファイル」の順に選択します。
- 「アクション」ボタン
をクリックします。 -
「最新バージョンをエクスポート」を選択して、プロファイルをデバイスに保存します。
ヒント
使用するプロファイルをクリックし、ダウンロードの矢印
をクリックして、プロファイルをデバイスにダウンロードすることもできます。 -
ダウンロードしたファイルを開きます。
- 必要なプロファイル情報をコピーします。
values.yamlを開きます。-
次の行を見つけます。
rules: | -
その行の後ろにコンテンツを貼り付けます。
- 変更内容を保存します。
例
これは、Sophos Central からダウンロードしたカスタムプロファイルを含むサンプルの values.yaml ファイルです。
endpoint:
sensor:
params:
customerID: ########-####-####-####-############
mcsURL: "https://mcs2-cloudstation-us-west-2.prod.hydra.sophos.com"
mcsToken:"SLS-########"
rules: |
Chmod of SSH Authorized Keys:
enabled: true
Chown of SSH Authorized Keys:
enabled: true
Suspicious_Interactive_Shell-parentProgramName-allowList:
operations:
- behavior: remove
list:
- /usr/bin/sshd
- /usr/sbin/sshd
Suspicious_Interactive_Shell-parentProgramName-blockList:
operations:
- behavior: add
list:
- /bin/sh
詳細設定
Helm を使用すると、runtimedetections.yaml ファイルに変更を加えずに、一部の高度なオプションを設定できます。次のコマンドを実行して、利用可能なすべての詳細設定オプションを表示します。
helm show values <sophos-registry> <chart version>
警告
これらのオプションは、今後変更される可能性があります。使用可能なオプションを確認するために変更を加える前に、常にこのコマンドを実行することを推奨します。
例
次に、コマンドが実行されたときに使用可能な詳細設定オプションを示す出力例を示します。
Pulled: registry.sophosupd.com/release/helm-sophos-linux-sensor:5.11.0-520
Digest: sha256:f161798ee035b5d061d559680a05d5a342c27269824cfcdce8e6665777ba5211
config:
customConfigMapName: ""
endpoint:
resources:
limits:
memory:2Gi
cpu:200m
requests:
memory:1Gi
cpu:100m
image:
registry:
url: registry.sophosupd.com/release
#This value is base64 encoded string of docker config.json to authenticate to registry
# Example: cat ~/.docker/config.json | base64
authConfigJson:
pullSecret:
sensor:
tag: sensor_tag
digest:
pullPolicy:常に
content:
tag: content_tag
digest:
pullPolicy:常に
sensor:
params:
customerID:
cloudMeta: auto
criSensorEnabled: true
monitorPort:9010
mcsURL: ""
mcsToken: ""
rules: ""
詳細設定オプションを追加するには、 values.yaml に追加するオプションを追加します。endpoint.sensor.params の下に他の設定がある場合は、必ず同じセクションの下に追加してください。
例
これはサンプル values.yaml ファイルで、デフォルトの 9010 監視ポートをポート 1111 で上書きするオプションが含まれています。
endpoint:
sensor:
params:
monitorPort:1111
customerID: ########-####-####-####-############
mcsURL: "https://mcs2-cloudstation-us-west-2.prod.hydra.sophos.com"
mcsToken:"SLS-########"
環境変数
SLS Helm チャート 1.0.3 以降を使用して、values.yaml に endpoint.sensor.env を設定することで、環境変数をネイティブに設定できます。
例
これは、RUNTIMEDETECTIONS_BLOB_STORAGE_CREATE_BUCKETS_ENABLED および RUNTIMEDETECTIONS_DEBUG の環境変数を true に設定するサンプル values.yaml ファイルです。
endpoint:
sensor:
env:
- name:RUNTIMEDETECTIONS_BLOB_STORAGE_CREATE_BUCKETS_ENABLED
value: "true"
- name:RUNTIMEDETECTIONS_DEBUG
value: "true"
警告およびイベントの出力
SLS Helm チャート 1.0.4 以降では、values.yaml に endpoint.sensor.params.outputs を設定して警告を設定し、endpoint.sensor.params.sinks を設定してイベント出力を設定できます。helm show values <sophos-registry> <chart version> コマンドは、警告およびイベント出力を設定するための詳細と最新のオプションを表示します。
注
GCP を使用して警告をエクスポートするには、警告とイベントのエクスポート先バケットのアカウント認証情報を使用して Kubernetes シークレットを作成する必要があります。Helm チャートは、次のオプションを使用してシークレットを指定することができます。
endpoint:
sensor:
params:
gcpCredentials:
secretName: "<secret_name>"
secretKey: "<secret_key>"
たとえば、kubectl create secret generic my-gcp-secret --from-file=gcp.json=key.json を使用してシークレットを追加した場合、secret_name は my-gcp-secret で、secret_key は gcp.json です。
SLS のアンインストール
Helm を使用して SLS をアンインストールするには、次の手順を実行します。
-
次のコマンドを実行し、
<RELEASE_NAME>をインストール時に選択した名前に置き換えます。helm uninstall <RELEASE_NAME> -
次のコマンドを実行して、SLS が削除されたことを確認します。
kubectl get pods