HELM チャートを使用した Satellite クラスターでの Workload Protection エージェントの管理
Helm チャートを使用して、 Satellite クラスター上で Workload Protection コンポーネントをインストール、アップグレード、および削除することができます。
開始前に
-
バージョン 3 の Helm CLI の最新リリースをローカル・マシンにインストールします。
Helm 3.6 以降が必要です。
Helm は、 Helm チャートを使用してクラスター内の複雑な Kubernetes アプリを定義、インストール、およびアップグレードする Kubernetes パッケージ・マネージャーです。 Helm チャートには、アプリを作成する Kubernetes リソースの YAML ファイルを生成するための指定内容がパッケージ化されています。 これらの Kubernetes リソースは、クラスターに自動的に適用され、 Helmによってバージョンに割り当てられます。 Helm を使用して独自のアプリを指定およびパッケージ化して、Kubernetes リソースの YAML ファイルを Helm に生成させることもできます。
-
Red Hat OpenShift(oc)CLI および Kubernetes(kubectl)CLI をインストールします。
-
Workload Protection エージェントをクラスターにデプロイするためのアクセス権限と権限があることを確認します。
-
ibm-observe
名前空間がクラスター内で使用可能であることを確認します。 エージェントはこの名前空間にデプロイされます。 プロジェクトは、クラスター内の名前空間です。次のコマンドを実行して、名前空間を作成できます。
oc adm new-project --node-selector='' ibm-observe
-
Workload Protection
ingest
エンドポイントを取得します。 このエンドポイントは、次のステップで作成されるエンドポイントとは異なります。 Satellite ロケーションにアクセスし、 「リンク・エンドポイント」 および 「システム・エンドポイント」 を選択します。ingest.private.<region>.monitoring.cloud.ibm.com
を指す satellite-sysdig- で始まるsystem
エンドポイントをコピーします。 このエンドポイントは、後でINGESTION_SATELLITE_ENDPOINT
として使用できます。
Workload Protection コンポーネントをデプロイする前に、 Workload Protection プライベート API エンドポイントの Satellite リンク・エンドポイント を作成します。
Workload Protection Satellite ・リンク・エンドポイントの作成
Workload Protection プライベート・エンドポイントに安全に接続するために、HTTPS コンソールまたは CLI を使用した Satellite Link を作成します。
-
Workload Protection プライベート・エンドポイント を取得します。 例えば、 Workload Protection インスタンスが
us-east
にある場合、エンドポイントはprivate.us-east.security-compliance-secure.cloud.ibm.com
になります。 -
Satellite 「ロケーション」 ダッシュボード にアクセスします。 エンドポイントをリンクし、 「エンドポイントの作成」 をクリックします。
-
ロケーションの外部で実行されるサービス、サーバー、またはアプリのエンドポイントを作成するには、**「Cloud」**を選択します。
-
ステップ 1 で定義した Workload Protection プライベート・エンドポイントでなければならないエンドポイント名、宛先ドメイン名 (FQDN)、および宛先ポート 443 を入力します。
-
HTTPS プロトコルを選択します。
-
「作成」をクリックします。 Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで、数分間待ちます。
-
エンドポイントの表の行で、 Satellite Link コネクターのホスト名とエンドポイントのポートを 「アドレス」 フィールドにコピーします。 これは、以下のステップで使用する必要があります。
このエンドポイントは、以下のステップで API_ENDPOINT
として使用します。
エージェントのデプロイ
Helmを使用してエージェントをデプロイするには、以下のステップを実行します。
ステップ 1. クラスター・コンテキストのセットアップ
-
アカウントにログインします。 統合されたアカウントがある場合は、
--sso
オプションを含めます。ibmcloud login [-g <resource_group>] [--sso]
-
クラスターの
kubeconfig
構成ファイルをダウンロードし、kubeconfig
の既存の~/.kube/config
に追加するか、KUBECONFIG
環境変数の最後のファイルに追加します。ibmcloud oc cluster config --cluster <cluster_name_or_ID>
-
ブラウザーで、マスター URL のアドレスに
/console
を付加してナビゲートします。 例えば、https://c0.containers.cloud.ibm.com:23652/console
などです。 -
Red Hat OpenShift Web コンソールのメニュー・バーで、プロファイル IAM#user.name@email.com >「Copy Login Command」 をクリックします。
oc login
トークン・コマンドを表示してコマンド・ラインにコピーし、CLI で認証を受けます。 -
バージョンを調べて、ご使用のクラスターで
oc
コマンドが正常に実行されることを確認します。oc version
出力は、以下の例のようになります。
Client Version: v4.11.0 Kubernetes Version: v1.25.8.2
ステップ 2 Sysdig Helm リポジトリーのセットアップ
Workload Protection Helm リポジトリーを Helm インスタンスに追加します。
以下のステップを実行します。
-
クラスター・コンテキストを設定します。
ibmcloud ks cluster config --cluster <CLUSTER_NAME>
-
Helm リポジトリーを追加します。
helm repo add sysdig https://charts.sysdig.com
以下のエラーを受け取る場合があります。
helm repo add sysdig https://charts.sysdig.com --debug Error: context deadline exceeded helm.go:84: [debug] context deadline exceeded
以下のコマンドを実行し、 Helm リポジトリーの追加を再試行します。
rm $HOME/Library/Preferences/helm/repositories.lock
-
すべての Helm チャートの最新バージョンを取得するようにリポジトリーを更新します。
helm repo update
-
Sysdig リポジトリーで現在使用可能な Helm チャートをリストします。
helm search repo sysdig
-
Helm チャート
sysdig/sysdig-deploy
がリストされていることを確認します。
ステップ 3。 Helm 値ファイルを作成します。
yaml ファイルを定義し、デプロイする予定の Workload Protection コンポーネントをデプロイするための値を組み込みます。 例えば、ファイルに agent-values-monitor-secure.yaml
という名前を付けます。
以下の yaml は、 Workload Protection コンポーネントの構成に使用できるテンプレートです。 このファイルをカスタマイズするには、エージェント・デプロイメントに不要なセクションを削除するか、 #
にコメントを追加します。
agent:
collectorSettings:
collectorHost: INGESTION_SATELLITE_ENDPOINT
collectorPort: INGESTION_SATELLITE_ENDPOINT_PORT
slim:
enabled: true
global:
clusterConfig:
name: CLUSTER_NAME
kspm:
deploy: true
sysdig:
accessKey: SERVICE_ACCESS_KEY
apiHost: API_ENDPOINT
nodeAnalyzer:
secure:
vulnerabilityManagement:
newEngineOnly: true
nodeAnalyzer:
runtimeScanner:
deploy: false
benchmarkRunner:
deploy: false
hostScanner:
deploy: false
deploy: true
natsUrl: wss://API_ENDPOINT
sslVerifyCertificate: false
kspmCollector:
natsUrl: wss://API_ENDPOINT
sslVerifyCertificate: false
clusterScanner:
enabled: true
eveEnabled: true
sslVerifyCertificate: false
ここで、
CLUSTER_NAME
は、エージェントをデプロイしているクラスターの名前です。SERVICE_ACCESS_KEY
は、 Workload Protection インスタンスのアクセス・キーです。INGESTION_SATELLITE_ENDPOINT
は、取り込みエンドポイントを指す Satellite ・エンドポイント です。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud
などです。INGESTION_SATELLITE_ENDPOINT_PORT
は、ingest
エンドポイントを指す、以前に抽出された Satellite エンドポイント からのポートです。 例えば、30771
です。API_ENDPOINT
は、 Workload Protection プライベート API エンドポイントを指す、前に抽出した Satellite エンドポイントです。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924
などです。 この場合、ホスト名とポートの両方が一緒に定義されます。
ステップ 4: Helm チャートのインストール
エージェント、 Workload Protection コンポーネント、またはその両方をデプロイするには、 sysdig/sysdig-deploy
チャートをインストールし、前のステップで構成した変数 yaml ファイルを使用する必要があります。
helm チャートを使用してエージェントをインストールするには、以下のコマンドを実行します。
helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
Helm 値ファイルを使用せずに Workload Protection コンポーネントを直接インストールする場合は、 --set
を使用してすべての変数を設定する以下のコマンドを実行できます。
helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace\
--set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
--set global.sysdig.apiHost=<API_ENDPOINT> \
--set agent.collectorSettings.collectorHost=<INGESTION_SATELLITE_ENDPOINT> \
--set agent.collectorSettings.collectorPort=<INGESTION_SATELLITE_ENDPOINT_PORT> \
--set nodeAnalyzer.natsUrl=wss://<API_ENDPOINT> \
--set nodeAnalyzer.nodeAnalyzer.runtimeScanner.deploy=false \
--set nodeAnalyzer.nodeAnalyzer.hostScanner.deploy=false \
--set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
--set nodeAnalyzer.nodeAnalyzer.sslVerifyCertificate=false \
--set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
--set global.kspm.deploy=true \
--set global.clusterConfig.name=<CLUSTER_NAME> \
--set kspmCollector.natsUrl=wss://<API_ENDPOINT> \
--set kspmCollector.sslVerifyCertificate=false \
--set clusterScanner.enabled=true \
--set clusterScanner.eveEnabled=true \
--set clusterScanner.sslVerifyCertificate=true
ここで、
CLUSTER_NAME
は、エージェントをデプロイしているクラスターの名前です。SERVICE_ACCESS_KEY
は、 Workload Protection インスタンスのアクセス・キーです。INGESTION_SATELLITE_ENDPOINT
は、ingest
エンドポイントを指す 以前に抽出されたSatellite エンドポイント です。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud
です。INGESTION_SATELLITE_ENDPOINT_PORT
は、ingest
エンドポイントを指す、以前に抽出された Satellite エンドポイント からのポートです。 例えば、30771
です。API_ENDPOINT
は、 Workload Protection プライベート API エンドポイントを指す、前に抽出した Satellite エンドポイントです。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924
などです。 この場合、ホスト名とポートの両方が一緒に定義されます。
エージェントの更新
Workload Protection を 2 カ月に 1 回以上更新することをお勧めします。
Helmを使用してエージェントのバージョンを更新するには、以下の手順を実行します。
-
チャートを更新します。
helm repo update
-
エージェントをアップグレードします。
helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
エージェントの削除
Helmを使用してエージェントを削除するには、チャートをアンインストールする必要があります。
以下のステップを実行します。
-
インストールされているチャートをリストします。
helm list -n ibm-observe
このコマンドの出力には、以下のようなグラフがリストされます。
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION sysdig-agent ibm-observe 1 2023-03-24 15:02:58.408108 +0100 CET deployed sysdig-deploy-1.37.10
-
チャートをアンインストールします。
helm delete sysdig-agent -n ibm-observe
Helmの用語では、
sysdig-agent
はリリースの名前です。コマンドに名前空間を含めるのを忘れた場合は、次のエラーが表示されます:
Error: uninstall: Release not loaded: sysdig-agent: release: not found
。