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. A aplicação da criptografia pode ajudar a aumentar a segurança das suas cargas de trabalho.
Esta página é destinada a especialistas em segurança que implementam medidas de segurança no GKE. Para saber mais sobre papéis comuns e exemplos de tarefas que mencionamos no conteúdo do Google Cloud , consulte Tarefas e funções de usuário comuns do GKE.
Antes de ler esta página, confira se você conhece o conceito de dados em uso.
O que são os Confidential GKE Nodes?
É possível criptografar suas cargas de trabalho com os nós confidenciais do GKE ou o modo confidencial para o Hyperdisk Balanced.
Confidential GKE Nodes
Os nós confidenciais do GKE usam a VM confidencial do Compute Engine para proteger dados em uso com criptografia de memória baseada em hardware. Os nós confidenciais do GKE são compatíveis com as seguintes tecnologias de computação confidencial:
- AMD Secure Encrypted Virtualization (SEV)
- AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP)
- Extensões de domínio de confiança (TDX) da Intel
Para mais informações sobre essas tecnologias e ajuda para escolher a melhor opção para seus requisitos, consulte a Visão geral de VMs confidenciais.
Os nós confidenciais do GKE não mudam as medidas de segurança que o GKE aplica aos planos de controle do cluster. Para saber mais sobre essas medidas, consulte Segurança do plano de controle. Para ter visibilidade sobre quem acessa os planos de controle nos seus projetos do Google Cloud, use a transparência no acesso.
É possível ativar os nós confidenciais do GKE para clusters inteiros, pools de nós específicos ou cargas de trabalho específicas. A tabela a seguir descreve esses métodos de ativação:
Configuração confidencial dos nós do GKE | Descrição | Comportamento |
---|---|---|
Nível de carga de trabalho | Configure nós confidenciais do GKE em uma ComputeClass e selecione essa ComputeClass em uma carga de trabalho. O GKE cria nós que usam essa configuração para executar seus pods. | A configuração de carga de trabalho é compatível com qualquer uma das seguintes tecnologias de computação confidencial, independente do modo de cluster ou do tipo de pool de nós:
|
Nível do cluster | Essa configuração é irreversível.
Ative os nós confidenciais do GKE ao criar um cluster do Autopilot ou Standard. Todos os nós do cluster usam nós confidenciais do GKE. Não é possível substituir a configuração do cluster para pools de nós ou cargas de trabalho individuais. |
As tecnologias compatíveis no nível do cluster dependem do modo de operação do cluster, da seguinte maneira:
|
Nível do pool de nós | Ative os Confidential GKE Nodes ao criar um pool de nós em um cluster padrão. Só é possível usar esse método se os nós confidenciais do GKE estiverem desativados no nível do cluster. | As tecnologias compatíveis no nível do pool de nós dependem se o pool de nós usa o provisionamento automático de nós, da seguinte maneira:
|
Modo confidencial para Hyperdisk Balanced
Você também pode ativar o modo confidencial para Hyperdisk Balanced no armazenamento do disco de inicialização, que criptografa seus dados em enclaves adicionais com suporte de hardware.
É possível ativar o modo confidencial para o Hyperdisk Balanced ao fazer uma das seguintes ações:
- Criar um novo cluster
- Criar um novo pool de nós
Não é possível atualizar um cluster ou um pool de nós para mudar a configuração do modo confidencial para o Hyperdisk Balanced.
A tabela a seguir mostra o comportamento do GKE que se aplica quando você ativa o modo confidencial para a configuração balanceada do Hyperdisk no nível do cluster ou do pool de nós:
Configuração do modo confidencial para Hyperdisk Balanced | Como configurar | Comportamento |
---|---|---|
Nível do cluster | Criar um novo cluster | Apenas o pool de nós padrão no cluster vai usar o modo confidencial para a configuração do Hyperdisk Balanced. Não é possível fazer o seguinte:
|
Nível do pool de nós | Criar um novo pool de nós | É possível configurar o modo confidencial para a configuração do Hyperdisk Balanced em qualquer novo pool de nós no momento da criação. Não é possível atualizar os pools de nós atuais para usar a configuração do modo confidencial para o Hyperdisk Balanced. |
Preços
Os preços a seguir se aplicam, dependendo de como você configura os Confidential GKE Nodes:
Preços dos Confidential GKE Nodes | |
---|---|
No nível da carga de trabalho | Nas cargas de trabalho do Autopilot, os dois custos a seguir são aplicáveis:
Em cargas de trabalho Standard, os dois custos a seguir são aplicados:
|
Nível do cluster | Nos clusters do Autopilot, os dois custos a seguir se aplicam:
Nos clusters padrão, os dois custos a seguir se aplicam:
|
Nível do pool de nós | Nos pools de nós padrão, os seguintes custos são aplicados:
|
Além disso, eles podem gerar um pouco mais de dados de registro na inicialização do que os nós que não são confidenciais do GKE. Para mais informações sobre preços de registros, consulte Preços do Google Cloud Observability.
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 CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando o comando
gcloud components update
. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Requisitos
Os nós confidenciais do GKE têm os seguintes requisitos:
- Os clusters do Autopilot precisam executar a versão 1.30.2 ou mais recente do GKE.
Os clusters Standard precisam executar uma das seguintes versões do GKE, dependendo da tecnologia de computação confidencial escolhida:
- AMD SEV: qualquer versão do GKE.
- AMD SEV-SNP: 1.32.2-gke.1297000 ou mais recente.
- Intel TDX: 1.32.2-gke.1297000 ou mais recente.
Para ativar os nós confidenciais do GKE no nível da carga de trabalho, os clusters do Autopilot e Standard precisam executar a versão 1.33.3-gke.1392000 ou mais recente do GKE.
Os nós precisam usar um tipo de máquina compatível com a tecnologia de Computação Confidencial escolhida. Para mais informações, consulte Tipos de máquinas, CPUs e zonas.
Os planos de controle e nós do cluster precisam estar em um local que ofereça suporte à tecnologia de computação confidencial escolhida. Para mais informações, consulte Ver zonas compatíveis.
Configurar os Confidential GKE Nodes no nível da carga de trabalho
Para ativar os nós confidenciais do GKE em cargas de trabalho individuais, use uma ComputeClass. As ComputeClasses são recursos personalizados do Kubernetes que permitem definir os atributos de novos nós criados pelo GKE e controlar o comportamento de fallback se o hardware não estiver disponível. As ComputeClasses são compatíveis com todas as tecnologias de computação confidencial disponíveis para o GKE, mesmo que uma tecnologia específica não seja compatível no nível do cluster ou do pool de nós.
Para configurar os nós confidenciais do GKE no nível da carga de trabalho, siga estas etapas:
Opcional: para clusters padrão do GKE, ative o provisionamento automático de nós para o cluster. Para clusters do Autopilot, pule esta etapa.
Se você optar por usar ComputeClasses com apenas pools de nós criados manualmente, também será necessário configurar manualmente taints e rótulos de nós nesses pools. Essa configuração manual adicional pode fazer com que você perceba menos benefícios ao usar uma ComputeClass para criar nós confidenciais do GKE.
Salve o seguinte manifesto ComputeClass como um arquivo YAML. Para mais informações sobre os campos e valores compatíveis com ComputeClasses, consulte a CustomResourceDefinition do ComputeClass.
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: nodePoolConfig: confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY nodePoolAutoCreation: enabled: true activeMigration: optimizeRulePriority: true priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - machineFamily: MACHINE_SERIES - machineType: MACHINE_TYPE whenUnsatisfiable: DoNotScaleUp
Substitua:
COMPUTE_CLASS
: um nome para a nova classe de computação.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: a tecnologia de computação confidencial a ser usada. Os valores a seguir são compatíveis:SEV
para AMD SEVSEV_SNP
para AMD SEV-SNPTDX
para Intel TDX
ZONE1,ZONE2,...
: as zonas em que os nós serão criados, como['us-central1-a','us-central1-b']
. Especifique zonas que ofereçam suporte à tecnologia de Computação confidencial especificada. Para mais informações, consulte Ver zonas compatíveis.MACHINE_SERIES
: a série de máquinas para os nós, comon2d
. Especifique uma série de máquinas compatível com a tecnologia de Computação confidencial especificada. Para mais informações, consulte Tipos de máquinas, CPUs e zonas.MACHINE_TYPE
o tipo de máquina dos nós, comon2d-standard-4
. Especifique um tipo de máquina compatível com a tecnologia de Computação confidencial especificada. Para mais informações, consulte Tipos de máquinas, CPUs e zonas.
Esse manifesto inclui o campo
spec.nodePoolAutoCreation
com o valorenabled: true
, que permite ao GKE criar novos pools de nós usando o provisionamento automático de nós.Crie a ComputeClass no cluster:
kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFEST
Substitua
PATH_TO_COMPUTE_CLASS_MANIFEST
pelo caminho do arquivo de manifesto ComputeClass.Salve o seguinte manifesto de implantação como um arquivo YAML:
Crie a implantação:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Substitua
PATH_TO_DEPLOYMENT_MANIFEST
pelo caminho para o arquivo de manifesto da implantação.
Os novos nós que o GKE cria para essa carga de trabalho usam a tecnologia de computação confidencial especificada. Esses nós são executados em uma das zonas selecionadas, em um tipo de máquina definido na ComputeClass. O GKE adiciona taints e rótulos de nós para que apenas pods que selecionam a mesma ComputeClass possam ser executados nos nós.
Configurar os Confidential GKE Nodes no nível do cluster
É possível ativar os nós confidenciais do GKE para um cluster inteiro do Autopilot ou Standard, o que significa que todos os nós nos clusters usam nós confidenciais do GKE. Como resultado, todas as cargas de trabalho implantadas nesse cluster são executadas em nós confidenciais do GKE. Não é possível substituir a configuração do cluster em cargas de trabalho ou pools de nós individuais.
Criar um cluster do Autopilot
Os clusters do Autopilot só oferecem suporte ao AMD SEV no nível do cluster. Quando você ativa os Confidential GKE Nodes, a série de máquinas padrão no cluster do Autopilot muda para N2D. Todas as suas cargas de trabalho são executadas nesses nós confidenciais sem precisar mudar os manifestos de carga de trabalho.
Execute este comando:
gcloud container clusters create-auto CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-confidential-nodes
Substitua:
CLUSTER_NAME
: o nome do cluster do Autopilot.CONTROL_PLANE_LOCATION
: a região do Compute Engine do plano de controle do cluster, comous-central1
.
O cluster precisa executar a versão 1.30.2 ou mais recente. Para mais informações, consulte Criar um cluster do Autopilot com um canal de lançamento e uma versão específicos.
Criar um cluster padrão
É possível especificar uma tecnologia de Computação confidencial para seus nós ao criar um cluster padrão. Especificar a tecnologia ao criar um cluster tem os seguintes efeitos:
- Só é possível criar pools de nós ou cargas de trabalho que usam nós confidenciais do GKE nesse cluster.
- Não é possível atualizar o cluster para desativar os nós confidenciais do GKE.
- Não é possível substituir a tecnologia de computação confidencial no nível do cluster em pools de nós ou cargas de trabalho individuais.
A configuração da computação confidencial no nível do cluster é permanente. Por isso, considere os seguintes casos de uso antes de criar o cluster:
- Para usar o provisionamento automático de nós no cluster, configure opções específicas no comando de criação do cluster. Para mais informações, consulte a seção Usar o Confidential GKE Nodes com o provisionamento automático de nós.
- Para usar diferentes tecnologias de computação confidencial e criptografar pools de nós específicos no cluster, pule esta seção e configure os nós confidenciais do GKE no nível do pool de nós.
Para criar um cluster do modo Standard que usa Confidential GKE Nodes, selecione uma das seguintes opções:
gcloud
Ao criar um novo cluster, especifique a opção --confidential-node-type
na CLI gcloud:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--machine-type=MACHINE_TYPE \
--node-locations=ZONE1,ZONE2,... \
--confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Substitua:
CLUSTER_NAME
: o nome do cluster.LOCATION
: o local do Compute Engine para o plano de controle do cluster. O local precisa ser compatível com a tecnologia de Computação confidencial especificada. Para mais informações, consulte a seção Disponibilidade.MACHINE_TYPE
: um tipo de máquina compatível com a tecnologia de computação confidencial especificada. Para mais informações, consulte a seção Disponibilidade.ZONE1,ZONE2,...
: uma lista separada por vírgulas de zonas na região do plano de controle que oferecem suporte à nova tecnologia de computação confidencial. Para mais informações, consulte Ver zonas compatíveis.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: a tecnologia de computação confidencial a ser usada. Os valores a seguir são compatíveis:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
Também é possível usar a flag --enable-confidential-nodes
no comando de criação do cluster. Se você especificar apenas essa flag no comando, o cluster
usará o AMD SEV. O tipo de máquina especificado no comando precisa ser compatível com o AMD SEV. No entanto, se você especificar a flag --confidential-node-type
no mesmo comando, o GKE usará o valor especificado na flag --confidential-node-type
.
Console
No console Google Cloud , acesse a página Criar um cluster do Kubernetes.
No menu de navegação, na seção Cluster, clique em Segurança.
Marque a caixa de seleção Ativar o Confidential GKE Node.
Na caixa de diálogo Alterações necessárias, clique em Fazer alterações.
No menu Tipo, selecione a tecnologia de Computação confidencial que você quer usar.
Se a tecnologia selecionada exigir uma série de máquinas específica do Compute Engine, uma caixa de diálogo vai aparecer. Clique em Fazer mudanças para atualizar a série de máquinas do pool de nós.
No menu de navegação, na seção Pools de nós, clique em default-pool.
No painel Detalhes do pool de nós, faça o seguinte:
- Marque a caixa de seleção Especificar locais dos nós. Uma lista de zonas na região do cluster aparece.
- Marque as caixas de seleção das zonas que oferecem suporte à tecnologia de computação confidencial selecionada para os nós. Para mais informações, consulte Ver zonas compatíveis.
Clique em Criar.
Para mais informações sobre como criar clusters, consulte Como criar um cluster regional.
Para qualquer pool de nós criado com a configuração do modo confidencial para Hyperdisk Balanced, apenas os nós no pool de nós são restritos à configuração. Para todos os novos pools de nós criados no cluster, é necessário configurar o modo confidencial na criação.
Configurar o provisionamento automático de nós
É possível configurar o provisionamento automático de nós para usar os Confidential GKE Nodes em pools de nós provisionados automaticamente. O provisionamento automático de nós é compatível com as seguintes tecnologias de computação confidencial:
- AMD SEV
- AMD SEV-SNP
Para usar nós confidenciais do GKE com o provisionamento automático de nós, especifique a flag --enable-confidential-nodes
da CLI gcloud ao criar um cluster. As seguintes considerações adicionais se aplicam:
- Ao criar o cluster, escolha uma tecnologia de computação confidencial compatível com o provisionamento automático de nós. Essa escolha é irreversível no nível do cluster.
- Ao ativar o provisionamento automático de nós em um cluster atual, ele precisa usar uma tecnologia de nós confidenciais do GKE compatível com o provisionamento automático de nós.
- Ao implantar cargas de trabalho, verifique se elas selecionam a tecnologia de Computação confidencial do cluster e uma série de máquinas compatível com essa tecnologia.
Configurar os nós confidenciais do GKE no nível do pool 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.
O modo confidencial para a configuração do Hyperdisk Balanced precisa ser especificado durante a solicitação de criação do pool de nós.
Criar um novo pool de nós
Para criar um pool de nós com os nós confidenciais do GKE ativados, selecione uma das seguintes opções:
gcloud
Execute este comando:
gcloud container node-pools create NODE_POOL_NAME \
--location=LOCATION \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--node-locations=ZONE1,ZONE2,... \
--confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Substitua:
NODE_POOL_NAME
: o nome do novo pool de nós.LOCATION
: o local do novo pool de nós. O local precisa ser compatível com a tecnologia de Computação confidencial especificada. Para mais detalhes, consulte a seção Disponibilidade.CLUSTER_NAME
: o nome do cluster.MACHINE_TYPE
: um tipo de máquina compatível com a tecnologia de computação confidencial especificada. Para mais detalhes, consulte a seção Disponibilidade.ZONE1,ZONE2,...
: uma lista separada por vírgulas de zonas na região do cluster que oferecem suporte à nova tecnologia de computação confidencial. Para mais informações, consulte Ver zonas compatíveis.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: a tecnologia de computação confidencial a ser usada. Os valores a seguir são compatíveis:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
Também é possível usar a flag --enable-confidential-nodes
no comando de criação do cluster. Se você especificar apenas essa flag no comando, o cluster
usará o AMD SEV. O tipo de máquina especificado no comando precisa ser compatível com o AMD SEV. No entanto, se você especificar a flag --confidential-node-type
no mesmo comando, o GKE usará o valor especificado na flag --confidential-node-type
.
Console
No console Google Cloud , acesse a página Clusters do Kubernetes:
Clique no nome do cluster padrão.
Clique em
Adicionar pool de nós.No menu de navegação, clique em Segurança.
No painel Segurança do nó, faça o seguinte:
- Marque a caixa de seleção Ativar o Confidential GKE Node.
- Na caixa de diálogo Alterações necessárias, clique em Fazer alterações.
No menu Tipo, selecione a tecnologia de Computação confidencial que você quer usar.
Se a tecnologia selecionada exigir uma série de máquinas específica do Compute Engine, uma caixa de diálogo vai aparecer. Clique em Fazer mudanças para atualizar a série de máquinas do pool de nós.
No menu de navegação, clique em Detalhes do pool de nós.
No painel Detalhes do pool de nós, faça o seguinte:
- Marque a caixa de seleção Especificar locais dos nós. Uma lista de zonas na região do cluster aparece.
- Marque as caixas de seleção das zonas que oferecem suporte à tecnologia de computação confidencial selecionada para os nós. Para mais informações, consulte Ver zonas compatíveis.
Opcional: configure outras definições para o pool de nós.
Clique em Criar.
Atualizar um pool de nós
Essa mudança exige a recriação dos nós, o que pode causar interrupções nas cargas de trabalho em execução. Para mais detalhes sobre essa mudança específica, encontre a linha correspondente na tabela Alterações manuais que recriam os nós usando uma estratégia de upgrade de nós sem respeitar as políticas de manutenção. Para saber mais sobre atualizações de nós, consulte Planejar interrupções de atualização de nós.
É possível atualizar os pools de nós atuais para usar os Confidential GKE Nodes ou mudar a tecnologia de computação confidencial usada pelos nós. O pool de nós precisa atender a todos os requisitos a seguir:
- Os nós usam um tipo de máquina compatível com a tecnologia de Computação Confidencial escolhida.
- Os nós são executados em zonas que oferecem suporte à tecnologia de Computação confidencial escolhida.
Como a disponibilidade de tipo de máquina e local pode variar entre as tecnologias de computação confidencial, talvez seja necessário atualizar esses atributos para o pool de nós antes de ativar uma tecnologia específica.
Para atualizar um pool de nós atual e usar os nós confidenciais do GKE, selecione uma das seguintes opções:
gcloud
É possível usar a CLI gcloud para ativar os nós confidenciais do GKE em um pool de nós ou mudar a tecnologia de computação confidencial dos nós.
- Se o pool de nós já usar nós confidenciais do GKE, desative os nós confidenciais do GKE. Aguarde a conclusão da operação de atualização do pool de nós.
Mude o tipo de máquina e os locais dos nós para valores compatíveis com a nova tecnologia de Computação Confidencial:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --machine-type=MACHINE_TYPE \ --node-locations=ZONE1,ZONE2,...
Substitua:
NODE_POOL_NAME
: o nome do pool de nós atual.CLUSTER_NAME
: o nome do cluster.CLUSTER_LOCATION
: O local do cluster.MACHINE_TYPE
: um tipo de máquina compatível com a nova tecnologia de computação confidencial. Para mais informações, consulte a seção Disponibilidade.ZONE1,ZONE2,...
: uma lista separada por vírgulas de zonas na região do cluster que oferecem suporte à nova tecnologia de computação confidencial. Para mais informações, consulte Ver zonas compatíveis.
Atualize o pool de nós com a tecnologia de computação confidencial a ser usada:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Substitua
CONFIDENTIAL_COMPUTE_TECHNOLOGY
pela tecnologia de computação confidencial a ser usada. Os valores a seguir são compatíveis:sev
: AMD SEVsev_snp
: AMD SEV-SNPtdx
: Intel TDX
Console
É possível atualizar um pool de nós atual para usar os nós confidenciais do GKE somente se o tipo de máquina do pool de nós for compatível com a tecnologia de Computação Confidencial escolhida. Se os nós não usarem um tipo de máquina compatível, use as instruções da CLI gcloud nesta seção.
No console Google Cloud , acesse a página Clusters do Kubernetes:
Clique no nome do cluster padrão.
Clique na guia Nós.
Clique no nome do pool de nós que você quer modificar.
Na página Detalhes do pool de nós, clique em
Editar. O painel Editar pool de nós é aberto.Na seção Zonas, verifique se as zonas selecionadas são compatíveis com a tecnologia de Computação confidencial. Para mais informações, consulte Ver zonas compatíveis.
Se uma zona selecionada não for compatível com a tecnologia, faça o seguinte:
- Desmarque a caixa de seleção da zona sem suporte.
- Opcional: marque as caixas de seleção de outras zonas compatíveis.
- Clique em Salvar. Aguarde a conclusão da operação de atualização do pool de nós.
- Clique em Editar para reabrir o painel Editar pool de nós.
Na seção Segurança, marque a caixa de seleção Ativar o Confidential GKE Node.
No menu Tipo, selecione a tecnologia de Computação confidencial para os nós.
Clique em Salvar.
Colocar cargas de trabalho apenas em pools de nós confidenciais
Se você ativar os Confidential GKE Nodes no nível do cluster, todas as suas cargas de trabalho serão executadas em nós confidenciais. Não é necessário fazer mudanças nos seus manifestos. No entanto, se você ativar os nós confidenciais do GKE apenas para pools de nós específicos do modo Standard no nível do pool de nós, declare que suas cargas de trabalho precisam ser executadas apenas em pools de nós com nós confidenciais do GKE.
Para exigir que uma carga de trabalho seja executada em uma tecnologia específica de computação confidencial, use um seletor de nós com o rótulo
cloud.google.com/gke-confidential-nodes-instance-type
, como no exemplo a seguir:apiVersion: v1 kind: Pod spec: # For readability, lines are omitted from this example manifest nodeSelector: cloud.google.com/gke-confidential-nodes-instance-type: "CONFIDENTIAL_COMPUTE_SELECTOR"
Substitua
CONFIDENTIAL_COMPUTE_SELECTOR
pelo nome da tecnologia usada pelo pool de nós. Esse campo aceita os seguintes valores, que precisam ser especificados em maiúsculas:SEV
: AMD SEVSEV_SNP
: AMD SEV-SNPTDX
: Intel TDX
Para permitir que uma carga de trabalho seja executada em qualquer nó confidencial, independente da tecnologia de computação confidencial, use uma regra de afinidade de nó, como no exemplo a seguir:
apiVersion: v1 kind: Pod spec: containers: - name: confidential-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-confidential-nodes-instance-type operator: Exists
Para permitir que uma carga de trabalho seja executada em nós que usam apenas um subconjunto das tecnologias de computação confidencial disponíveis, use uma regra de afinidade de nó semelhante ao exemplo a seguir:
apiVersion: v1 kind: Pod spec: containers: - name: confidential-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-confidential-nodes-instance-type operator: In values: - SEV - SEV_SNP - TDX
No campo
values
, especifique apenas as tecnologias de Computação confidencial em que você quer executar a carga de trabalho.
Verificar se os nós confidenciais do GKE estão ativados
É possível verificar se os clusters ou nós usam Confidential GKE Nodes inspecionando os clusters, pools de nós, nós ou instâncias do Compute Engine.
Verificar para clusters
Selecione uma das seguintes opções:
gcloud
Descreva o cluster:
gcloud container clusters describe CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='yaml(confidentialNodes.confidentialInstanceType)'
Se os nós confidenciais do GKE estiverem ativados, a saída será semelhante a esta:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Console
No console Google Cloud , acesse a página Clusters do Kubernetes.
Clique no nome do cluster que você quer inspecionar.
Na seção Segurança, verifique se o campo Confidential GKE Nodes tem o valor Ativado.
Verificar pools de nós
Selecione uma das seguintes opções:
gcloud
Descreva o pool de nós:
gcloud container node-pools describe NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='yaml(confidentialNodes.confidentialInstanceType,enableConfidentialStorage)'
Se os nós confidenciais do GKE estiverem ativados, a saída será semelhante a esta:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Se o modo confidencial para Hyperdisk Balanced também estiver ativado, a saída será semelhante a esta:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true
Console
No console Google Cloud , acesse a página Clusters do Kubernetes.
Clique no nome do cluster que você quer inspecionar.
Clique no nome de um pool de nós.
Na seção Segurança, verifique se o campo Confidential GKE Nodes tem o valor Ativado.
Verificar um nó específico
Encontre o nome do nó:
kubectl get nodes
Descreva o nó:
kubectl describe NODE_NAME
Substitua
NODE_NAME
pelo nome de um nó a ser inspecionado.O resultado será assim:
Name: gke-cluster-1-default-pool-affsf335r-asdf Roles: <none> Labels: cloud.google.com/gke-boot-disk=pd-balanced cloud.google.com/gke-container-runtime=containerd cloud.google.com/gke-confidential-nodes-instance-type=CONFIDENTIAL_COMPUTE_SELECTOR cloud.google.com/gke-nodepool=default-pool cloud.google.com/gke-os-distribution=cos cloud.google.com/machine-family=e2 # lines omitted for clarity
Nessa saída, o rótulo do nó
cloud.google.com/gke-confidential-nodes-instance-type
indica que ele é confidencial.
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
uma das tecnologias de Computação confidencial disponíveis ativadas. 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, como no exemplo a seguir:
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.
Criar um PersistentVolume para o modo confidencial do Hyperdisk Balanced
Para orientações sobre os valores permitidos para capacidade ou IOPS, consulte Planejar o nível de desempenho do volume do Hyperdisk.
Os exemplos a seguir mostram como criar um modo confidencial para o Hyperdisk Balanced StorageClass para cada tipo de Hyperdisk:
Hiperdisco equilibrado
Salve o manifesto em um arquivo chamado
confidential-hdb-example-class.yaml
.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: balanced-storage provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: hyperdisk-balanced provisioned-throughput-on-create: "250Mi" provisioned-iops-on-create: "7000" enable-confidential-storage: true disk-encryption-kms-key: "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/HSM_KEY_NAME"
Substitua:
KMS_PROJECT_ID
: o projeto proprietário da chave do Cloud KMS.REGION
: a região onde o disco está localizado.KEY_RING
: o nome do keyring que inclui a chave.HSM_KEY_NAME
: o nome da chave do HSM usada para criptografar o disco
Crie o StorageClass
kubectl create -f hdb-example-class.yaml
Crie uma reivindicação de volume permanente do Hyperdisk para o GKE que use o modo confidencial para o volume do Hyperdisk Balanced.
Para encontrar o nome das StorageClasses disponíveis no cluster, execute o seguinte comando:
kubectl get sc
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 também se aplicam aos nós confidenciais do GKE.
- 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.
- Os nós confidenciais do GKE são compatíveis apenas com imagens de nó do Container-Optimized OS. Os nós do Ubuntu e do Windows não são aceitos.
- Os clusters do Autopilot só oferecem suporte ao AMD SEV no nível do cluster. Para usar uma tecnologia de Computação confidencial diferente, configure os Confidential GKE Nodes no nível da carga de trabalho.
- O provisionamento automático de nós é compatível apenas com AMD SEV e AMD SEV-SNP no nível do pool de nós. Para usar uma tecnologia de computação confidencial diferente, configure os Confidential GKE Nodes no nível da carga de trabalho.
O modo confidencial para Hyperdisk Balanced tem as seguintes limitações:
- Todas as limitações do uso de chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar discos se aplicam ao modo confidencial para o Hyperdisk Balanced.
- O modo confidencial para Hyperdisk equilibrado só é compatível com nós confidenciais do GKE que usam AMD SEV como tecnologia de computação confidencial.
Limitações da migração em tempo real
As VMs confidenciais do Compute Engine que usam o tipo de máquina N2D e a tecnologia de computação confidencial AMD SEV 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 os 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
Essa mudança exige a recriação dos nós, o que pode causar interrupções nas cargas de trabalho em execução. Para mais detalhes sobre essa mudança específica, encontre a linha correspondente na tabela Alterações manuais que recriam os nós usando uma estratégia de upgrade de nós sem respeitar as políticas de manutenção. Para saber mais sobre atualizações de nós, consulte Planejar interrupções de atualização de nós.
Só é possível desativar os nós confidenciais do GKE em pools de nós no modo Standard. Se o pool de nós estiver em um cluster que usa os nós confidenciais do GKE no nível do cluster, não será possível desativar o recurso no nível do pool de nós. Para desativar os nós confidenciais do GKE, selecione uma das seguintes opções:
gcloud
Execute este comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CLUSTER_LOCATION \
--no-enable-confidential-nodes
Console
No console Google Cloud , acesse a página Clusters do Kubernetes:
Clique no nome do cluster padrão.
Clique na guia Nós.
Clique no nome do pool de nós que você quer modificar.
Na página Detalhes do pool de nós, clique em
Editar. O painel Editar pool de nós é aberto.Na seção Segurança, desmarque a caixa de seleção Ativar Confidential GKE Nodes.
Clique em Salvar.
A seguir
- Saiba mais sobre VMs confidenciais
- Saiba mais sobre a criptografia em repouso Google Cloud
- Saiba mais sobre a criptografia Google Cloud em trânsito
- Saiba mais sobre as chaves de criptografia gerenciadas pelo cliente (CMEK)
- Saiba como atestar remotamente que as cargas de trabalho estão sendo executadas em uma VM confidencial
- Saiba como executar GPUs em Confidential GKE Nodes