Nesta página, mostramos como aplicar a criptografia de dados em uso nos seus nós e cargas de trabalho usando nós confidenciais do Google Kubernetes Engine.
Visão geral
Os Confidential GKE Nodes foram criados com base na VM confidencial do Compute Engine usando a virtualização de criptografia segura (SEV, na sigla em inglês) da AMD, que criptografa o conteúdo da memória das VMs em uso. A criptografia em uso é um dos três estados da criptografia de ponta a ponta.
Ao ativar os nós confidenciais do GKE em um cluster ou em um pool de nós, os dados nas cargas de trabalho em execução nos nós confidenciais são criptografados em uso. Para ter visibilidade sobre seu plano de controle, use a transparência no acesso.
É possível ativar os nós confidenciais do GKE ao realizar uma das seguintes ações:
- Criar um novo cluster
- Criar um novo pool de nós
- Atualizar um pool de nós
Não é possível atualizar um cluster atual para alterar a configuração dos nós confidenciais do GKE.
A tabela a seguir mostra o comportamento do GKE que se aplica quando você ativa os nós confidenciais do GKE no nível do cluster ou do pool:
Configuração confidencial dos nós do GKE | Como configurar | Comportamento |
---|---|---|
Nível do cluster | Criar um novo cluster | Todos os nós no cluster em qualquer pool de nós usam o GKE confidencial. Não é possível fazer o seguinte:
|
Nível do pool de nós |
|
Só é possível configurar os nós confidenciais do GKE para pools de nós quando esse recurso é desativado no nível do cluster. |
Preços
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 Google Cloud Observability.
Disponibilidade
Os nós confidenciais do GKE estão disponíveis nas seguintes situações:
Os nós confidenciais do GKE estão disponíveis apenas em zonas e regiões com instâncias N2D ou instâncias C2D disponíveis.
Os nós confidenciais do GKE podem ser usados com o Container-Optimized OS e o Container-Optimized OS com containerd (
cos_containerd
).
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
Ativar os Confidential GKE Nodes nos clusters
É possível criar um novo cluster com o Confidential GKE Node ativado usando a CLI gcloud ou o Console do Google Cloud. Se você ativar os Confidential GKE Nodes no nível do cluster, todos os nós no cluster serão VMs confidenciais.
gcloud
Ao criar um novo cluster, especifique a opção --enable-confidential-nodes
na CLI gcloud:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Substitua:
- CLUSTER_NAME: o nome do novo cluster.
- MACHINE_TYPE: o tipo de máquina do pool de nós padrão do cluster, que precisa ser o tipo de máquina N2D ou o tipo de máquina C2D.
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique em add_box Criar.
Na seção Padrão, clique em Configurar.
No painel de navegação, em Cluster, clique em Segurança.
Marque a caixa de seleção Ativar o Confidential GKE Node.
Configure o cluster conforme necessário.
Clique em Criar.
Consulte este link para mais detalhes sobre a criação de clusters regionais.
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. Não é possível criar pools de nós regulares em clusters com nós confidenciais do GKE ativados. Também não é possível desativar os nós confidenciais do GKE em pools de nós individuais ao ativá-los no nível do cluster.
Ativar os Confidential GKE Nodes em pools de nós
É possível ativar os nós confidenciais do GKE em pools de nós específicos se eles estiverem desativados no nível do cluster.
Criar um novo pool de nós
Para criar um novo pool de nós com os nós confidenciais do GKE ativados, execute o seguinte comando:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Substitua:
- NODE_POOL_NAME: o nome do novo pool de nós.
- CLUSTER_NAME: o nome do cluster.
- MACHINE_TYPE: o tipo de máquina do pool de nós, que precisa ser um tipo de máquina N2D ou o tipo de máquina C2D.
Atualizar um pool de nós
É possível ativar os Confidential GKE Nodes em pools de nós atuais que usam o tipo de máquina N2D ou o tipo de máquina C2D. Execute este comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-confidential-nodes
Substitua:
- NODE_POOL_NAME: o nome do pool de nós.
- CLUSTER_NAME: o nome do cluster.
Verificar se os nós confidenciais do GKE estão ativados
Em clusters
É possível verificar se o cluster está usando Confidential GKE Nodes com a CLI gcloud ou o console do Google Cloud.
gcloud
Descreva o cluster:
gcloud container clusters describe CLUSTER_NAME
Se os nós confidenciais do GKE estiverem ativados, a saída do comando incluirá as seguintes linhas:
confidentialNodes:
enabled: true
Console
Acesse a página Google Kubernetes Engine no console do Google Cloud.
Clique no nome do cluster que você quer inspecionar.
Em Segurança, no campo Confidential GKE Nodes, verifique se os nós Confidential GKE Nodes estão Ativados.
Em pools de nós
Para verificar se o pool de nós está usando nós confidenciais do GKE, execute o seguinte comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Se os nós confidenciais do GKE estiverem ativados, a saída será semelhante a esta:
confidentialNodes:
enabled: true
Em nós
Para validar a confidencialidade de nós específicos, é possível:
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"
Definir restrições da política da organização
Defina uma restrição de política da organização para garantir que todos os recursos da VM
criados na sua organização sejam instâncias de VM confidenciais.
No GKE, é possível personalizar a restrição Restringir a computação
não confidencial para exigir que todos os novos clusters sejam criados com
os nós confidenciais do GKE ativados. Adicione o nome do serviço da API container.googleapis.com
à lista de proibições ao aplicar restrições da política da organização. Por exemplo:
gcloud resource-manager org-policies deny \
constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
--project=PROJECT_ID
Substitua PROJECT_ID pela ID do seu projeto.
Limitações
Os nós confidenciais do GKE têm as seguintes limitações:
- Todas as limitações das instâncias de VMs confidenciais do Compute Engine se aplicam a nós confidenciais do GKE.
- Os nós confidenciais do GKE que têm o tipo de máquina C2D só podem usar o provisionamento automático de nós no GKE versão 1.24 ou posterior.
- Os nós confidenciais do GKE só são compatíveis com PersistentVolumes apoiados por discos permanentes se o plano de controle executar o GKE versão 1.22 ou posterior. Para mais instruções, consulte Como usar o driver CSI do disco permanente do Compute Engine .
- 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.
- Os nós confidenciais do GKE só são compatíveis com o uso de armazenamento temporário em SSDs locais, mas não são compatíveis com o uso de SSDs locais em geral.
- Somente os nós do Container-Optimized OS são compatíveis. Nós do Ubuntu e Windows não são compatíveis.
- Os clusters do Autopilot não são compatíveis com os Confidential GKE Nodes.
Limitações da migração em tempo real
Certos tipos de máquina de VM confidencial do Compute Engine oferecem suporte à migração em tempo real, o que minimiza a possível interrupção da carga de trabalho devido a um evento de manutenção do host. A migração em tempo real ocorre nas seguintes versões do GKE:
- 1.27.10-gke.1218000 e mais recente
- 1.28.6-gke.1393000 e mais recente
- 1.29.1-gke.1621000 e mais recente
Se seus pools de nós já estavam executando uma versão compatível quando a migração em tempo real foi adicionada, atualize manualmente os pools de nós para a mesma versão compatível ou para uma versão diferente. A atualização dos nós aciona a recriação dos nós, e os novos nós têm a migração em tempo real ativada.
Para mais detalhes sobre quais tipos de máquina do Compute Engine são compatíveis com a migração em tempo real, consulte Configurações compatíveis.
Se um evento de manutenção do host
ocorrer em um nó que não oferece suporte à migração em tempo real, o nó entrará em um
estado NotReady
. Os pods em execução vão ter interrupções até que o nó fique pronto novamente. Se a manutenção levar mais de cinco minutos, o GKE poderá tentar recriar os pods em outros nós.
Desativar os Confidential GKE Nodes
A desativação de nós confidenciais do GKE só funciona para pools de nós que ativaram os nós confidenciais do GKE. Se o cluster for criado com nós confidenciais do GKE, não será possível desativar o recurso. Execute o seguinte comando para desativar os nós confidenciais do GKE em um pool de nós:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-confidential-nodes
A seguir
- Saiba mais sobre VMs confidenciais.
- Saiba mais sobre imagens de nós.
- Saiba mais sobre a criptografia em repouso no Google Cloud.
- Saiba mais sobre a criptografia em trânsito no Google Cloud.
- Saiba mais sobre as chaves de criptografia gerenciadas pelo cliente (CMEK).
- Saiba mais sobre criptografia de secrets da camada de aplicativos.