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.