Alterne uma chave principal

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

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:

  1. Liste os recursos AEADKey no seu projeto:

    kubectl get AEADKey -n PROJECT
    

    Substitua PROJECT pelo nome do espaço de nomes do projeto.

    Na saída, tome nota do nome de qualquer AEADKey.

  2. Obtenha o ROOT_KEY_RESOURCE_NAME a partir da AEADKey. O comando seguinte extrai e reformata o identificador da 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 o seguinte:

    • KEY_NAME: o nome de qualquer AEADKey no seu projeto
    • PROJECT: 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-root
    
  3. Crie um ficheiro 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 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
  4. Aplique o conteúdo do ficheiro YAML ao KMS:

    kubectl apply -f FILENAME.yaml
    

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

  5. Para validar se a alternância da chave raiz está concluída, execute o seguinte:

    kubectl get rotationjobs ROTATION_NAME
    

    Substitua ROTATION_NAME pelo nome do trabalho de alternância.

    Depois de executar o comando, vê o estado do trabalho de alternância como Completed se for bem-sucedido.