Gestione dell'agente " Workload Protection " in " Red Hat OpenShift " tramite un grafico " Helm "

È possibile utilizzare un grafico Helm per installare, aggiornare ed eliminare un agente Workload Protection su un cluster Red Hat OpenShift.

È inoltre possibile utilizzare la console per collegare un cluster esistente di Red Hat OpenShift o Kubernetes alla propria istanza di Workload Protection. Nella console di IBM Cloud, vai su Containers > Clusters per accedere al cluster esistente. Quindi, fai clic su "Connetti " nel widget " Workload Protection " per collegare il tuo cluster a Workload Protection.

Prima di iniziare

  • Installa l'ultima versione della CLI di Helm sul tuo computer locale. Helm È richiesta la versione 3.6 o successiva.

  • Installare la CLI di IBM Cloud, il plug-in Kubernetes Service, il plug-in IBM Cloud Container Registry e le CLI Red Hat OpenShift e Kubernetes. Per ulteriori informazioni, consulta la sezione " Installazione della CLI ".

  • Verifica di disporre dell'accesso e delle autorizzazioni necessarie per distribuire l'agente Workload Protection sul cluster.

  • Verifica che il progetto " ibm-observe " sia disponibile nel tuo cluster. L'agent è distribuito in questo progetto.

    Un progetto è uno spazio dei nomi in un cluster.

    Per creare il progetto, eseguire il comando oc adm new-project --node-selector='' ibm-observe``.

  • Verifica che il traffico in uscita dal tuo cluster verso gli endpoint Workload Protection sia consentito sulle porte 443 e 6443. Se si collegano gli agenti tramite un Virtual Private Endpoint (VPE), entrambe le porte devono essere autorizzate per il traffico in uscita dal cluster.

Installazione di un agente

Seguire i passaggi riportati di seguito per distribuire un agente utilizzando Helm.

Configurare il contesto del cluster

  1. Accedi al tuo account. Se hai un account federato, includi l'opzione --sso.

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. Scarica il file di configurazione kubeconfig per il tuo cluster e aggiungilo al tuo file kubeconfig esistente in ~/.kube/config o all'ultimo file nella variabile di ambiente KUBECONFIG.

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. Nel browser, digita l'indirizzo del controller del cluster URL e aggiungi /console alla fine. Ad esempio, https://c0.containers.cloud.ibm.com:23652/console.

  4. Dalla barra dei menu della console web di Red Hat OpenShift, clicca sul tuo profilo IAM#user.name@email.com > Copia comando di accesso. Visualizza e copia il comando " oc login " nella riga di comando per effettuare l'autenticazione dalla CLI.

  5. Verifica che i comandi oc vengano eseguiti correttamente con il tuo cluster controllando la versione.

    oc version
    

    Output di esempio:

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

    Se non è possibile eseguire operazioni che richiedono autorizzazioni di amministratore, come l'elenco di tutti i nodi di lavoro o dei pod in un cluster, scaricare i certificati e i file di autorizzazione TLS per l'amministratore del cluster eseguendo il comando ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin.

Configurare il repository Sysdig Helm

Aggiungi il repository Helm Workload Protection alla tua istanza Helm.

  1. Aggiungi il repository Helm.

    helm repo add sysdig https://charts.sysdig.com
    
  2. Aggiorna il repository per scaricare le ultime versioni di tutti i grafici Helm.

    helm repo update
    
  3. Elenca i grafici " Helm " attualmente disponibili per il repository Sysdig.

    helm search repo sysdig
    
  4. Verificare che sia presente il grafico " sysdig/sysdig-deploy " ( Helm ).

Creare i valori nel file YAML

Definire un file YAML e includere i valori necessari per l'installazione dell'agente Workload Protection e dei componenti Secure che si intende implementare. Ad esempio, assegna al file il nome “ agent-values-monitor-secure.yaml ”.

Il seguente file YAML è un modello che è possibile utilizzare per configurare l'agente Workload Protection e i componenti Secure. È possibile personalizzare il file rimuovendo o commentando con # le sezioni non necessarie per il proprio agente.

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

Dove:

CLUSTER_NAME
Il nome del cluster in cui si sta effettuando la distribuzione dell'agente.
SERVICE_ACCESS_KEY
La chiave di accesso all'istanza di Workload Protection.
INGESTION_ENDPOINT
L'endpoint di acquisizione dell'istanza. Ad esempio, ingest.us-east.security-compliance-secure.cloud.ibm.com.
API_ENDPOINT
L'endpoint API dell'istanza. Ad esempio, us-east.security-compliance-secure.cloud.ibm.com.

Installa il grafico " Helm "

Per distribuire l'agente, i componenti Secure o entrambi, installa il grafico " sysdig/sysdig-deploy " e utilizza il file delle variabili " YAML " che hai configurato nel passaggio precedente.

Eseguire il seguente comando per installare l'agent utilizzando il diagramma Helm:

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

L'esempio seguente mostra un file di valori di esempio per l' Helm, relativo alla regione us-east:

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

Aggiornamento di un agente

Per aggiornare la versione dell'agent utilizzando Helm, completa la seguente procedura:

  1. Aggiorna il repository Helm.

    helm repo update
    
  2. Aggiornare l'agent.

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

Questi passaggi consentono di aggiornare gli agenti alla versione più recente disponibile.

Rimozione di un agente

È inoltre possibile utilizzare la console per rimuovere l'agente dal proprio cluster. Nella console di IBM Cloud, vai su Containers > Clusters per accedere al cluster esistente. A questo punto, apri il menu Opzioni nel widget " Workload Protection " e seleziona "Disconnetti".

Per eliminare l'agente utilizzando Helm, disinstallare il grafico.

  1. Elencare i grafici installati.

    helm list -n ibm-observe
    

    L'output elenca i grafici installati:

    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. Disinstallare il grafico.

    helm delete sysdig-agent -n ibm-observe
    

    In Helm, " sysdig-agent " è il nome della versione.