Neste documento, descrevemos como alternar uma chave raiz. Se a chave raiz for
comprometida ou se você optar por alternar periodicamente as chaves raiz para aumentar
a segurança, use o recurso
RotationJob
para alternar as chaves para uma nova chave raiz.
A rotação de uma chave raiz cria uma nova chave raiz, que se torna a chave primária e envolve todas as chaves não raiz. Não é possível excluir uma chave raiz. A rotação é a única maneira de substituí-la. Consulte Tipos de chaves raiz para mais informações sobre chaves raiz.
Consulte a visão geral da API KMS para mais detalhes sobre a API KMS e a API KRM do serviço de gerenciamento de chaves para conferir a definição completa da API.
Antes de começar
Antes de alternar uma chave raiz, você precisa ter as permissões necessárias e preparar seu ambiente.
Solicitar papéis do IAM
Para alternar as chaves, entre em contato com o admin. da organização do IAM para solicitar o papel de
administrador de jobs de rotação do KMS (kms-rotationjob-admin).
Preparar o ambiente
Faça o download e instale a CLI gdcloud, caso ainda não tenha feito isso.
Gere um arquivo kubeconfig para configurar o acesso ao
kubectl.
Fazer rotação de uma chave raiz
Para alternar uma chave raiz, primeiro é preciso identificar o nome do recurso da chave raiz em uso. Para encontrar essas informações, examine qualquer recurso AEADKey
no projeto, já que todas essas chaves são protegidas pela mesma chave raiz.
Crie uma nova chave raiz e faça a rotação das chaves:
Liste os recursos
AEADKeyno projeto:kubectl get AEADKey -n PROJECTSubstitua
PROJECTpelo nome do namespace do projeto.Na saída, anote o nome de qualquer
AEADKey.Acesse o
ROOT_KEY_RESOURCE_NAMEdoAEADKey. O comando a seguir extrai e reformata o identificador de 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:
KEY_NAME: o nome de qualquerAEADKeyno projeto.PROJECT: o nome do namespace do projeto.
A saída pode ser semelhante a esta:
namespaces/kms-system/secrets/kms-key-local-rootCrie um arquivo 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:
ROTATION_NAME: um nome para o job de rotação. Por exemplo:rotate-job1.ROOT_KEY_RESOURCE_NAME: a saída que você recebeu na etapa anterior.
Aplique o conteúdo do arquivo YAML ao KMS:
kubectl apply -f FILENAME.yamlSubstitua FILENAME pelo nome do arquivo YAML.
Depois de executar o comando, o KMS cria uma nova chave raiz e faz a rotação de todas as chaves com a nova chave raiz.
Para verificar se a rotação de chaves raiz foi concluída, execute o seguinte:
kubectl get rotationjobs ROTATION_NAMESubstitua ROTATION_NAME pelo nome do job de rotação.
Depois de executar o comando, o status do job de rotação será exibido como
Completedse for bem-sucedido.