Como usar nós confidenciais do GKE


Nesta página, mostramos como usar o recurso de nós confidenciais do Google Kubernetes Engine. Os nós confidenciais do GKE fornecem criptografia em uso para suas cargas de trabalho.

Visão geral

Os nós confidenciais do GKE são criados com base na VM confidencial do Compute Engine, que criptografa o conteúdo da memória das VMs em uso. Os clusters com nós confidenciais do GKE ativados impõem o uso de VMs confidenciais a todos os nós. Isso significa que os nós, incluindo as cargas de trabalho em execução, são criptografados em uso. Para ter visibilidade sobre seu plano de controle, use a transparência no acesso.

Não há custo extra para implantar nós confidenciais do GKE, além do custo das VMs confidenciais do Compute Engine. No entanto, eles podem gerar um pouco mais de dados de registro na inicialização do que os nós padrão. Para informações sobre preços de registros, consulte Preços do pacote de operações do Google Cloud.

Disponibilidade

Os nós confidenciais do GKE estão disponíveis nas seguintes situações:

Antes de começar

Antes de começar, veja se você realizou as seguintes tarefas:

Defina as configurações padrão da gcloud usando um dos métodos a seguir:

  • Use gcloud init se quiser orientações para definir os padrões.
  • Use gcloud config para definir individualmente a região, a zona e o ID do projeto.

Como usar o gcloud init

Se você receber o erro One of [--zone, --region] must be supplied: Please specify location, conclua esta seção.

  1. Execute gcloud init e siga as instruções:

    gcloud init

    Se você estiver usando SSH em um servidor remoto, utilize a sinalização --console-only para impedir que o comando inicie um navegador:

    gcloud init --console-only
  2. Siga as instruções para autorizar a gcloud a usar sua conta do Google Cloud.
  3. Crie uma nova configuração ou selecione uma atual.
  4. Escolha um projeto do Google Cloud.
  5. Escolha uma zona padrão do Compute Engine para clusters zonais ou uma região para clusters regionais ou de Autopilot.

Como usar o gcloud config

  • Defina o ID do projeto padrão:
    gcloud config set project PROJECT_ID
  • Se você estiver trabalhando com clusters zonais, defina a zona do Compute padrão:
    gcloud config set compute/zone COMPUTE_ZONE
  • Se você estiver trabalhando com clusters de Autopilot ou regionais, defina a região do Compute padrão:
    gcloud config set compute/region COMPUTE_REGION
  • Atualize gcloud para a versão mais recente:
    gcloud components update

Como ativar nós confidenciais do GKE em um novo cluster

É possível criar um novo cluster com o Confidential GKE Node ativado usando a ferramenta gcloud ou o Console do Google Cloud.

gcloud

Ao criar um novo cluster, especifique a opção --enable-confidential-nodes na ferramenta de linha de comando gcloud:

gcloud beta container clusters create CLUSTER_NAME \
  --release-channel=RELEASE_CHANNEL \
  --machine-type N2D_MACHINE_TYPE \
  --enable-confidential-nodes

Substitua:

  • CLUSTER_NAME: o nome do novo cluster;

  • RELEASE_CHANNEL: o canal de lançamento precisa ser regular ou rapid.

  • N2D_MACHINE_TYPE: o tipo de máquina do pool de nós padrão do cluster, que precisa ser um tipo de máquina N2d.

Console

  1. Acesse a página do Google Kubernetes Engine no Console do Cloud:

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Na seção Padrão, clique em Configurar.

  4. No painel de navegação, em Cluster, clique em Segurança.

  5. Marque a caixa de seleção Ativar o Confidential GKE Node.

  6. Configure o cluster como quiser.

  7. Clique em Criar.

Consulte este link para mais detalhes sobre a criação de clusters.

Depois de criar um cluster com nós confidenciais do GKE, todos os pools de nós criados nele só poderão ser nós confidenciais.

Como verificar se os nós confidenciais do GKE estão ativados

É possível verificar se o cluster está usando Confidential GKE Nodes com a ferramenta de linha de comando gcloud ou o Console do Google Cloud.

gcloud

Descreva o cluster:

gcloud beta container clusters describe CLUSTER_NAME

Se os Confidential GKE Nodes estiverem ativados, a saída do comando incluirá estas linhas:

confidentialNodes:
  enabled: true

Console

  1. Acesse a página do Google Kubernetes Engine no Console do Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique no nome do cluster que você quer inspecionar.

  3. Em Segurança, no campo Confidential GKE Nodes, verifique se os nós Confidential GKE Nodes estão Ativados.

Para validar a confidencialidade dos nós, veja os eventos de atestado de inicialização para nós individuais nos registros do Compute Engine. Para mais informações, consulte Como validar a VM confidencial usando o Cloud Monitoring.

Como executar aplicativos em nós confidenciais do GKE

A abordagem do Google para a computação confidencial é possibilitar uma migração lift-and-shift fácil para os aplicativos existentes. As cargas de trabalho do GKE executadas hoje podem ser executadas em nós confidenciais do GKE sem alterações de código.

Opcionalmente, se você quiser expressar de maneira declarada que suas cargas de trabalho precisam ser executadas somente em clusters com nós confidenciais do GKE, use o seletor de nós cloud.google.com/gke-confidential-nodes. Veja um exemplo de especificação de pod que usa esse seletor:

apiVersion: v1
kind: Pod
spec:
  containers:
  - name: my-confidential-app
    image: us-docker.pkg.dev/myproject/myrepo/my-confidential-app
    nodeSelector: cloud.google.com/gke-confidential-nodes:true

Limitações

Considere as seguintes limitações antes de ativar os nós confidenciais do GKE em um novo cluster:

  • Não é possível ativar os nós confidenciais do GKE em clusters existentes.
  • Não é possível desativar os nós confidenciais do GKE depois que eles são ativados em um cluster.
  • Os nós confidenciais do GKE não são compatíveis com GPUs.
  • Os nós confidenciais do GKE não são compatíveis com nós de locatário individual.
  • No momento, não é possível adicionar SSDs locais ou discos permanentes quando os nós confidenciais do GKE estão ativados.
  • Somente os nós do Container-Optimized OS são compatíveis. Nós do Ubuntu e Windows não são compatíveis.
  • As VMs confidenciais para nós do plano de controle (mestre) não são compatíveis.

A seguir