Solucionar errores de CMEK y de configuración predeterminada

En este documento se describe cómo encontrar y mitigar los errores de configuración de CMEK habituales, así como identificar los errores que se producen al definir la ubicación de recursos predeterminada.

Solucionar problemas al definir la ubicación de recurso predeterminada

Intentas actualizar la ubicación de almacenamiento predeterminada de una organización o una carpeta, pero el comando falla y se muestra un error similar al siguiente:

ERROR: (gcloud.logging.settings.update) INVALID_ARGUMENT: The KMS key location must match the storage location. Received KMS key location: us-central1, storage location: us-west1
- '@type': type.googleapis.com/google.rpc.DebugInfo
  detail: '[ORIGINAL ERROR] generic::invalid_argument: The KMS key location must match
    the storage location. Received KMS key location: us-central1, storage location:
    us-west1 [google.rpc.error_details_ext] { message: "The KMS key location must
    match the storage location. Received KMS key location: us-central1, storage location:
    us-west1" }'

Para solucionar este error, define la ubicación de almacenamiento predeterminada de la organización o la carpeta de forma que coincida con la ubicación de la clave de Cloud Key Management Service de la organización o la carpeta.

Solucionar problemas de CMEK

Cuando configures la CMEK, se notificará al Trusted Cloud proyecto que contiene la clave de Cloud KMS si hay algún problema relacionado. Por ejemplo, las actualizaciones fallan cuando el KMS_KEY_NAME no es válido, cuando la cuenta de servicio asociada no tiene el rol Encriptador o Desencriptador de CryptoKey de Cloud Key Management Service necesario o cuando el acceso a la clave está inhabilitado.

Después de configurar CMEK, ocurre al menos una de las siguientes situaciones:

  • Has recibido una notificación de Cloud Logging sobre problemas de acceso a CMEK.

  • Observas que CMEK no está habilitado en los contenedores de registros _Default y _Required cuando creas proyectos Trusted Cloud nuevos en tu organización o en una carpeta.

  • Recibes errores al leer de los cubos de registro con CMEK habilitada o si intentas crear o actualizar cubos de registro.

La notificación proporciona información sobre el error y contiene las medidas que puedes tomar para mitigar el problema:

Error Recomendación
Se ha denegado el permiso de clave criptográfica

La cuenta de servicio de Logging asociada a tu proyecto Trusted Cloud no tiene suficientes permisos de gestión de identidades y accesos para operar en la clave de Cloud KMS especificada. Sigue las instrucciones que se indican en el error o consulta los siguientes documentos:

La clave criptográfica se ha inhabilitado La clave de Cloud KMS especificada se ha inhabilitado. Sigue las instrucciones que se indican en el error para volver a habilitar la llave.
La clave criptográfica se ha eliminado

Se ha eliminado la clave de Cloud KMS especificada. Sigue las instrucciones o consulta los siguientes documentos:

Identificar el proyecto que contiene la clave de Cloud KMS

Para identificar el ID del Trusted Cloud proyecto que contiene la clave de cifrado que usa un bucket de registro, una carpeta o una organización, sigue estos pasos:

PROYECTO

gcloud logging settings describe --project=PROJECT_ID

Antes de ejecutar el comando, sustituye PROJECT_ID por el ID del proyecto que contiene el bucket de registro.

FOLDER

gcloud logging settings describe --folder=FOLDER_ID

Antes de ejecutar el comando, sustituye FOLDER_ID por el ID de la carpeta.

ORGANIZACIÓN

gcloud logging settings describe --organization=ORGANIZATION_ID

Antes de ejecutar el comando, sustituye ORGANIZATION_ID por el ID de la organización.

El comando anterior devuelve información similar a la siguiente:

kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.s3ns.iam.gserviceaccount.com
loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.s3ns.iam.gserviceaccount.com

En el caso de las organizaciones y las carpetas, también se devuelve el siguiente campo:

kmsKeyName: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY

El valor del campo kmsKeyName incluye el proyecto Trusted Cloud que almacena la clave.

Verificar la usabilidad de la clave

Para verificar que la clave se puede usar, ejecuta el siguiente comando para enumerar todas las claves:

gcloud kms keys list \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING

Este comando devuelve información sobre cada clave en formato tabular. La primera línea de la salida es una lista de nombres de columnas:

NAME PURPOSE ...

Verifica que la clave de Cloud KMS aparezca en el resultado del comando como ENABLED y que su finalidad sea el cifrado simétrico: la columna PURPOSE debe contener ENCRYPT_DECRYPT y la columna PRIMARY_STATE debe contener ENABLED.

Si es necesario, crea una clave.

Verificar la configuración de permisos

Las cuentas de servicio asociadas a la configuración de CMEK de la organización deben tener el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS de la clave configurada.

Para ver la política de IAM de la clave, ejecuta el siguiente comando:

gcloud kms keys get-iam-policy KMS_KEY_NAME

Si es necesario, añade a la clave la cuenta de servicio que contenga el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS.