Borra recursos de Cloud KMS

En este documento, se muestra cómo borrar de forma permanente las claves y las versiones de claves de Cloud Key Management Service. Esta operación es irreversible.

En Cloud KMS, la destrucción y el borrado son operaciones diferentes:

  • Destrucción: Inhabilita una versión de clave de forma permanente, lo que incluye la destrucción irreversible del material de clave subyacente después del período de destrucción especificado. Una versión de clave en estado DESTROYED no se puede usar para operaciones criptográficas y ya no se factura. Puedes destruir una versión de clave que se usó para encriptar datos y destruir criptográficamente los datos que quieras que sean irrecuperables de forma permanente. Las versiones de claves destruidas aún se incluyen en las listas de recursos de Cloud KMS.

  • Borrado: Quita una clave o una versión de clave de las listas de recursos de Cloud KMS en la consola de Google Cloud , Google Cloud CLI, la API de Cloud Key Management Service y las bibliotecas cliente. En el caso de los proyectos con muchas claves o versiones de claves que ya no están activas, la eliminación optimiza las operaciones de búsqueda y de lista. Los nombres de CryptoKey borrados no se pueden volver a usar. Puedes ver una lista de los nombres de CryptoKey borrados que no se pueden volver a usar con el método retiredResources.list.

Antes de comenzar

Para obtener los permisos que necesitas para borrar y ver recursos de Cloud KMS, pídele a tu administrador que te otorgue el rol de IAM de administrador de Cloud KMS (roles/cloudkms.admin) en la clave. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para borrar y ver recursos de Cloud KMS. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para borrar y ver recursos de Cloud KMS:

  • Para borrar una versión de clave, haz lo siguiente: cloudkms.cryptoKeyVersions.delete
  • Para borrar una llave, haz lo siguiente: cloudkms.cryptoKeys.delete
  • Para ver los recursos borrados, haz lo siguiente:
    • cloudkms.retiredResources.get
    • cloudkms.retiredResources.list

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Borra una versión de clave

Puedes borrar una versión de clave si está en el estado DESTROYED, IMPORT_FAILED o GENERATION_FAILED. Si se importó la versión de clave, solo se puede borrar si falló la importación.

Para borrar definitivamente una versión de clave, sigue estos pasos:

gcloud

Para borrar una versión de clave, ejecuta el siguiente comando:

gcloud kms keys versions delete KEY_VERSION \
    --location=LOCATION \
    --keyring=KEY_RING \
    --key=KEY_NAME

Reemplaza lo siguiente:

  • KEY_VERSION: Es el número de la versión de la clave que deseas borrar de forma permanente. La versión de clave indicada debe estar en el estado DESTROYED, IMPORT_FAILED o GENERATION_FAILED.
  • LOCATION: la ubicación de Cloud KMS del llavero de claves.
  • KEY_RING: el nombre del llavero de claves que incluye la clave
  • KEY_NAME: Es el nombre de la clave que contiene la versión de la clave que deseas borrar de forma permanente.

REST

  1. Para borrar una versión de clave, llama al método cryptoKeyVersions.delete. Este método devuelve una operación de larga duración que puedes sondear para confirmar que se borró la versión de la clave.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • KEY_RING: el nombre del llavero de claves que incluye la clave
    • KEY_NAME: Es el nombre de la clave que contiene la versión de la clave que deseas borrar de forma permanente.
    • KEY_VERSION: Es el número de la versión de la clave que deseas borrar de forma permanente. La versión de clave indicada debe estar en el estado DESTROYED, IMPORT_FAILED o GENERATION_FAILED.

    El resultado del comando devuelve un Operation. Necesitarás el name de la operación para el siguiente paso.

  2. Para confirmar que se borró la versión de clave, puedes llamar al método operations.get:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • OPERATION_NAME: Es el nombre de la operación que devolvió el método anterior.

    Cuando el resultado de este método muestre que done es true, la operación habrá finalizado. Si no se indica ningún error, significa que la versión de la clave se borró de forma permanente.

Borra una clave

Puedes borrar una clave si cumple con las siguientes condiciones:

  • La clave no contiene versiones que aún no se hayan borrado.
  • La clave no tiene programada la rotación automática de claves.
  • La clave no fue creada por Autokey de Cloud KMS.

Para borrar una clave de forma permanente, sigue estos pasos:

gcloud

Para borrar una clave, ejecuta el siguiente comando:

gcloud kms keys delete KEY_NAME \
    --location=LOCATION \
    --keyring=KEY_RING

Reemplaza lo siguiente:

  • KEY_NAME: Es el nombre de la clave que deseas borrar de forma permanente. La clave no debe contener ninguna versión de clave que aún no se haya borrado y no debe ser una clave creada por Autokey.
  • LOCATION: la ubicación de Cloud KMS del llavero de claves.
  • KEY_RING: el nombre del llavero de claves que incluye la clave

REST

  1. Para borrar una clave, llama al método cryptoKey.delete. Este método devuelve una operación de larga duración que puedes sondear para confirmar que se borró la clave.

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
    --request "DELETE" \
    --header "authorization: Bearer TOKEN"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • KEY_RING: el nombre del llavero de claves que incluye la clave
    • KEY_NAME: Es el nombre de la clave que deseas borrar de forma permanente. La clave no debe contener ninguna versión de clave que aún no se haya borrado y no debe ser una clave creada por Autokey.

    El resultado del comando devuelve un Operation. Necesitarás el name de la operación para el siguiente paso.

  2. Para confirmar que se borró la clave, puedes llamar al método operations.get:

    curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_NAME" \
        --request "GET" \
        --header "authorization: Bearer TOKEN"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves.
    • LOCATION: la ubicación de Cloud KMS del llavero de claves.
    • OPERATION_NAME: Es el nombre de la operación que devolvió el método anterior.

    Cuando el resultado de este método muestra que done es true, la operación finalizó. Si no se indica ningún error, significa que la clave se borró de forma permanente.

Cómo ver los nombres de los recursos retirados

Los nombres de las claves que se borraron no se pueden volver a usar en el mismo proyecto deGoogle Cloud . Esto evita que dos claves diferentes tengan el mismo identificador de recurso. Los nombres de las claves borradas se almacenan en objetos retiredResources. Puedes consultar retiredResources para ver los nombres que no se pueden reutilizar para los recursos nuevos de Cloud KMS.

Para ver una lista de todos los recursos retirados, sigue estos pasos:

gcloud

Ejecuta el siguiente comando:

gcloud kms retired-resources list \
    --location=LOCATION

Reemplaza lo siguiente:

  • LOCATION: Es la ubicación en la que deseas ver los recursos retirados.

REST

Usa el método retiredResources.list:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto en el que deseas ver los recursos retirados.
  • LOCATION: Es la ubicación en la que deseas ver los recursos retirados.

Para ver los metadatos de un recurso retirado individual, sigue estos pasos:

gcloud

Ejecuta el siguiente comando:

gcloud kms retired-resources describe RETIRED_RESOURCE \
    --location=LOCATION

Reemplaza lo siguiente:

  • RETIRED_RESOURCE: Es el nombre del recurso que deseas ver.
  • LOCATION: Es la ubicación en la que deseas ver un recurso retirado.

REST

Usa el método retiredResources.get:

curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/retiredResources/RETIRED_RESOURCE" \
    --request "GET" \
    --header "authorization: Bearer TOKEN"

Reemplaza lo siguiente:

  • PROJECT_ID: Es el identificador del proyecto en el que deseas ver un recurso retirado.
  • LOCATION: Es la ubicación en la que deseas ver un recurso retirado.
  • RETIRED_RESOURCE: Es el nombre del recurso que deseas ver.

El resultado de este método incluye el resourceType, el deleteTime y el identificador completo del recurso borrado.

¿Qué sigue?