Habilita CMEK para Looker (Google Cloud core)

De forma predeterminada, Google Cloud encripta los datos cuando están en reposo de manera automática mediante claves de encriptación administradas por Google. Si tienes requisitos regulatorios o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar claves de encriptación administradas por el cliente (CMEK) para la encriptación a nivel de aplicación de Looker (Google Cloud Core).

Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud Key Management Service.

En esta página, se explica cómo configurar una instancia de Looker (Google Cloud Core) para usar CMEK.

¿Cómo interactúa Looker (Google Cloud Core) con CMEK?

Looker (Google Cloud Core) usa una sola clave CMEK (a través de una jerarquía de claves secundarias) para ayudar a proteger los datos sensibles que administra la instancia de Looker (Google Cloud Core). Durante el inicio, cada proceso dentro de la instancia de Looker realiza una llamada inicial a Cloud Key Management Service (KMS) para desencriptar la clave. Durante el funcionamiento normal (después del inicio), toda la instancia de Looker realiza una sola llamada al KMS aproximadamente cada cinco minutos para verificar que la clave aún sea válida.

¿Qué tipos de instancias de Looker (Google Cloud Core) admiten CMEK?

Las instancias de Looker (Google Cloud Core) admiten CMEK cuando se cumplen dos criterios:

  • Los pasos de configuración de CMEK que se describen en esta página se completan antes de que se cree la instancia de Looker (Google Cloud Core). No puedes habilitar las claves de encriptación administradas por el cliente en instancias existentes.
  • Las ediciones de las instancias deben ser Enterprise o Embed.

Flujo de trabajo para crear una instancia de Looker (Google Cloud Core) con CMEK

En esta página, se te guiará a través de los siguientes pasos a fin de configurar CMEK para una instancia de Looker (Google Cloud Core).

  1. Configura tu entorno.
  2. Solo para usuarios de la CLI de gcloud y la API: Crea una cuenta de servicio para cada proyecto que requiera claves de encriptación administradas por el cliente.
  3. Crea un llavero de claves y claves, y establece la ubicación de la clave. La ubicación corresponde a la región de Google Cloud.
  4. Solo para usuarios de la CLI y la API de gcloud: Copia o escribe el ID de la clave (KMS_KEY_ID) y la ubicación de la clave, junto con el ID (KMS_KEYRING_ID) del llavero de claves. Necesitas esta información para otorgar a la cuenta de servicio acceso a la clave.
  5. Solo para usuarios de la CLI de gcloud y la API: otorgue a la cuenta de servicio acceso a la clave.
  6. Ve a un proyecto y crea una instancia de Looker (Google Cloud Core) con las siguientes opciones:
    1. Selecciona la misma ubicación que usa la clave de encriptación administrada por el cliente.
    2. Configure la edición en Enterprise o Embed.
    3. Habilita la configuración de la clave administrada por el cliente.
    4. Agrega la clave de encriptación administrada por el cliente por nombre o ID.

Una vez que completes todos estos pasos, se habilitará la instancia de Looker (Google Cloud Core) con CMEK.

Antes de comenzar

Si aún no lo hiciste, asegúrate de que el entorno esté configurado para que puedas seguir las instrucciones de esta página. Siga los pasos de esta sección para asegurarse de que su configuración sea correcta.

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud. Nota: Si no planea conservar los recursos que creará en este procedimiento, cree un proyecto en lugar de seleccionar uno existente. Después de completar estos pasos, puedes borrar el proyecto, lo que quitará los recursos asociados a él.

    Ir al selector de proyectos

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Aprende a verificar si la facturación está habilitada en un proyecto.
  3. Asegúrate de tener el rol de administrador de Looker en tu cuenta de usuario.
  4. Instala Google Cloud CLI.
  5. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
    

  6. Habilitar la API de Cloud Key Management Service

    Habilitar la API

  7. Habilita la API de Looker (Google Cloud Core).

    Habilitar la API

Crea una cuenta de servicio

Si usa gcloud CLI o la API a fin de crear una instancia de Looker (Google Cloud Core), debe crear una cuenta de servicio para cada proyecto de Google Cloud que requiera claves de encriptación administradas por el cliente. Si va a crear más de una instancia de Looker (Google Cloud Core) en un proyecto, la misma cuenta de servicio se aplica a todas las instancias de Looker (Google Cloud Core) en ese proyecto, y la creación de la cuenta de servicio solo debe hacerse una vez. Si usas la consola para crear una instancia, Looker (Google Cloud core) crea automáticamente la cuenta de servicio cuando eliges por primera vez la opción Usar una clave de encriptación administrada por el cliente.

Para permitir que un usuario administre cuentas de servicio, otorga una de las siguientes funciones:

  • Usuario de cuenta de servicio (roles/iam.serviceAccountUser): Incluye permisos para enumerar cuentas de servicio, obtener detalles sobre una cuenta de servicio y actuar en nombre de una cuenta de servicio.
  • Administrador de cuenta de servicio (roles/iam.serviceAccountAdmin): Incluye permisos para enumerar cuentas de servicio y obtener detalles sobre ellas. También incluye permisos para crear, actualizar y borrar cuentas de servicio.

Actualmente, solo puede usar los comandos de gcloud CLI a fin de crear el tipo de cuenta de servicio que necesita para las claves de encriptación administradas por el cliente. Si usas la consola de Google Cloud, Looker (Google Cloud core) crea automáticamente esta cuenta de servicio por ti.

gcloud

gcloud beta services identity create \
--service=looker.googleapis.com \
--project=PROJECT_ID

En el comando anterior, se muestra un nombre de cuenta de servicio. Usarás el nombre de esta cuenta de servicio durante el procedimiento que se indica en Otorga acceso a la clave a la cuenta de servicio.

Crea un llavero de claves y una clave

Nota: Puedes usar una clave administrada de forma externa con CMEK mediante el servicio de Cloud EKM para hacer que la clave esté disponible mediante Cloud KMS.

Puedes crear la clave en el mismo proyecto de Google Cloud que la instancia de Looker (Google Cloud Core) o en un proyecto de usuario independiente. La ubicación del llavero de claves de Cloud KMS debe coincidir con la región en la que deseas crear la instancia de Looker (Google Cloud Core). Una clave multirregional o de región global no funcionará. La solicitud para crear instancias de Looker (Google Cloud Core) falla si las regiones no coinciden.

Sigue las instrucciones de las páginas de documentación Crea un llavero de claves y Crea una clave para crear un llavero de claves y una clave que cumplan con estos dos criterios:

  • El campo Ubicación del llavero de claves debe coincidir con la región que configurarás para la instancia de Looker (Google Cloud Core).
  • El campo Propósito clave debe ser Encriptación/desencriptación simétrica.

Consulta la sección Rotar tu clave para aprender a rotar la clave y a crear nuevas versiones de clave.

Copia o escribe el KMS_KEY_ID y el KMS_KEYRING_ID.

Si usas gcloud o la API para configurar tu instancia de Looker (Google Cloud Core), sigue las instrucciones de la página de documentación Obtén un ID de recurso de Cloud KMS a fin de ubicar los ID de recursos correspondientes al llavero de claves y la clave que acabas de crear. Copia o escribe el ID de la clave (KMS_KEY_ID) y la ubicación de la clave, junto con el ID (KMS_KEYRING_ID) del llavero de claves. Necesitas esta información para otorgar a la cuenta de servicio acceso a la clave.

Otorga a la cuenta de servicio acceso a la clave.

Solo debe realizar este procedimiento si usa gcloud CLI o la API. Para SERVICE_ACCOUNT_NAME, usa el nombre de la cuenta de servicio que se mostró cuando creaste la cuenta de servicio.

Para otorgar acceso a la cuenta de servicio, haz lo siguiente:

gcloud

gcloud Cloud KMS keys add-iam-policy-binding KMS_KEY_ID \
--location=GCP_REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:SERVICE_ACCOUNT_NAME \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Crea una instancia de Looker (Google Cloud Core) con CMEK

Si quieres crear una instancia con claves de encriptación administradas por el cliente en la consola de Google Cloud, primero sigue los pasos de la sección Crea un llavero de claves y una clave, que se mostró anteriormente, para crear una clave y una clave en la misma región que usarás en tu instancia de Looker (Google Cloud core). Luego, con la siguiente configuración, siga las instrucciones para crear una instancia de Looker (Google Cloud Core) en la página de documentación Cree un Looker (Google Cloud Core) desde la página de documentación de Google Cloud Console:

Console

  1. En la sección Edición de la página Crear una instancia, debes seleccionar una edición Enterprise o Embed para usar CMEK.
  2. En la sección Encriptación de la página Crear una instancia, selecciona el botón de selección Clave de encriptación administrada por el cliente (CMEK). Esto muestra el campo desplegable Selecciona una clave administrada por el cliente.
  3. En el campo Selecciona una clave administrada por el cliente, establece la clave que quieres usar. La clave debe estar en un llavero de claves que tenga una ubicación establecida en la misma región que la instancia de Looker (Google Cloud Core) que estás creando. De lo contrario, la creación de instancias fallará. Puedes seleccionar la clave mediante uno de los siguientes dos métodos:
    1. Selecciona el nombre de la clave de la lista desplegable: Las claves disponibles en el proyecto de Google Cloud aparecen en una lista desplegable. Cuando hayas seleccionado la llave, haz clic en OK.
    2. Ingresa el ID de recurso de la clave: Haz clic en el texto ¿No puedes ver tu clave? Ingresa el ID de recurso de la clave, que se muestra en la parte inferior del menú desplegable.Se mostrará un diálogo Ingresar ID de recurso de clave en el que podrás ingresar el ID de la clave. Una vez que haya ingresado el ID, seleccione Guardar.
  4. Cuando seleccionas una clave, aparece un mensaje en el que se te solicita que otorgues permiso a tu cuenta de servicio para usarla. Haz clic en el botón Otorgar.
  5. Si la cuenta de servicio no tiene permiso para encriptar o desencriptar con la clave seleccionada, aparecerá un mensaje. Si esto sucede, haz clic en Otorgar para otorgar a la cuenta de servicio el roles/cloudkms.cryptoKeyEncrypterDecrypter rol de IAM en la clave de KMS seleccionada.
  6. Cuando termines de configurar tu instancia de Looker (Google Cloud Core), haz clic en Crear.

gcloud

gcloud looker instances create INSTANCE_NAME \
--project=PROJECT_ID \
--oauth-client-id=OAUTH_CLIENT_ID\
--oauth-client-secret=OAUTH_CLIENT_SECRET \
--kms-key=KMS_KEY_ID
--region=REGION \
--edition=EDITION

Para habilitar CMEK, debes asignar --edition a core-embed-annual o core-enterprise-annual.

Tu instancia de Looker (Google Cloud Core) ahora está habilitada con CMEK.

Visualiza la información de claves de una instancia con CMEK habilitadas

Una vez que cree correctamente una instancia de Looker (Google Cloud Core), puede verificar si la CMEK está habilitada.

Console

  1. En la consola de Google Cloud, ve a la página Instancias de Looker.
  2. Haz clic en el nombre de una instancia para abrir su página de Detalles. Si una instancia tiene CMEK habilitadas, una fila de Encriptación indica la encriptación que se usó para la instancia. En el campo Clave de encriptación administrada por el cliente (CMEK), se muestra el identificador de clave.

gcloud

gcloud looker instances describe INSTANCE_NAME --region=REGION --format config

Este comando debe mostrar kmsKeyName, kmsKeyNameVersion y kmsKeyState para confirmar que la instancia se configuró con CMEK.

Usa Cloud External Key Manager (Cloud EKM)

Para proteger datos en instancias de Looker (Google Cloud Core), puedes usar claves que administras en un socio de administración de claves externo compatible. Para obtener más información, consulta la página de documentación de Cloud External Key Manager, incluida la sección Consideraciones.

Cuando estés listo para crear una clave de Cloud EKM, consulta la sección Cómo funciona en la página de documentación de Cloud External Key Manager. Después de crear una clave, proporciona su nombre cuando crees una instancia de Looker (Google Cloud Core).

Google no controla la disponibilidad de claves en un sistema de socios de administración de claves externo.

Rota tu llave

Te recomendamos que rotes la llave para promover la seguridad. Cada vez que se rota tu clave, se crea una nueva versión de clave. Para obtener más información sobre la rotación de claves, consulta la página de documentación sobre la rotación de claves.

Si rotas la clave que usaste para proteger tu instancia de Looker (Google Cloud Core), la versión de clave anterior seguirá siendo necesaria a fin de acceder a las copias de seguridad o exportaciones realizadas cuando estaba en uso. Por ese motivo, Google recomienda mantener habilitada la versión de clave anterior durante al menos 45 días después de la rotación para garantizar que esos elementos sigan siendo accesibles. Las versiones de clave se conservan de forma predeterminada hasta que se inhabilitan o destruyen.

Inhabilita y vuelve a habilitar versiones de claves

Consulta las siguientes páginas de documentación:

Si se inhabilita una versión de clave que se usa para proteger una instancia de Looker (Google Cloud Core), esta se debe dejar de operar, borrar los datos sensibles sin encriptar que pueda tener en la memoria y esperar hasta que la clave vuelva a estar disponible. El proceso es el siguiente:

  1. La versión de clave que se usa para ayudar a proteger una instancia de Looker (Google Cloud Core) está inhabilitada.
  2. En aproximadamente 15 minutos, la instancia de Looker (Google Cloud Core) detecta que se revoca la versión de clave, deja de funcionar y borra todos los datos encriptados de la memoria.
  3. Después de que la instancia deja de funcionar, las llamadas a las APIs de Looker muestran un mensaje de error.
  4. Una vez que la instancia deja de funcionar, la IU de Looker (Google Cloud Core) muestra un mensaje de error.
  5. Si vuelves a habilitar la versión de clave, deberás activar manualmente un reinicio de la instancia.

Si inhabilita una versión de clave y no desea esperar a que la instancia de Looker (Google Cloud Core) se detenga por su cuenta, puede activar de forma manual el reinicio de la instancia para que la instancia de Looker (Google Cloud Core) detecte la versión revocada de inmediato.

Destruye versiones de claves

Consulta la siguiente página de documentación:

Si se destruye una versión de clave que se usa para proteger una instancia de Looker (Google Cloud Core), la instancia de Looker se vuelve inaccesible. La instancia debe borrarse y no podrás acceder a sus datos.

Solucionar problemas

En esta sección, se describen los procedimientos que debes intentar cuando recibes un mensaje de error durante la configuración o el uso de instancias habilitadas con CMEK.

Las operaciones del administrador de Looker (Google Cloud Core), como crear o actualizar, pueden fallar debido a errores de Cloud KMS y a funciones o permisos faltantes. Entre los motivos más comunes de las fallas se incluyen: una versión de clave de Cloud KMS faltante, una versión de clave de Cloud KMS inhabilitada o destruida, permisos de IAM insuficientes para acceder a la versión de clave de Cloud KMS o la presencia de una versión de clave de Cloud KMS en una región diferente a la de la instancia de Looker (Google Cloud Core). Usa la siguiente tabla de solución de problemas para diagnosticar y resolver problemas comunes.

Tabla de solución de problemas de claves de encriptación administradas por el cliente

Mensaje de error Causas posibles Estrategias de solución de problemas
No se encontró la cuenta de servicio por proyecto ni por producto. El nombre de la cuenta de servicio es incorrecto. Asegúrate de haber creado una cuenta de servicio para el proyecto de usuario correcto.

IR A LA PÁGINA CUENTAS DE SERVICIO

No se puede otorgar acceso a la cuenta de servicio. La cuenta de usuario no tiene permiso para otorgar acceso a esta versión de clave.

Agrega el rol Administrador de la organización a tu usuario o cuenta de servicio.

IR A LA PÁGINA CUENTAS DE IAM

Se destruye la versión de clave de Cloud KMS La versión de clave está destruida. Si la versión de clave se destruye, no podrás usarla para encriptar o desencriptar datos. Se debe borrar la instancia de Looker (Google Cloud Core).
Se inhabilita la versión de la clave de Cloud KMS La versión de clave está inhabilitada.

Vuelve a habilitar la versión de la clave de Cloud KMS.

IR A LA PÁGINA ADMINISTRACIÓN DE CLAVES

Permiso insuficiente para usar la clave de Cloud KMS Falta el rol cloudkms.cryptoKeyEncrypterDecrypter en el usuario o la cuenta de servicio que usas para ejecutar operaciones en instancias de Looker (Google Cloud Core), o la versión de clave de Cloud KMS no existe.

Agrega la función cloudkms.cryptoKeyEncrypterDecrypter a tu usuario o cuenta de servicio.

IR A LA PÁGINA CUENTAS DE IAM

Si el rol ya está en tu cuenta, consulta la sección Crea un llavero de claves y una clave para obtener información sobre cómo crear una versión de clave nueva. Luego, vuelve a completar los pasos de creación de la instancia.

No se encontró la clave de Cloud KMS La versión de clave no existe. Crea una versión de clave nueva y vuelve a completar los pasos de creación de la instancia. Consulta la sección Crea un llavero de claves y una clave.
La instancia de Looker (Google Cloud Core) y la versión de clave de Cloud KMS se encuentran en regiones diferentes. La versión de clave de Cloud KMS y la instancia de Looker (Google Cloud Core) deben estar en la misma región. No funciona si la versión de clave de Cloud KMS se encuentra en una región global o multirregional. Crea una versión de clave en la misma región en la que deseas crear instancias y vuelve a completar los pasos de creación de instancias. Consulta la sección Crea un llavero de claves y una clave.

¿Qué sigue?