Com o vSphere with Tanzu, você pode executar o vSphere Pods confidencial em um Supervisor Cluster. Um vSphere Pod confidencial usa uma tecnologia de hardware que mantém a memória do sistema operacional convidado criptografada, protegendo-a contra o acesso do hipervisor.

A partir do vSphere 7.0 Update 2, você pode criar vSphere Pods confidenciais adicionando Secure Encrypted Virtualization-Encrypted State (SEV-ES) como um aprimoramento de segurança extra. O SEV-ES impede que os registros da CPU vazem informações nos registros para componentes como o hipervisor. O SEV-ES também pode detectar modificações maliciosas em um estado de registro da CPU. Para obter mais informações sobre como usar a tecnologia SEV-ES no ambiente vSphere, consulte Protegendo Máquinas Virtuais com AMD Secure Encrypted Virtualization-Encrypted State .

Pré-requisitos

Para habilitar o SEV-ES em um host ESXi, um administrador do vSphere deve seguir estas diretrizes:
  • Use os hosts que suportam a funcionalidade SEV-ES. Atualmente, o SEV-ES é compatível apenas com CPUs AMD EPYC 7xx2 (codinome Roma ) e CPUs posteriores.
  • Use a versão ESXi do 7.0 Update 2 ou posterior.
  • Ative o SEV-ES em uma configuração de BIOS do sistema do ESXi. Consulte a documentação do seu sistema para obter mais informações sobre como acessar a configuração do BIOS.
  • Ao habilitar o SEV-ES no BIOS, insira um valor para a configuração Minimum SEV non-ES ASID (Minimum SEV non-ES ASID) igual ao número de VMs SEV-ES e confidencial vSphere Pods no host mais um. Por exemplo, se você planeja executar 100 VMs SEV-ES e 128 vSphere Pods, insira pelo menos 229. Você pode inserir uma configuração de até 500.

Procedimento

  1. Crie um arquivo YAML que contenha os seguintes parâmetros.
    1. Nas anotações, ative o recurso confidencial vSphere Pods.
      ...
      annotations:
              vmware/confidential-pod: enabled
      ...
    2. Especifique os recursos de memória para contêineres.
      Certifique-se de definir as solicitações de memória e os limites de memória para o mesmo valor, como neste exemplo.
      resources:
            requests:
              memory: "512Mi"
            limits:
              memory: "512Mi"
      Use o seguinte arquivo YAML como exemplo:
      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. Faça login no Supervisor Cluster.
    kubectl vsphere login --server=https://<server_adress> --vsphere-username <your user account name>
  3. Alterne para o namespace no qual você deseja implantar o aplicativo.
    kubectl config use-context <namespace>
  4. Implante um vSphere Pod confidencial do arquivo YAML.
    kubectl apply -f <yaml file name>.yaml
    Observação: Quando o vSphere Pod é implantado, o DRS o coloca no nó ESXi que oferece suporte ao SEV-ES. Se nenhum nó estiver disponível, o vSphere Pod será marcado como com falha.

    O vSphere Pod confidencial que é iniciado fornece suporte de criptografia de memória de hardware para todas as cargas de trabalho em execução nesse pod.

  5. Execute o seguinte comando para verificar se o vSphere Pod confidencial foi criado.
    kubectl describe pod/<yaml name>

O que Fazer Depois

Um administrador do vSphere pode visualizar o vSphere Pod confidencial. No vSphere Client, ele aparece com a tag Encryption Mode: Confidential Compute (Encryption Mode: Confidential Compute).