Crear y eliminar claves

El sistema de gestión de claves (KMS) admite diferentes tipos de claves para operaciones criptográficas, como el cifrado, el descifrado, la firma y la verificación. Consulta el artículo Claves admitidas para obtener más información sobre los tipos de claves y los algoritmos disponibles.

Esta página está dirigida a los usuarios del grupo de operadores de aplicaciones, como los equipos de DevOps, que realizan operaciones de gestión de claves en entornos aislados de Google Distributed Cloud (GDC). Para obtener más información, consulta el artículo Audiencias de la documentación de GDC en entornos aislados.

Antes de empezar

Para crear y gestionar claves, solicita los permisos necesarios y prepara tu entorno.

Solicitar roles de gestión de identidades y accesos

Ponte en contacto con el administrador de gestión de identidades y accesos de tu organización para que te asigne los siguientes roles en el espacio de nombres de tu proyecto:

  • Creador de KMS (kms-creator): permite ver y crear recursos AEADKey y SigningKey en un proyecto.
  • Administrador de KMS (kms-admin): permite ver, crear y eliminar claves en un proyecto.

Preparar el entorno

  1. Instala e inicializa la CLI de gdcloud si aún no lo has hecho.

  2. Autentícate en GDC con la CLI gdcloud. Para ello, necesitas el certificado de la autoridad de certificación (AC) de la consola de tu organización:

    1. Descarga el certificado AC:

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

      Haz los cambios siguientes:

      • CONSOLE_URL: la URL de la consola de tu organización (por ejemplo, console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: la ruta completa donde quieres guardar el archivo del certificado de la AC (por ejemplo, /tmp/my-org-ca.crt)
    2. Inicia sesión con el certificado de la AC que has descargado:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      
  3. Obtén un archivo kubeconfig para el servidor de la API de gestión con la CLI gdcloud.

Crear una clave

Puedes crear claves para diferentes fines criptográficos.

Crear una clave AEAD

Para realizar un cifrado autenticado con datos asociados (AEAD), crea un recurso AEADKey en el espacio de nombres de tu proyecto:

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

Haz los cambios siguientes:

  • KUBECONFIG_PATH: la ruta del archivo kubeconfig del servidor de la API de gestión
  • KEY_NAME: un nombre para la clave AEAD que quieres crear (por ejemplo, key-1)
  • PROJECT: el nombre del proyecto (por ejemplo, kms-test1)

Crear una clave de firma

Para firmar y verificar datos, crea un recurso SigningKey en el espacio de nombres de tu proyecto:

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

Haz los cambios siguientes:

  • KUBECONFIG_PATH: la ruta del archivo kubeconfig del servidor de la API de gestión
  • KEY_NAME: un nombre para la clave de firma que quieres crear (por ejemplo, key-1)
  • PROJECT: el nombre del proyecto (por ejemplo, kms-test1)

Verificar la creación de una clave

Después de crear una clave, comprueba que la operación se haya realizado correctamente y que el recurso de clave esté listo.

Verificar la creación de una clave AEAD

Comprueba el estado de una clave AEAD:

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

Haz los cambios siguientes:

  • KUBECONFIG_PATH: la ruta del archivo kubeconfig del servidor de la API de gestión
  • KEY_NAME: el nombre de la clave AEAD que quieres verificar (por ejemplo, key-1)
  • PROJECT: el nombre del proyecto (por ejemplo, kms-test1)

Si la clave se ha creado correctamente, comprueba que la condición Ready tenga el estado True en el resultado.

Verificar la creación de una clave de firma

Comprueba el estado de una clave de firma:

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

Haz los cambios siguientes:

  • KUBECONFIG_PATH: la ruta del archivo kubeconfig del servidor de la API de gestión
  • KEY_NAME: el nombre de la clave de firma que quieres verificar (por ejemplo, key-1)
  • PROJECT: el nombre del proyecto (por ejemplo, kms-test1)

Si la clave se ha creado correctamente, comprueba que la condición Ready tenga el estado True en el resultado.

Eliminar una clave

Para eliminar un recurso de clave, especifica el tipo y el nombre de la clave.

  1. Elimina la clave en el espacio de nombres del proyecto:

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

    Haz los cambios siguientes:

    • KUBECONFIG_PATH: la ruta del archivo kubeconfig del servidor de la API de gestión
    • KEY_PRIMITIVE: el tipo de recurso de clave que quieres eliminar (por ejemplo, aeadkey para la clave AEAD o signingkey para la clave de firma)
    • KEY_NAME: el nombre de la clave que quieres eliminar (por ejemplo, key-1)
    • PROJECT: el nombre del proyecto (por ejemplo, kms-test1)
  2. Para verificar que la clave se ha eliminado, intenta recuperarla:

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

    Si la clave se ha eliminado correctamente, el comando no devolverá el objeto de clave.