Helm のチャートを使用して、 Red Hat OpenShift で Workload Protection エージェントを管理する

Red Hat OpenShift クラスタに Workload Protection エージェントをインストール、アップグレード、および削除するには、 Helm チャートを使用できます。

また、コンソールを使用して、既存の Red Hat OpenShift または Kubernetes クラスターを Workload Protection のインスタンスに接続することもできます。 IBM Cloud コンソールで、[ Containers] > [Clusters] の順に選択し、既存のクラスターにアクセスします。 次に、 Workload Protection ウィジェットの 「接続 」をクリックして、クラスターを Workload Protection に接続します。

開始前に

  • ローカルマシンに、 Helm CLI の最新リリースをインストールしてください。 Helm 3.6 以降のバージョンが必要です。

  • IBM Cloud CLI、 Kubernetes Service プラグイン、 IBM Cloud Container Registry プラグイン、および Red Hat OpenShift と Kubernetes のCLIをインストールします。 詳細については、「 CLIのインストール 」をご覧ください。

  • クラスタに Workload Protection エージェントをデプロイするために必要なアクセス権と権限が与えられていることを確認してください。

  • クラスタ内で「 ibm-observe 」プロジェクトが利用可能であることを確認してください。 エージェントはこのプロジェクトにデプロイされます。

    プロジェクトは、クラスター内の名前空間です。

    プロジェクトを作成するには、 oc adm new-project --node-selector='' ibm-observe を実行してください。

  • クラスタから Workload Protection エンドポイントへの送信トラフィックが、ポート 443 および 6443 で許可されていることを確認してください。 エージェントを仮想プライベートエンドポイント(VPE)経由で接続する場合、クラスターからのアウトバウンドトラフィックについては、両方のポートで通信を許可する必要があります。

エージェントの展開

Helm を使用してエージェントをデプロイするには、以下の手順を実行してください。

クラスタコンテキストを設定する

  1. アカウントにログインします。 統合されたアカウントがある場合は、--sso オプションを含めます。

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. クラスターの kubeconfig 構成ファイルをダウンロードし、kubeconfig の既存の ~/.kube/config に追加するか、KUBECONFIG 環境変数の最後のファイルに追加します。

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. お使いのブラウザで、クラスタコントローラーのアドレス URL にアクセスし、その末尾に /console を追加してください。 例えば、https://c0.containers.cloud.ibm.com:23652/console です。

  4. Red Hat OpenShift Web コンソールのメニュー・バーで、自分のプロファイルの**「IAM#user.name@email.com」>「ログイン・コマンドのコピー (Copy Login Command)」**をクリックします。 CLI から認証を行うには、 oc login トークンコマンドを表示し、その内容をコマンドラインにコピーしてください。

  5. バージョンを調べて、ご使用のクラスターで oc コマンドが正常に実行されることを確認します。

    oc version
    

    出力例:

    Client Version: v4.11.0
    Kubernetes Version: v1.25.8.2
    

    クラスター内のすべてのワーカー・ノードまたはポッドのリストなど、管理者権限を必要とする操作を実行できない場合は、ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin コマンドを実行して、クラスター管理者の TLS 証明書と許可ファイルをダウンロードします。

Sysdigの Helm リポジトリを設定する

「 Workload Protection 」 Helm リポジトリを、 Helm インスタンスに追加してください。

  1. Helm リポジトリを追加します。

    helm repo add sysdig https://charts.sysdig.com
    
  2. リポジトリを更新して、すべての Helm チャートの最新バージョンを取得します。

    helm repo update
    
  3. Sysdig リポジトリで現在利用可能な「 Helm 」のチャートを一覧表示してください。

    helm search repo sysdig
    
  4. sysdig/sysdig-deploy 」の「 Helm 」チャートがリストされていることを確認してください。

YAML ファイルを作成する

YAML ファイルを定義し、 Workload Protection エージェントおよび展開を予定しているSecureコンポーネントを展開するための値を記述します。 たとえば、ファイル名を「 agent-values-monitor-secure.yaml 」とします。

以下の「 YAML 」は、 Workload Protection エージェントおよびSecureコンポーネントの設定に使用できるテンプレートです。 エージェントで必要のないセクションを削除するか、 # でコメントアウトすることで、ファイルをカスタマイズできます。

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: INGESTION_ENDPOINT
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: API_ENDPOINT
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: CLUSTER_NAME
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      collector: INGESTION_ENDPOINT:6443
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

ここで、

CLUSTER_NAME
エージェントを展開するクラスタの名前。
SERVICE_ACCESS_KEY
Workload Protection インスタンスのアクセスキー。
INGESTION_ENDPOINT
インスタンスの取り込みエンドポイント。 例えば、ingest.us-east.security-compliance-secure.cloud.ibm.com です。
API_ENDPOINT
インスタンスのAPIエンドポイント。 例えば、us-east.security-compliance-secure.cloud.ibm.com です。

「 Helm 」チャートをインストールする

エージェント、Secureコンポーネント、あるいはその両方をデプロイするには、「 sysdig/sysdig-deploy 」チャートをインストールし、前の手順で設定した YAML ファイル内の変数を使用してください。

helm チャートを使用してエージェントをインストールするには、以下のコマンドを実行します。

helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml

以下の例は、 us-east 地域向けの Helm 値ファイルのサンプルを示しています

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  collectorSettings:
    collectorHost: ingest.private.us-east.security-compliance-secure.cloud.ibm.com
  sysdig:
    settings:
      host_scanner:
        enabled: true
      kspm_analyzer:
        enabled: true
      sysdig_api_endpoint: private.us-east.security-compliance-secure.cloud.ibm.com
  extraVolumes:
    volumes:
    - name: root-vol
      hostPath:
        path: /
    - name: tmp-vol
      hostPath:
        path: /tmp
    mounts:
    - mountPath: /host
      name: root-vol
      readOnly: true
    - mountPath: /host/tmp
      name: tmp-vol
global:
  imageRegistry: icr.io/ext
  clusterConfig:
    name: my-cluster
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx
    apiHost: private.us-east.security-compliance-secure.cloud.ibm.com
nodeAnalyzer:
  enabled: false
clusterShield:
  enabled: true
  cluster_shield:
    sysdig_endpoint:
      region: custom
      collector: ingest.private.us-east.security-compliance-secure.cloud.ibm.com:6443
    log_level: info
    features:
      admission_control:
        enabled: true
        container_vulnerability_management:
          enabled: true
        dry_run: false
      container_vulnerability_management:
        enabled: true
      audit:
        enabled: true
      posture:
        enabled: true

エージェントの更新

Helmを使用してエージェント・バージョンを更新するには、以下の手順を実行します。

  1. Helm リポジトリを更新します。

    helm repo update
    
  2. エージェントをアップグレードします。

    helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
    

以下の手順に従うと、エージェントが利用可能な最新バージョンにアップグレードされます。

エージェントの削除

コンソールを使用して、クラスターからエージェントを削除することもできます。 IBM Cloud コンソールで、[ Containers] > [Clusters] の順に選択し、既存のクラスターにアクセスします。 次に、「 Workload Protection 」ウィジェットの 「オプション」 メニューを開き、「 切断」 を選択します。

Helm を使用してエージェントを削除するには、チャートをアンインストールしてください。

  1. インストールされているチャートを一覧表示してください。

    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.6.3
    
  2. チャートをアンインストールします。

    helm delete sysdig-agent -n ibm-observe
    

    Helm では、 sysdig-agent がリリースの名称です。