Criar e excluir chaves

O Key Management System (KMS) oferece suporte a diferentes tipos de chaves para operações criptográficas, como criptografia, descriptografia, assinatura e verificação. Consulte Chaves compatíveis para mais informações sobre os tipos e algoritmos de chaves disponíveis.

Esta página é destinada a públicos-alvo do grupo de operadores de aplicativos, como equipes de DevOps, ao realizar operações de gerenciamento de chaves no Google Distributed Cloud (GDC) com isolamento físico. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.

Antes de começar

Para criar e gerenciar chaves, peça as permissões necessárias e prepare seu ambiente.

Solicitar papéis do IAM

Entre em contato com o administrador do IAM da organização para conceder a você os seguintes papéis no namespace do projeto:

  • Criador do KMS (kms-creator): visualizar e criar recursos AEADKey e SigningKey em um projeto.
  • Administrador do KMS (kms-admin): visualizar, criar e excluir chaves em um projeto.

Preparar o ambiente

  1. Instale e inicialize a CLI gdcloud, caso ainda não tenha feito isso.

  2. Autentique-se no GDC usando a CLI gdcloud. Esse processo exige o certificado da autoridade certificadora (AC) do console da sua organização:

    1. Faça o download do certificado de CA:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Substitua:

      • CONSOLE_URL: o URL do console da sua organização (como console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: o caminho completo em que você quer salvar o arquivo de certificado de CA (como /tmp/my-org-ca.crt)
    2. Faça login usando o certificado de CA baixado:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      
  3. Acesse um arquivo kubeconfig para o servidor da API Management usando a CLI gdcloud.

Crie uma chave

É possível criar chaves para diferentes fins criptográficos.

Criar uma chave AEAD

Para realizar a criptografia autenticada com dados associados (AEAD), crie um recurso AEADKey no namespace do projeto:

kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
  name: KEY_NAME
  namespace: PROJECT
spec:
  algorithm: AES_256_GCM
EOF

Substitua:

  • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management
  • KEY_NAME: um nome para a chave AEAD que você quer criar, por exemplo, key-1
  • PROJECT: o nome do projeto, por exemplo, kms-test1

Criar uma chave de assinatura

Para assinar e verificar dados, crie um recurso SigningKey no namespace do projeto:

kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
  name: KEY_NAME
  namespace: PROJECT
spec:
  algorithm: EC_SIGN_P384_SHA384
EOF

Substitua:

  • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management
  • KEY_NAME: um nome para a chave de assinatura que você quer criar, por exemplo, key-1
  • PROJECT: o nome do projeto, por exemplo, kms-test1

Verificar a criação de chaves

Depois de criar uma chave, verifique se a operação foi bem-sucedida e se o recurso de chave está pronto.

Verificar a criação de chaves AEAD

Verifique o status de uma chave AEAD:

kubectl --kubeconfig KUBECONFIG_PATH \
  get aeadkey KEY_NAME \
  --namespace=PROJECT -o yaml

Substitua:

  • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management
  • KEY_NAME: o nome da chave AEAD a ser verificada, por exemplo, key-1
  • PROJECT: o nome do projeto, por exemplo, kms-test1

Se a criação da chave foi bem-sucedida, verifique a saída de uma condição Ready com um status de True.

Verificar a criação de chaves de assinatura

Verifique o status de uma chave de assinatura:

kubectl --kubeconfig KUBECONFIG_PATH \
  get signingkey KEY_NAME \
  --namespace=PROJECT -o yaml

Substitua:

  • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management
  • KEY_NAME: o nome da chave de assinatura a ser verificada, por exemplo, key-1
  • PROJECT: o nome do projeto, por exemplo, kms-test1

Se a criação da chave foi bem-sucedida, verifique a saída de uma condição Ready com um status de True.

Excluir uma chave

Para excluir um recurso de chave, especifique o tipo e o nome da chave.

  1. Exclua a chave no namespace do projeto:

    kubectl --kubeconfig KUBECONFIG_PATH \
      delete KEY_PRIMITIVE KEY_NAME \
      --namespace=PROJECT
    

    Substitua:

    • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management
    • KEY_PRIMITIVE: o tipo de recurso de chave que você quer excluir, como aeadkey para a chave AEAD ou signingkey para a chave de assinatura
    • KEY_NAME: o nome da chave que você quer excluir, por exemplo, key-1.
    • PROJECT: o nome do projeto, por exemplo, kms-test1.
  2. Verifique a exclusão da chave tentando recuperá-la:

    kubectl --kubeconfig KUBECONFIG_PATH \
      get KEY_PRIMITIVE  KEY_NAME \
      --namespace=PROJECT
    

    Se a chave foi excluída, o comando não vai retornar o objeto de chave.