Cuando implemente NCP, es importante que realice los pasos pertinentes para asegurar los entornos de Kubernetes y de NSX.

Restringir NCP para que solo se ejecute en nodos designados

NCP tiene acceso al plano de administración de NSX y se debe limitar para que solo se ejecute en nodos de infraestructura designados. Puede identificar estos nodos con una etiqueta apropiada. Se debe aplicar un nodeSelector de esta etiqueta a la especificación ReplicationController de NCP. Por ejemplo,

  nodeSelector:
      nsx-infra: True

También puede usar otros mecanismos, como la afinidad, para asignar pods a nodos. Para obtener más información, consulte https://kubernetes.io/docs/concepts/configuration/assign-pod-node.

Asegurarse de que Docker Engine esté actualizado

Docker publica periódicamente actualizaciones de seguridad. Se debe implementar un procedimiento automatizado para aplicar esas actualizaciones.

No permitir las funciones NET_ADMIN y NET_RAW de contenedores sin confianza

Los atacantes pueden aprovechar las funciones NET_ADMIN y NET_RAW de Linux para poner en peligro la red de pods. Debe deshabilitar estas dos funciones de contenedores en los que no confía. De forma predeterminada, la función NET_ADMIN no se otorga a un contenedor sin privilegios. Tenga en cuenta que una especificación de pod puede habilitarla o establecer el contenedor en modo privilegiado. Además, en los contenedores que no son de confianza, deshabilite NET_RAW especificando este valor en la lista de funciones descartadas en la configuración SecurityContext de la especificación del contenedor. Por ejemplo,

    securityContext:
       capabilities:
          drop:
            - NET_RAW
            - ...

Control de acceso basado en funciones

Kubernetes usa la API del Control de acceso basado en funciones (Role-Based Access Control, RBAC) para tomar decisiones de autorización, permitiendo que los administradores configuren directivas. Para obtener más información, consulte la documentación de Kubernetes sobre RBAC.

Por lo general, el administrador de clústeres es el único usuario con funciones y acceso privilegiados. Para las cuentas del servicio y de usuarios, se debe seguir el principio de mínimo privilegio al otorgar acceso.

Se recomienda seguir las siguientes instrucciones:

  • Restringir el acceso a los tokens de la API de Kubernetes de los pods que los necesiten.
  • Restringir el acceso a ConfigMap de NCP y a los secretos TLS del certificado cliente de NSX API al pod de NCP.
  • Bloquear el acceso a la API de redes de Kubernetes desde pods que no requieran dicho acceso.
  • Agregar una directiva RBAC de Kubernetes para especificar los pods que tienen acceso a la API de Kubernetes.

La directiva RBAC recomendada ya está en el archivo YAML de NCP y será efectiva cuando instale NCP.