Introducción a la CMEK

En esta página se describe cómo usar CMEK con Apigee. Para consultar las prácticas recomendadas, consulta Prácticas recomendadas para CMEK de Apigee.

Información general

De forma predeterminada, Google Cloud automáticamente cifra los datos en reposo con claves de cifrado propiedad de Google y gestionadas por Google. Si tienes requisitos de cumplimiento o normativos específicos relacionados con las claves que protegen tus datos, puedes usar claves de cifrado gestionadas por el cliente (CMEK).

Puedes consultar más información sobre el uso de CMEK en Apigee en el artículo Usar CMEK con Apigee. Para obtener más información sobre las CMEKs en general, incluido cuándo y por qué habilitarlas, consulta la documentación de Cloud Key Management Service.

El uso de claves de cifrado gestionadas por el cliente (CMEK) no proporciona necesariamente más seguridad que los mecanismos de cifrado predeterminados de Google, pero te permite controlar más aspectos del ciclo de vida y la gestión de tus claves para cumplir los requisitos de seguridad y cumplimiento.

Si necesitas más control sobre las operaciones de las claves que el que permiten las claves de encriptado y propiedad de Google , puedes usar claves de encriptado gestionadas por el cliente. Estas claves se crean y gestionan mediante Cloud Key Management Service (Cloud KMS), y se almacenan como claves de software, en un clúster de HSM o externamente.

El servicio Cloud KMS proporciona las funciones de gestión de claves.

Casos prácticos de CMEK

En esta sección se describen los casos prácticos habituales para usar CMEK con Apigee.

Rotación de claves

Rota la clave de forma automática o manual. Ten en cuenta que, cuando se rota la clave, los datos almacenados anteriormente en Apigee no se vuelven a cifrar automáticamente con la nueva versión de la clave, pero se podrá seguir accediendo a ellos siempre que la versión de la clave anterior que se usó para cifrar los datos no se inhabilite ni se destruya.

El objetivo principal de la rotación de claves es limitar la exposición de los datos a una sola clave, no sustituir por completo la versión anterior de la clave. Actualmente, Apigee no admite el recifrado al rotar las claves. En el caso de Apigee, cuando rotas una clave, solo se encripta un número limitado de datos nuevos (por ejemplo, una nueva revisión de proxy) con la nueva versión de la clave principal. La mayoría de los datos, como los datos analíticos, el disco de tiempo de ejecución y la revisión antigua del proxy, siguen usando la versión anterior de la clave. Si quieres deshacerte por completo de la versión anterior de la clave, debes volver a crear la organización apigee. En el caso de las claves de cifrado de tiempo de ejecución, si quieres deshacerte por completo de la versión anterior de la clave, debes volver a crear las instancias de tiempo de ejecución. Consulta más información en las prácticas recomendadas para usar CMEK de Apigee.

Consulta también Rotar una clave.

Eliminación e inhabilitación de claves

Cuando se inhabilita una versión de una clave, no se puede acceder a los datos de Apigee encriptados con esa versión. Para restaurar el acceso a los datos, se puede volver a habilitar la clave.

Si eliminas o inhabilitas tu clave de cifrado gestionada por el cliente, aunque solo sea para versiones anteriores, tu organización apigee empezará a fallar en función de la versión de la clave que se utilice para el cifrado. Algunas APIs dejarán de funcionar inmediatamente, ya que requieren una clave CMEK para descifrar los datos, mientras que otras empezarán a funcionar mal solo cuando se active alguna acción del sistema, como el remontaje de los discos persistentes de Compute Engine. Consulta más información en el artículo sobre la inhabilitación de claves.

Cuando se destruye una versión de una clave, los datos de Apigee encriptados con esa versión de la clave no se podrán leer ni recuperar. Esta operación es permanente e irreversible.

Consulta también:

Restauración de claves

Si eliminas o inhabilitas accidentalmente una clave o una versión anterior de una clave, debes intentar restaurarlas lo antes posible. Ten en cuenta que CMEK es una función diseñada para evitar la pérdida de datos si la clave no está disponible. Después de restaurar la clave, no se garantiza que se recupere tu organización de apigee y es posible que pierdas datos. Para obtener más información, consulta el artículo sobre cómo volver a habilitar una clave. Ponte en contacto con Cloud Customer Care de Google para saber cuál es el siguiente paso más adecuado.

Consulta también Destruir y restaurar versiones de clave.

Revocar el acceso a la clave

Si revoca el acceso del agente de servicio de Apigee a la clave mediante la gestión de identidades y accesos, Apigee no podrá acceder a ningún dato del plano de control cifrado con ninguna versión de la clave. Las operaciones de la API de Apigee que dependan de desencriptar los datos fallarán. Para restaurar el acceso a los datos, vuelve a conceder acceso a la clave. De esta forma, se restaurarán las operaciones de la API de Apigee que desencriptan los datos.

Consulta también Gestionar acceso a proyectos, carpetas y organizaciones.

EKM

Actualmente, Apigee no admite Cloud External Key Manager (Cloud EKM). Si usas Cloud EKM, hay un defecto conocido que provoca que los errores de Cloud EKM no se propaguen ni se muestren correctamente.

Seguimiento de teclas

Apigee no admite el seguimiento de claves. Si usas la función de uso de claves y te das cuenta de que no se utiliza una versión concreta de la clave, ten en cuenta que no es precisa, ya que Apigee no se ha integrado con las funciones de seguimiento de claves.

Cuotas

El uso de claves CMEK puede generar uso en algunas cuotas de Cloud KMS. Para obtener la información más reciente sobre las cuotas de Cloud KMS, consulta Cuotas.

Revocar una clave de cifrado

Si crees que tus datos de Apigee en Google Cloud se han visto comprometidos, puedes revocar tus claves de cifrado. Revoca la CMEK de tiempo de ejecución para que tu instancia de tiempo de ejecución no funcione correctamente y no pueda acceder a los datos de tu pasarela. Revoca la CMEK del plano de control para que Apigee no pueda realizar tareas de analíticas ni desplegar proxies nuevos.

Usar CMEK con Apigee

Las claves de cifrado de Apigee se usan para los datos del tiempo de ejecución y del plano de control, y se crean durante el proceso de aprovisionamiento.

Los datos del plano de control de Apigee se cifran con una clave de cifrado diferente a la de los datos de tiempo de ejecución y pueden almacenarse en regiones distintas. Según la documentación de CMEK, este cifrado se aplica únicamente a los datos en reposo, es decir, a los datos que se almacenan en el disco.

Los datos del plano de control de Apigee incluyen configuraciones de proxy (paquetes), algunos datos de configuración del entorno y datos analíticos. Los datos del tiempo de ejecución de Apigee incluyen datos de aplicaciones, como KVMs, caché y secretos de cliente, que se almacenan en la base de datos del tiempo de ejecución.

Consulta Acerca de las claves de cifrado de Apigee para ver descripciones de los tipos de claves de cifrado.

Solo puedes añadir claves de cifrado al crear la organización de Apigee. Una vez que se ha asignado una CMEK, no puedes cambiar a otra después de crear la organización.

Regiones de CMEK del plano de control de residencia de datos

En el plano de control regionalizado de Apigee, debes seleccionar dos claves de cifrado para tu plano de control. Esto se debe a que algunos de los componentes subyacentes del plano de control de Apigee siempre se encuentran en una sola región dentro de la ubicación del plano de control. Para obtener más información, consulta Regiones de residencia de datos.

Detalles Claves obligatorias

La región del plano de control es donde se ejecuta el plano de control. El plano de control de Apigee es un concepto abstracto en el que varios componentes subyacentes constituyen el plano de control de Apigee. Los datos del plano de control son la configuración del proxy y el almacenamiento de analíticas.

Otros datos del plano de control (por ejemplo, el procesamiento de analíticas y los portales) se encuentran en una subregión del plano de control.

Todos los componentes de la subregión estarán en la misma región.

Una clave para los datos del plano de control.

Una clave para los datos de la subregión del plano de control.

Restricciones de las políticas de organización

Si tienes restricciones de políticas de organización de CMEK en tu proyecto de Google Cloud , Apigee aplicará el cumplimiento de esas restricciones. Si usas Apigee a través de la Google Cloud interfaz de usuario, la CLI o directamente mediante las APIs de Apigee, se garantiza la aplicación de las políticas de CMEK. Cuando se usa la interfaz de usuario de Apigee, las restricciones de la política de organización de CMEK se validan previamente para que la interfaz de usuario pueda guiarte a la hora de elegir una configuración válida y conforme. Google Cloud

Se pueden crear restricciones de política de organización de CMEK para exigir lo siguiente:

No todas las funciones de Apigee cumplen los requisitos de CMEK. Para asegurarnos de que los proyectos que requieren CMEK no usen sin saberlo funciones que no estén protegidas con CMEK, esas funciones se inhabilitarán en los proyectos con restricciones de CMEK hasta que cumplan los requisitos. Solo se inhabilitará el uso nuevo de las funciones (crear recursos nuevos o habilitar un complemento). Las funciones y los recursos que ya estén en uso seguirán estando disponibles y se podrán editar, pero no cumplirán los requisitos de CMEK. Se inhabilitarán las siguientes funciones:

  • La interfaz de usuario clásica de Apigee no estará disponible para las organizaciones recién creadas que requieran CMEK, ya que las organizaciones de CMEK son organizaciones regionales que no se admiten en la interfaz de usuario clásica. Las organizaciones que ya tengan una podrán seguir usando la interfaz de usuario clásica. Ten en cuenta que la validación previa de CMEK no se implementará en la interfaz de usuario clásica y se basará en el error de la API. Esto significa que las organizaciones que requieran CMEK no tendrán una experiencia de usuario guiada para configurar la CMEK ni para inhabilitar las funciones que no cumplan los requisitos de CMEK.
  • Apigee Shadow API Discovery no está sujeta a la política de organización de CMEK y no cumple los requisitos de CMEK.

  • La creación de organizaciones de evaluación se bloqueará tanto con la API de organización de evaluación CreateOrganization como con el asistente de aprovisionamiento de evaluación.
  • Gemini Code Assist no está disponible.

  • La creación de organizaciones globales se bloqueará mediante la API CreateOrganization de la organización de evaluación y el asistente de aprovisionamiento de evaluación.
  • No se pueden crear instancias híbridas para la aplicación.
  • El botón Looker Studio para abrir Looker Studio con datos de Apigee se inhabilitará cuando sea necesario usar CMEK.
  • La API CreateSite bloqueará la creación de portales. Como la interfaz de usuario de los portales solo está disponible en Apigee Classic (no en la consola de Google Cloud ), y la validación previa no se implementará en la interfaz de usuario de Apigee Classic, este bloque se basará en el error de la API (el botón Crear portal de la interfaz de usuario de Apigee Classic no se inhabilitará).
  • No se puede aplicar retroactivamente el cumplimiento de los recursos actuales. Si necesitas que un recurso cumpla los requisitos, tendrás que eliminarlo y volver a crearlo.

Consulta Usar restricciones de políticas de la organización en Apigee para obtener más información sobre cómo usar restricciones de políticas de la organización con Apigee.

Cómo crear claves de cifrado

De forma predeterminada, Google gestiona la creación de claves de cifrado durante el proceso de aprovisionamiento, pero puedes crearlas tú mismo. Para obtener más información, consulta Acerca de las claves de cifrado de Apigee.

Riesgos y mitigaciones

En esta sección se describen las posibles amenazas y las medidas que puedes tomar.

  • Riesgos:
    • Compromiso de la clave: se produce cuando un atacante obtiene acceso a la clave de cifrado, posiblemente a través de vulnerabilidades en el KMS o ataques contra administradores de claves.
    • Denegación de servicio: un atacante podría interrumpir el acceso a las claves de encriptado o a los datos atacando el KMS o el sistema de almacenamiento.
    • Pérdida de la clave: si se elimina o se pierde una clave por error, se pueden perder datos o no se podrá acceder a ellos.
  • Medidas:
    • Implementa políticas de gestión de claves y control de acceso rigurosas.
    • Monitoriza los registros y la actividad de KMS para detectar comportamientos sospechosos.

Solución de problemas

En la siguiente tabla se describen algunas condiciones de error habituales que pueden surgir con los datos de configstore cifrados con CMEK, el mensaje de error aproximado que devuelve la API de Apigee y los pasos recomendados para solucionar los problemas.

Mensaje de error o síntoma Causa Pasos necesarios
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create or enable trial org. CMEK is not supported for trial orgs. To use trial orgs, adjust the gcp.restrictNonCmekServices constraint for this project. Has intentado aprovisionar una organización de prueba en la que hay una restricción de política de organización para el proyecto. CMEK no se admite en las organizaciones de prueba o evaluación. Tendrás que actualizar la restricción de la política de organización constraints/gcp.restrictNonCmekServices para quitar Apigee de la lista de servicios denegados y poder aprovisionar una organización de prueba.
Constraint constraints/gcp.restrictCmekCryptoKeyProjects violated for projects/my-project attempting to use projects/my-project/locations/my-location/keyRings/kr-1/cryptoKeys/ck-1 key. Use a key from a project that is allowed by the gcp.restrictCmekCryptoKeyProjects constraint. Has intentado aprovisionar una organización en la que existe una restricción de política de organización para el proyecto y has especificado una CryptoKey de KMS que no está en la lista de permitidas. Has definido constraints/gcp.restrictCmekCryptoKeyProjects en las políticas de la organización, por lo que debes proporcionar una clave CMEK de los proyectos permitidos que hayas indicado. Deberá proporcionar la CMEK de un proyecto permitido para poder crear una organización o instancias. También puedes actualizar la restricción de la política de organización constraints/gcp.restrictCmekCryptoKeyProjects para permitir las claves del proyecto específico Google Cloud que quieras.
Apigee does not have permission to access key "..." Un usuario ha revocado el acceso de Apigee a la clave de KMS proporcionada, es decir, quitando el rol roles/cloudkms.cryptoKeyEncrypterDecrypter. Un usuario debe comprobar los roles configurados en la clave de KMS y asegurarse de que el agente de servicio de Apigee tenga los permisos necesarios.
Unable to encrypt/decrypt data. Cloud KMS Error: "..." is not enabled, current state is: DESTROYED. Un usuario ha inhabilitado o eliminado la versión de la clave utilizada para cifrar o descifrar el fragmento de datos solicitado. Un usuario debe volver a habilitar la versión de la clave si es posible. Si se ha destruido la clave o la versión de la clave, los datos no se pueden recuperar (por diseño).
No new Analytics data for US/EU users Una de las posibles causas de este problema es que un usuario haya revocado, inhabilitado o eliminado una clave de región única. Un usuario debe volver a habilitar o restaurar el acceso a la clave de una sola región.
Control plane key "..." in region "..." is not valid for this control plane instance. Supported region(s) are "…". Un usuario ha proporcionado una clave de plano de control de una sola región en una región que no es válida o no se admite en la región o multirregión a la que sirve la instancia del plano de control. Un usuario debe proporcionar una clave en una de las regiones admitidas o elegir usar otra instancia del plano de control.
Multi-region control plane key is not valid for this control plane instance. Specify only the "apiConsumerDataEncryptionKeyName" field. Un usuario ha proporcionado una clave de plano de control multirregional en un plano de control que solo existe en una región (es decir, no es un plano de control multirregional). Un usuario debe omitir el campo de clave multirregional o elegir usar una instancia de plano de control multirregional.
Multi-region control plane key is not valid for this control plane instance. Specify a multi-region key with region "..." Un usuario ha proporcionado una clave de plano de control multirregional a la instancia de plano de control multirregional incorrecta (por ejemplo, una clave de "us" a la instancia de plano de control de "eu"). Un usuario debe usar una clave multirregional en la multirregión correcta o elegir usar otra instancia del plano de control multirregional.