Con vSphere with Tanzu, puede ejecutar pods de vSphere confidenciales en un clúster supervisor. Un pod de vSphere confidencial utiliza una tecnología de hardware que mantiene cifrada la memoria del sistema operativo invitado, lo que la protege del acceso desde el hipervisor.

A partir de vSphere 7.0 Update 2, puede crear pods de vSphere confidenciales. Para ello, agregue el estado cifrado de SEV (Secure Encrypted Virtualization-Encrypted State, SEV-ES) como una mejora de seguridad adicional. SEV-ES impide que los registros de la CPU filtren información en los registros de los componentes como el hipervisor. SEV-ES también puede detectar modificaciones malintencionadas en un estado de registro de la CPU. Para obtener más información sobre el uso de la tecnología SEV-ES en el entorno de vSphere, consulte Proteger máquinas virtuales con virtualización cifrada segura de AMD: estado cifrado.

Requisitos previos

Para habilitar SEV-ES en un host ESXi, el administrador de vSphere debe seguir estas directrices:
  • Utilice los hosts que admiten la funcionalidad SEV-ES. Actualmente, SEV-ES solo es compatible con las CPU AMD EPYC 7xx2 (cuyo nombre de código es Rome) y CPU posteriores.
  • Utilice ESXi versión 7.0 Update 2 o posteriores.
  • Habilite SEV-ES en la configuración de la BIOS del sistema de un ESXi. Consulte la documentación del sistema para obtener más información sobre cómo acceder a la configuración de la BIOS.
  • Al hacerlo, introduzca un valor para la opción de ASID mínimo de estado no cifrado de SEV que sea igual a la cantidad de máquinas virtuales de SEV-ES y pods de vSphere confidenciales en el host más una. Por ejemplo, si tiene pensado ejecutar 100 máquinas virtuales de SEV-ES y 128 pods de vSphere, introduzca al menos 229. Puede introducir una configuración de hasta 500.

Procedimiento

  1. Cree un archivo YAML que contenga los siguientes parámetros.
    1. En las anotaciones, habilite la función de pods de vSphere confidencial.
      ...
      annotations:
              vmware/confidential-pod: enabled
      ...
    2. Especifique los recursos de memoria para los contenedores.
      Asegúrese de establecer las solicitudes de memoria y los límites de memoria en el mismo valor que en este ejemplo.
      resources:
            requests:
              memory: "512Mi"
            limits:
              memory: "512Mi"
      Utilice el siguiente archivo YAML como ejemplo:
      apiVersion: v1
      kind: Pod
      metadata:
        name: photon-pod
        namespace: my-podvm-ns
        annotations:
          vmware/confidential-pod: enabled
      spec:  # specification of the pod's contents
        restartPolicy: Never
        containers:
        - name: photon
          image: wcp-docker-ci.artifactory.eng.vmware.com/vmware/photon:1.0
          command: ["/bin/sh"]
          args:    ["-c", "while true; do echo hello, world!; sleep 1; done"]
          resources:
            requests:
              memory: "512Mi"
            limits:
              memory: "512Mi"
  2. Inicie sesión en clúster supervisor.
    kubectl vsphere login --server=https://<server_adress> --vsphere-username <your user account name>
  3. Cambie al espacio de nombres en el que desea implementar la aplicación.
    kubectl config use-context <namespace>
  4. Implemente un pod de vSphere confidencial desde el archivo YAML.
    kubectl apply -f <yaml file name>.yaml
    Nota: Cuando se implementa el pod de vSphere, DRS lo coloca en el nodo ESXi compatible con SEV-ES. Si no hay ningún nodo disponible, el pod de vSphere se marca como con errores.

    El pod de vSphere confidencial que se inicia proporciona compatibilidad con el cifrado de memoria de hardware para todas las cargas de trabajo que se ejecutan en ese pod.

  5. Ejecute el siguiente comando para comprobar que se creó el pod de vSphere confidencial.
    kubectl describe pod/<yaml name>

Qué hacer a continuación

Un administrador de vSphere puede ver el pod de vSphere confidencial. En el vSphere Client, aparece con la etiqueta Modo de cifrado: Cálculo confidencial.

El Modo de cifrado: Cálculo confidencial aparece para el pod de vSphere