Gestión del agente « Workload Protection » en « Red Hat OpenShift » mediante un gráfico de « Helm »

Puede utilizar un gráfico Helm para instalar, actualizar y eliminar un agente Workload Protection en un clúster Red Hat OpenShift.

También puedes utilizar la consola para conectar un clúster existente de Red Hat OpenShift o Kubernetes a tu instancia de Workload Protection. En la consola de IBM Cloud, ve a «Containers» > «Clusters» para acceder al clúster existente. A continuación, haz clic en «Conectar» en el widget « Workload Protection » para conectar tu clúster a Workload Protection.

Antes de empezar

  • Instala la última versión de la CLI de Helm en tu ordenador. Helm Se requiere la versión 3.6 o posterior.

  • Instala la CLI de IBM Cloud, el complemento de Kubernetes Service, el complemento de IBM Cloud Container Registry y las CLI de Red Hat OpenShift y Kubernetes. Para obtener más información, consulta la sección « Instalación de la CLI ».

  • Comprueba que dispones del acceso y los permisos necesarios para implementar el agente de Workload Protection en el clúster.

  • Comprueba que el proyecto « ibm-observe » esté disponible en tu clúster. El agente se despliega en este proyecto.

    Un proyecto es un espacio de nombres de un clúster.

    Para crear el proyecto, ejecuta el comando « oc adm new-project --node-selector='' ibm-observe ».

  • Comprueba que el tráfico saliente desde tu clúster hacia los puntos fin Workload Protection esté permitido en los puertos 443 y 6443. Si conectas los agentes a través de un punto de conexión privado virtual (VPE), ambos puertos deben estar permitidos para el tráfico saliente del clúster.

Implementación de un agente

Sigue los siguientes pasos para implementar un agente mediante Helm.

Configurar el contexto del clúster

  1. Inicie una sesión en la cuenta. Si tiene una cuenta federada, incluya la opción --sso.

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. Descargue y añada el archivo de configuración kubeconfig correspondiente a su clúster a kubeconfig en ~/.kube/config o al último archivo de la variable de entorno KUBECONFIG.

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. En tu navegador, ve a la dirección del controlador de tu clúster URL y añade /console al final. Por ejemplo, https://c0.containers.cloud.ibm.com:23652/console.

  4. En la barra de menús de la consola web de Red Hat OpenShift, pulse el perfil IAM#user.name@email.com > Copiar mandato de inicio de sesión. Muestra y copia el comando « oc login » en la línea comando para autenticarte desde la CLI.

  5. Compruebe que los mandatos oc se ejecutan correctamente con el clúster comprobando la versión.

    oc version
    

    Salida de ejemplo:

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

    Si no puede realizar operaciones que requieran permisos de administrador como, por ejemplo, listar todos los nodos de trabajador o los pods de un clúster, descargue los certificados TLS y los archivos de permisos para el administrador del clúster ejecutando el mandato ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin.

Configurar el repositorio « Helm » de Sysdig

Añada el repositorio de Helm de Workload Protection a la instancia de Helm.

  1. Añade el repositorio Helm.

    helm repo add sysdig https://charts.sysdig.com
    
  2. Actualiza el repositorio para obtener las últimas versiones de todos los gráficos de Helm.

    helm repo update
    
  3. Enumera los gráficos de « Helm » que están disponibles actualmente en el repositorio de Sysdig.

    helm search repo sysdig
    
  4. Comprueba que aparezca la tabla « sysdig/sysdig-deploy » ( Helm ).

Crea los valores en el archivo « YAML »

Define un archivo « YAML » e incluye los valores necesarios para implementar el agente « Workload Protection » y los componentes de Secure que tengas previsto implementar. Por ejemplo, guarda el archivo con el nombre « agent-values-monitor-secure.yaml ».

El siguiente archivo « YAML » es una plantilla que puedes utilizar para configurar el agente « Workload Protection » y los componentes de Secure. Puedes personalizar el archivo eliminando o comentando con « # » las secciones que no sean necesarias para tu 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

Donde:

CLUSTER_NAME
El nombre del clúster en el que se está implementando el agente.
SERVICE_ACCESS_KEY
La clave de acceso de la instancia de « Workload Protection ».
INGESTION_ENDPOINT
El punto final de ingestión de la instancia. Por ejemplo, ingest.us-east.security-compliance-secure.cloud.ibm.com.
API_ENDPOINT
El punto final de la API de la instancia. Por ejemplo, us-east.security-compliance-secure.cloud.ibm.com.

Instala el gráfico « Helm »

Para implementar el agente, los componentes de Secure o ambos, instala el gráfico « sysdig/sysdig-deploy » y utiliza el archivo de variables « YAML » que has configurado en el paso anterior.

Ejecute el mandato siguiente para instalar el agente utilizando el diagrama de Helm:

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

El siguiente ejemplo muestra un archivo de valores de muestra de « Helm » para la región de 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

Actualización de un agente

Para actualizar la versión del agente utilizando Helm, realice los pasos siguientes:

  1. Actualiza el repositorio Helm.

    helm repo update
    
  2. Actualice el agente.

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

Estos pasos permiten actualizar tus agentes a la última versión disponible.

eliminar un agente

También puedes utilizar la consola para eliminar el agente de tu clúster. En la consola de IBM Cloud, ve a «Containers» > «Clusters» para acceder al clúster existente. A continuación, abre el menú « Opciones » del widget « Workload Protection » y selecciona « Desconectar ».

Para eliminar el agente mediante Helm, desinstala el gráfico.

  1. Muestra la lista de los gráficos que están instalados.

    helm list -n ibm-observe
    

    El resultado muestra la lista de gráficos instalados:

    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. Desinstale el gráfico.

    helm delete sysdig-agent -n ibm-observe
    

    En Helm, « sysdig-agent » es el nombre de la versión.