Crie e elimine chaves

O sistema de gestão de chaves (KMS) suporta diferentes tipos de chaves para operações criptográficas, como encriptação, desencriptação, assinatura e verificação. Consulte o artigo Chaves suportadas para ver mais informações sobre os tipos de chaves e os algoritmos disponíveis.

Esta página destina-se a públicos-alvo no grupo de operadores de aplicações, como equipas de DevOps, quando realizam operações de gestão de chaves no Google Distributed Cloud (GDC) air-gapped. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.

Antes de começar

Para criar e gerir chaves, peça as autorizações necessárias e prepare o seu ambiente.

Peça funções de IAM

Contacte o administrador da IAM da sua organização para lhe conceder as seguintes funções no espaço de nomes do projeto:

  • KMS Creator (kms-creator): ver e criar recursos AEADKey e SigningKey num projeto.
  • Administrador do KMS (kms-admin): ver, criar e eliminar chaves num projeto.

Prepare o seu ambiente

  1. Instale e inicialize a CLI gcloud, se ainda não o tiver feito.

  2. Autentique-se no GDC através da CLI gdcloud. Este processo requer o certificado da autoridade de certificação (CA) para a consola da sua organização:

    1. Transfira o certificado da AC:

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

      Substitua o seguinte:

      • CONSOLE_URL: o URL da consola da sua organização (como console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: o caminho completo onde quer guardar o ficheiro do certificado da AC (como /tmp/my-org-ca.crt)
    2. Inicie sessão com o certificado da AC transferido:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      
  3. Obtenha um ficheiro kubeconfig para o servidor da API Management através da CLI gdcloud.

Crie uma chave

Pode criar chaves para diferentes fins criptográficos.

Crie uma chave AEAD

Para realizar a encriptação autenticada com dados associados (AEAD), crie um recurso AEADKey no espaço de nomes do seu 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 o seguinte:

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

Crie uma chave de assinatura

Para assinar e validar dados, crie um recurso SigningKey no espaço de nomes do seu 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 o seguinte:

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

Valide a criação de chaves

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

Valide a criação da chave AEAD

Verifique o estado de uma chave AEAD:

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

Substitua o seguinte:

  • KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API Management
  • KEY_NAME: o nome da chave AEAD a validar—por exemplo: key-1
  • PROJECT: o nome do projeto. Por exemplo: kms-test1

Se a criação da chave tiver sido bem-sucedida, verifique o resultado para uma condição Ready com o estado True.

Valide a criação da chave de assinatura

Verifique o estado de uma chave de assinatura:

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

Substitua o seguinte:

  • KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API Management
  • KEY_NAME: o nome da chave de assinatura para validar,—por exemplo: key-1
  • PROJECT: o nome do projeto. Por exemplo: kms-test1

Se a criação da chave tiver sido bem-sucedida, verifique o resultado para uma condição Ready com o estado True.

Elimine uma chave

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

  1. Elimine a chave no espaço de nomes do projeto:

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

    Substitua o seguinte:

    • KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API Management
    • KEY_PRIMITIVE: o tipo de recurso de chave que quer eliminar, como aeadkey para a chave AEAD ou signingkey para a chave de assinatura
    • KEY_NAME: o nome da chave que quer eliminar, por exemplo: key-1.
    • PROJECT: o nome do projeto. Por exemplo: kms-test1.
  2. Valide a eliminação da chave tentando obter a chave:

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

    Se a chave tiver sido eliminada com êxito, o comando não devolve o objeto da chave.