Crear y eliminar claves

El AO realiza operaciones de gestión de claves mediante el comando kubectl para acceder al servidor de la API Management.

Antes de empezar

Antes de realizar operaciones de KMS, configura kubectl para acceder al servidor de la API Management y obtener los permisos necesarios.

Configurar el acceso al servidor de la API Management

Configura kubectl para acceder al servidor de la API Management:

  1. Si aún no lo has hecho, obtén un archivo kubeconfig para el servidor de la API Management mediante la interfaz de línea de comandos (CLI) de gdcloud.
  2. Define la variable de entorno MANAGEMENT_API_SERVER:

    export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG
    

    Sustituye PATH_TO_KUBECONFIG por la ruta del archivo kubeconfig generado.

Permisos obligatorios

Para obtener los permisos que necesitas, pide al administrador de gestión de identidades y accesos de tu organización que te conceda los siguientes roles de KMS en tu proyecto:

  • Para crear y enumerar claves, solicita el rol Creador de KMS (kms-creator).
  • Para crear, enumerar y eliminar claves, solicita el rol Administrador de KMS (kms-admin).

Crear clave

Este agente debe seguir estos pasos:

  1. Crea una clave en el espacio de nombres del proyecto. En el siguiente ejemplo se crea la clave AEAD:

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

    Sustituye las siguientes variables:

    • MANAGEMENT_API_SERVER: el archivo kubeconfig del servidor de la API Management. Inicia sesión y genera el archivo kubeconfig si no tienes uno.
    • KEY_NAME: el nombre de la clave que quieras crear (por ejemplo, key-1).
    • PROJECT: el nombre del proyecto. Por ejemplo, kms-test1.
  2. Verifica que se haya creado la clave:

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

    Si la clave se crea correctamente, verás el valor True en la columna READY.

Eliminar una llave

Este agente debe seguir estos pasos:

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

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

    Sustituye las siguientes variables:

    • MANAGEMENT_API_SERVER: el archivo kubeconfig del servidor de la API Management. Inicia sesión y genera el archivo kubeconfig si no tienes uno.
    • KEY_PRIMITIVE: la clave que quieras eliminar. Por ejemplo, aeadkey para la clave AEAD.
    • KEY_NAME: el nombre de la clave que quieras eliminar (por ejemplo, key-1).
    • PROJECT: el nombre del proyecto. Por ejemplo, kms-test1.
  2. Verifica que se ha eliminado la clave y asegúrate de que no se muestra en la respuesta:

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