O arranque seguro ajuda a garantir que o sistema executa apenas software autêntico através da validação da assinatura digital de todos os componentes de arranque e da interrupção do processo de arranque se a validação da assinatura falhar.
O dispositivo isolado do Google Distributed Cloud (GDC) usa o firmware da interface de firmware extensível unificada (UEFI) para gerir certificados e chaves usados para assinar software.
O firmware de UEFI gere de forma segura os certificados que contêm as chaves que os fabricantes de software usam para assinar o firmware do sistema, o carregador de arranque do sistema e quaisquer ficheiros binários que carregam. Para ver a documentação da UEFI, aceda a
https://uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf
.
Em cada arranque, o firmware UEFI valida a assinatura digital de cada componente de arranque em comparação com o armazenamento seguro de chaves aprovadas. Não é permitido executar nenhum componente de arranque que não assine corretamente ou que não assine de todo. Para ativar o arranque seguro, tem de definir o tipo de VM como uefi
.bootloader
Um vTPM é um Trusted Platform Module virtualizado. Consulte https://trustedcomputinggroup.org/trusted-platform-module-tpm-summary/ para mais informações sobre os vTPMs. É um chip de computador especializado que pode usar para proteger objetos, como chaves e certificados, que usa para autenticar o acesso ao seu sistema. Também pode usar o vTPM para proteger segredos através da proteção ou da selagem. Para mais informações sobre o armazenamento selado, consulte https://en.wikipedia.org/wiki/Trusted_Computing#SEALED-STORAGE. Consulte o projeto Go-TPM no GitHub: https://github.com/google/go-tpm para ver exemplos da linguagem Go que ilustram como usar um vTPM para este fim.
Antes de começar
Para usar os comandos da gdcloud
interface de linhas de comando (CLI), certifique-se de que transferiu, instalou e configurou a CLI gdcloud
.
Todos os comandos para o dispositivo isolado do GDC usam a CLI gdcloud
ou kubectl
e requerem um ambiente de sistema operativo (SO).
Obtenha o caminho do ficheiro kubeconfig
Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:
Localize o nome do servidor da API Management ou pergunte ao administrador da plataforma (PA) qual é o nome do servidor.
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
Use o caminho para substituir
MANAGEMENT_API_SERVER{"</var>"}}
nestas instruções.
Peça autorizações e acesso
Para realizar as tarefas indicadas nesta página, tem de ter a função de administrador da máquina virtual do projeto. Siga os passos para
validar
que tem a função de administrador de máquinas virtuais do projeto (project-vm-admin
) no espaço de nomes
do projeto onde a VM reside.
Ative o arranque seguro
Ative o arranque seguro para uma VM. Use as seguintes instruções para uma VM denominada
VM_NAME
no espaço de nomes do projeto
(PROJECT_NAMESPACE
).
Atualize o recurso personalizado da VM para ativar o arranque seguro:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: bootType: uefi enableSecureBoot: true '
Se a VM estiver em execução, reinicie-a através das instruções para reiniciar uma VM.
Verifique se ativou o arranque seguro. Estabeleça uma ligação SSH à sua VM e execute o seguinte comando:
mokutil --sb-state
Se ativou com êxito o arranque seguro, o comando devolve
SecureBoot enabled
.Se a ferramenta
mokutil
comunicar que não ativou o arranque seguro, siga os passos na secção Resolva problemas de configuração do arranque seguro.
Resolva problemas de configuração do arranque seguro
Abra o recurso personalizado da VM num editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE
Procure campos ou valores em falta, conforme mostrado no campo
spec
em "Execute o seguinte comando". Estes campos são obrigatórios.Se algum estiver em falta ou estiver incorreto, edite
spec
para adicionar os campos em falta e corrigir os valores erróneos.Guarde o ficheiro.
Siga os passos em Reinicie a VM.
Se os passos anteriores não resolverem o problema, consulte a documentação correspondente ao sistema operativo (SO) da VM para verificar se a versão do SO suporta o arranque seguro.
Ative o Trusted Platform Module virtual (vTPM)
Ative o vTPM para uma VM. Use as seguintes instruções para uma VM denominada
VM_NAME
no espaço de nomes do projeto (PROJECT_NAMESPACE
).
Atualize o recurso personalizado da VM para ativar o vTPM:
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE --type merge --patch $' spec: shieldConfig: enableVtpm: true '
Se a VM estiver em execução, reinicie-a seguindo as instruções para reiniciar uma VM.
Verifique se ativou o vTPM. Estabeleça uma ligação SSH à sua VM e execute o seguinte comando:
dmesg | grep -i tpm
Se ativou o vTPM com êxito, o comando devolve o módulo TPM como parte das tabelas ACPI. O resultado tem um aspeto semelhante ao seguinte:
[ 7.620985] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1, rev-id 1)
Se as
ACPI tables
não apresentarem o módulo TPM, siga os passos na secção Resolva problemas de configuração do vTPM.
Resolva problemas de configuração do vTPM
Abra o recurso personalizado da VM num editor:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT_NAMESPACE
Procure campos ou valores em falta, conforme mostrado no campo
spec
em Execute o seguinte comando. Estes campos são obrigatórios.Se algum estiver em falta ou estiver incorreto, edite
spec
para adicionar os campos em falta e corrigir os valores erróneos.Guarde o ficheiro.
Siga os passos em Reinicie a VM.
Se os passos anteriores não resolverem o problema, consulte a documentação correspondente ao sistema operativo (SO) da VM para verificar se a versão do SO suporta o vTPM.