Este documento descreve como alternar uma chave raiz. Se a sua chave raiz ficar
comprometida ou se optar por alternar periodicamente as chaves raiz para melhorar a
segurança, pode alternar as chaves para uma nova chave raiz através do
RotationJob
recurso.
A alternância de uma chave raiz cria uma nova chave raiz, que se torna a chave principal e envolve todas as chaves não raiz. Não pode eliminar uma chave raiz. A alternância é a única forma de a substituir. Consulte o artigo Tipos de chaves raiz para mais informações sobre as chaves raiz.
Consulte a vista geral da API KMS para ver detalhes sobre a API KMS e a API KRM do Key Management Service para ver a definição completa da API.
Antes de começar
Antes de alternar uma chave raiz, tem de ter as autorizações necessárias e preparar o seu ambiente.
Peça funções de IAM
Para alternar chaves, contacte o administrador de IAM da organização para pedir a função Administrador de trabalhos de alternância do KMS (kms-rotationjob-admin).
Prepare o seu ambiente
Transfira e instale a CLI gdcloud, se ainda não o tiver feito.
Gere um ficheiro kubeconfig para configurar o acesso
kubectl.
Alterne uma chave raiz
Para alternar uma chave raiz, primeiro tem de identificar o nome do recurso da chave raiz em utilização. Pode encontrar estas informações examinando qualquer recurso AEADKey no seu projeto, uma vez que todas estas chaves estão protegidas pela mesma chave raiz.
Crie uma nova chave raiz e alterne as chaves:
Liste os recursos
AEADKeyno seu projeto:kubectl get AEADKey -n PROJECTSubstitua
PROJECTpelo nome do espaço de nomes do projeto.Na saída, tome nota do nome de qualquer
AEADKey.Obtenha o
ROOT_KEY_RESOURCE_NAMEa partir daAEADKey. O comando seguinte extrai e reformata o identificador da chave raiz necessário para o recursoRotationJob:kubectl describe aeadkey KEY_NAME -n PROJECT | grep "Root Key ID:" | awk '{print $4}' | awk -F/ '{print "namespaces/" $1 "/secrets/" $2}'Substitua o seguinte:
KEY_NAME: o nome de qualquerAEADKeyno seu projetoPROJECT: o nome do espaço de nomes do projeto
A saída pode ter um aspeto semelhante ao seguinte:
namespaces/kms-system/secrets/kms-key-local-rootCrie um ficheiro YAML e adicione o recurso
RotationJobe o seguinte conteúdo:apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAMESubstitua o seguinte:
ROTATION_NAME: um nome para o trabalho de alternância por exemplo:rotate-job1.ROOT_KEY_RESOURCE_NAME: a saída que obteve no passo anterior
Aplique o conteúdo do ficheiro YAML ao KMS:
kubectl apply -f FILENAME.yamlSubstitua FILENAME pelo nome do ficheiro YAML.
Depois de executar o comando, o KMS cria uma nova chave raiz e alterna todas as chaves com a nova chave raiz.
Para validar se a alternância da chave raiz está concluída, execute o seguinte:
kubectl get rotationjobs ROTATION_NAMESubstitua ROTATION_NAME pelo nome do trabalho de alternância.
Depois de executar o comando, vê o estado do trabalho de alternância como
Completedse for bem-sucedido.