Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Inspect cluster workloads

Última actualización: Sep 05, 2026

ACK ofrece la función de inspección para analizar las cargas de trabajo de su clúster en busca de riesgos de seguridad en su configuración. Una vez que se ejecuta una tarea de inspección, el sistema genera un informe correspondiente. Este informe le permite consultar y atender los elementos de riesgo, así como monitorear el estado de salud de sus cargas de trabajo en tiempo real.

Requisitos previos

  • El clúster debe ejecutar Kubernetes v1.14 o posterior. Para actualizar su clúster, consulte Manually update an ACK cluster.

  • Si usted es un usuario de RAM, complete la autorización de RAM y la autorización RBAC como se describe en las siguientes secciones.

    • Autorización de RAM

      Complete la autorización de RAM en la página de Inspections para garantizar que el usuario actual de RAM tenga los permisos necesarios para utilizar la página de Inspections del clúster actual. De lo contrario, no tendrá permisos suficientes y no podrá usar las funciones disponibles en la página de Inspections. Para obtener más información, consulte Grant permissions to access clusters and cloud resources by using RAM.

      Directiva de autorización de inspección

      {
        "Statement": [
          {
            "Action": [
              "cs:DescribePolarisConfig",
              "cs:DescribePolarisJob",
              "cs:DescribePolarisCronJob",
              "cs:UpdatePolarisJob",
              "cs:UpdatePolarisCronJob"
            ],
            "Effect": "Allow",
            "Resource": [
              "acs:cs:*:*:cluster/<yourclusterID>"
            ]
          }
        ],
        "Version": "1"
      }

      Si desea utilizar la función de informes de inspección, debe otorgar al usuario de RAM permisos de lectura sobre el proyecto específico de Simple Log Service (SLS). Este proyecto lo utiliza el componente de recopilación de registros de su clúster. De lo contrario, la falta de permisos le impedirá consultar los informes de inspección. Para obtener más información, consulte Examples of custom RAM authorization.

      Directiva de autorización de registros de SLS

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "log:Get*",
                      "log:List*"
                  ],
                  "Resource": "acs:log:*:*:project/<your_project_name>/*",
                  "Effect": "Allow"
              }
          ]
      }
    • Autorización RBAC

      Complete la autorización RBAC para los recursos en la página de Inspections con el fin de otorgar permisos de administrador al usuario de RAM para el clúster especificado. Esto garantiza que el usuario de RAM tenga los permisos necesarios para operar los recursos de Kubernetes en la página de Inspections. Para obtener más información, consulte Use RBAC to authorize operations on resources within a cluster.

Ejecución de una inspección

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página de Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Security > Inspections.

  3. Opcional: Siga las instrucciones en pantalla para instalar o actualizar el componente de inspección.

    El componente security-inspector es gratuito, pero consume recursos de pod. Para obtener más información sobre el componente y sus notas de versión, consulte security-inspector.

  4. Ejecute una inspección.

    Importante
    • Se recomienda ejecutar las inspecciones fuera de las horas pico.

    • De forma predeterminada, la inspección analiza todos los elementos compatibles. En la esquina superior derecha de la página de Inspections, puede hacer clic en Configure Periodic Inspection para especificar los elementos que se deben analizar. Para obtener más información, consulte Inspection items.

    • Para ejecutar una inspección inmediata, en la esquina superior derecha de la página de Inspections, haga clic en Inspect.

    • Para ejecutar inspecciones periódicas, en la esquina superior derecha de la página de Inspections, haga clic en Configure Periodic Inspection. A continuación, seleccione Configure Periodic Inspection y configure el periodo de inspección.

  5. Una vez completada la inspección, en la pestaña Inspections, localice el resultado de inspección deseado y haga clic en Details en la columna Actions.

Detalles de la inspección

La página de Inspections enumera los resultados detallados de la inspección para las distintas cargas de trabajo. La página ofrece las siguientes funciones:

  • Filtre los resultados por criterios como Passed or Failed, Namespace y Workload Type, y consulte el Number of Passed Items y los Risk Item de cada carga de trabajo.

  • Consulte los detalles de cada elemento de inspección, incluido el estado de la verificación (aprobado o con errores) a nivel de pod y contenedor, una descripción detallada y sugerencias de corrección. Si un elemento con errores no requiere corrección, puede agregarlo a la lista de permitidos.

  • Consulte el archivo YAML de una carga de trabajo.

Informes de inspección

La página de Reports muestra los resultados de la inspección más reciente. La página incluye la siguiente información:

  • Un resumen de los resultados del análisis, que incluye el número total de elementos inspeccionados, la cantidad y el porcentaje de cada tipo de recurso analizado, y la puntuación general de salud.

  • Estadísticas de las principales categorías de análisis, incluidas comprobaciones de salud, imágenes, red, recursos y seguridad.

  • Resultados detallados del análisis para cada configuración de carga de trabajo, incluidos el tipo de recurso, el nombre del recurso, el namespace, el tipo de comprobación, el elemento de inspección y el resultado.

Elementos de inspección

La función de inspección de configuración analiza y muestra resultados para los siguientes elementos.

ID de comprobación

Elemento de comprobación

Descripción y riesgo de seguridad

Corrección

hostNetworkSet

Evitar que los contenedores compartan el namespace de red del host

Comprueba si hostNetwork: true está configurado en la especificación del pod de una carga de trabajo. Si esta opción está habilitada, los contenedores pueden acceder al namespace de red del host, lo que crea un riesgo de ataques de red y rastreo de datos desde dentro del pod.

Modifique la especificación del pod para eliminar el campo hostNetwork.

Ejemplo:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostIPCSet

Evitar que los contenedores compartan el namespace IPC del host

Comprueba si hostIPC: true está configurado en la especificación del pod de una carga de trabajo. Si esta opción está habilitada, los contenedores pueden acceder al namespace IPC del host, lo que les permite atacar o rastrear datos de otros procesos en el host.

Modifique la especificación del pod para eliminar el campo hostIPC.

Ejemplo:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostPIDSet

Evitar que los contenedores compartan el namespace PID del host

Comprueba si hostPID: true está configurado en la especificación del pod de una carga de trabajo. Si esta opción está habilitada, los contenedores pueden acceder al namespace de ID de proceso (PID) del host, lo que les permite atacar o recopilar datos de otros procesos en el host.

Modifique la especificación del pod para eliminar el campo hostPID.

Ejemplo:

      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

hostPortSet

Evitar que los procesos del contenedor escuchen en puertos del nodo

Comprueba si hostPort está configurado en la especificación del pod de una carga de trabajo. Si un puerto del contenedor se asigna a un puerto en el nodo host, puede ocupar el puerto del host y recibir solicitudes de fuentes no deseadas.

Modifique la especificación del pod para eliminar el campo hostPort.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

runAsRootAllowed

Evitar que los contenedores se ejecuten como usuario root

Comprueba si runAsNonRoot: true está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, los contenedores se ejecutan como usuario root de forma predeterminada. Esto crea un riesgo de que procesos maliciosos comprometan sus aplicaciones, el host o todo el clúster.

Modifique la especificación del pod para agregar runAsNonRoot: true.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          runAsNonRoot: true

runAsPrivileged

Evitar que los contenedores se ejecuten en modo privilegiado

Comprueba si privileged: true está configurado en la especificación del pod de una carga de trabajo. Si esta opción está habilitada, el contenedor tiene acceso root al host. Esto crea un riesgo grave de que procesos maliciosos comprometan sus aplicaciones, el host o todo el clúster.

Modifique la especificación del pod para eliminar el campo privileged.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext: {}

privilegeEscalationAllowed

Evitar la escalada de privilegios en contenedores

Comprueba si allowPrivilegeEscalation: false está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, un proceso secundario en un contenedor puede obtener más privilegios que su proceso principal. Esto crea un riesgo de ataques de escalada de privilegios.

Modifique la especificación del pod para agregar el campo allowPrivilegeEscalation: false.

Ejemplo:

        ports:
        - containerPort: 80
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsNonRoot: true
        volumeMounts:

capabilitiesAdded

Eliminar capacidades de Linux innecesarias

Comprueba el campo capabilities en la especificación del pod de una carga de trabajo en busca de capacidades de Linux de alto privilegio como SYS_ADMIN, NET_ADMIN o ALL. Si se otorgan estas capacidades, los procesos maliciosos pueden usarlas para comprometer sus aplicaciones, componentes o el clúster.

Modifique la especificación del pod para agregar solo las capacidades de Linux necesarias y eliminar todas las demás.

Si no se requieren capacidades adicionales de Linux, elimínelas todas. Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          capabilities:
            drop:
            - ALL

Si se requieren capacidades específicas, agregue solo las necesarias y elimine todas las demás. Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          capabilities:
            add:
            - CHOWN
            drop:
            - ALL

notReadOnlyRootFilesystem

Usar un sistema de archivos raíz de solo lectura para los contenedores

Comprueba si readOnlyRootFilesystem: true está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, el sistema de archivos raíz del contenedor permite escritura. Esto crea un riesgo de que procesos maliciosos modifiquen archivos del sistema.

Modifique la especificación del pod para agregar readOnlyRootFilesystem: true. Si necesita escribir en un directorio específico, use volumeMounts.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          readOnlyRootFilesystem: true

Si necesita modificar archivos en un directorio específico, utilice un campo volumeMounts.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80
        securityContext:
          readOnlyRootFilesystem: true
          runAsNonRoot: true
        volumeMounts:
        - mountPath: /path/to/write
          name: writeable
      volumes:
      - emptyDir: {}
        name: writeable

cpuRequestsMissing

Establecer solicitudes de CPU para los contenedores

Comprueba si resources.requests.cpu está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, los pods podrían programarse en nodos con recursos de CPU insuficientes, lo que puede causar un rendimiento lento.

Modifique la especificación del pod para agregar un campo resources.requests.cpu.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m

cpuLimitsMissing

Establecer límites de CPU para los contenedores

Comprueba si resources.limits.cpu está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, los procesos anómalos en un contenedor pueden consumir recursos excesivos del nodo, lo que podría agotar los recursos de CPU del nodo o de todo el clúster.

Modifique la especificación del pod para agregar un campo resources.limits.cpu.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
          limits:
            cpu: 100m

memoryRequestsMissing

Establecer solicitudes de memoria para los contenedores

Comprueba si resources.requests.memory está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, los pods podrían programarse en nodos con memoria insuficiente, lo que provoca errores de falta de memoria (OOM).

Modifique la especificación del pod para agregar un campo resources.requests.memory.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
            memory: 128Mi

memoryLimitsMissing

Establecer límites de memoria para los contenedores

Comprueba si resources.limits.memory está configurado en la especificación del pod de una carga de trabajo. Si esta opción no está configurada, los procesos anómalos en un contenedor pueden consumir recursos excesivos del nodo, lo que podría agotar la memoria del nodo o de todo el clúster.

Modifique la especificación del pod para agregar un campo resources.limits.memory.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 100m
            memory: 128Mi

readinessProbeMissing

Configurar sondas de preparación para los contenedores

Comprueba si hay una readinessProbe configurada en la especificación del pod de una carga de trabajo. Sin una sonda de preparación, el tráfico podría enviarse a un contenedor antes de que esté listo para atender solicitudes, lo que puede causar errores en la aplicación.

Modifique la especificación del pod para agregar un campo readinessProbe.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        readinessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 20

livenessProbeMissing

Configurar sondas de actividad para los contenedores

Comprueba si hay una livenessProbe configurada en la especificación del pod de una carga de trabajo. Sin una sonda de actividad, un contenedor que no responde no se reinicia automáticamente, lo que puede provocar tiempos de inactividad de la aplicación.

Modifique la especificación del pod para agregar un campo livenessProbe.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 20

tagNotSpecified

Usar una etiqueta de imagen específica para los contenedores

Comprueba si el campo image en la especificación del pod de una carga de trabajo carece de una etiqueta de imagen o usa la etiqueta latest. Si no se utiliza una etiqueta de imagen específica, la carga de trabajo podría ejecutar una versión inesperada de la imagen del contenedor, lo que puede causar errores en la aplicación.

Modifique el campo image en la especificación del pod para usar una etiqueta de imagen específica. No utilice la etiqueta latest.

Ejemplo:

    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2

anonymousUserRBACBinding

Prohibir el acceso de usuarios anónimos al clúster

Revisa los enlaces de control de acceso basado en roles (RBAC) en el clúster para encontrar cualquier configuración que otorgue acceso a usuarios anónimos. Si se permite el acceso anónimo, usuarios malintencionados podrían robar información confidencial o atacar el clúster.

Modifique los enlaces RBAC para eliminar cualquier permiso que permita a los usuarios anónimos acceder a los recursos del clúster.

Ejemplo:

  - apiGroup: rbac.authorization.k8s.io
    kind: Group
    name: 'foo-group'

Eventos

Tipo de evento

Nombre del evento

Ejemplo de contenido

Descripción

Acciones

Normal

SecurityInspectorConfigAuditStart

Starting config audit

La tarea de inspección ha comenzado.

No se requiere ninguna acción.

Normal

SecurityInspectorConfigAuditFinished

Config audit finished

La tarea de inspección ha finalizado.

No se requiere ninguna acción.

Advertencia

SecurityInspectorConfigAuditHighRiskFound

Found 2 high-risk items after config audit

Después de la inspección, se encontraron elementos de alto riesgo sin mitigar en algunas cargas de trabajo.

  1. En la página de Inspections del clúster, vaya a la pestaña Inspections para consultar los resultados detallados de la inspección.

  2. Filtre los resultados por Passed or Failed, Namespace y Workload Type para identificar las cargas de trabajo en riesgo.

  3. Haga clic en Details para una carga de trabajo con el fin de ver los resultados de cada uno de sus elementos de inspección.

    • Para un elemento que confirme que no necesita corrección, haga clic en Add to Whitelist.

    • Para un elemento que requiera corrección, haga clic en Details y siga la sugerencia de corrección para solucionar el problema.