Con vSphere IaaS control plane, puede ejecutar pods de vSphere confidenciales en un 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.
Puede crear
pods de vSphere confidenciales si agrega el estado de cifrado 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 en la documentación de
Seguridad de vSphere.
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.
- 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
- Cree un archivo YAML que contenga los siguientes parámetros.
- En las anotaciones, habilite la función de pods de vSphere confidencial.
...
annotations:
vmware/confidential-pod: enabled
...
- 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"
- Inicie sesión en Supervisor.
kubectl vsphere login --server=https://<server_adress> --vsphere-username <your user account name>
- Cambie al espacio de nombres en el que desea implementar la aplicación.
kubectl config use-context <namespace>
- 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.
- 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.