Alternar uma chave raiz

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

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:

  1. Liste os recursos AEADKey no projeto:

    kubectl get AEADKey -n PROJECT
    

    Substitua PROJECT pelo nome do namespace do projeto.

    Na saída, anote o nome de qualquer AEADKey.

  2. Acesse o ROOT_KEY_RESOURCE_NAME do AEADKey. O comando a seguir extrai e reformata o identificador de chave raiz necessário para o recurso RotationJob:

    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 qualquer AEADKey no projeto.
    • PROJECT: o nome do namespace do projeto.

    A saída pode ser semelhante a esta:

    namespaces/kms-system/secrets/kms-key-local-root
    
  3. Crie um arquivo YAML e adicione o recurso RotationJob e o seguinte conteúdo:

    apiVersion: "kms.gdc.goog/v1"
    kind: RotationJob
    metadata:
      name: ROTATION_NAME
    spec:
      rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
    

    Substitua:

    • 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.
  4. Aplique o conteúdo do arquivo YAML ao KMS:

    kubectl apply -f FILENAME.yaml
    

    Substitua 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.

  5. Para verificar se a rotação de chaves raiz foi concluída, execute o seguinte:

    kubectl get rotationjobs ROTATION_NAME
    

    Substitua ROTATION_NAME pelo nome do job de rotação.

    Depois de executar o comando, o status do job de rotação será exibido como Completed se for bem-sucedido.