Introducción a CMEK

En esta página, se describe el uso de CMEK con Apigee. Para conocer las prácticas recomendadas, consulta Prácticas recomendadas para CMEK de Apigee.

Descripción general

De forma predeterminada, Google Cloud encripta automáticamente los datos cuando están en reposo con claves de encriptación que son propiedad de Google y las administra. Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar las claves de encriptación administradas por el cliente (CMEK).

Puedes obtener más información sobre el uso de CMEK para Apigee en Usa CMEK con Apigee. 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.

El uso de claves de encriptación administradas por el cliente (CMEK) no necesariamente proporciona más seguridad que los mecanismos de encriptación predeterminados de Google. Sin embargo, te permite controlar más aspectos del ciclo de vida y la administración de las claves para cumplir con los requisitos de seguridad y cumplimiento.

Si necesitas obtener más control sobre las operaciones de clave que las claves de encriptación propiedad de Google y administradas por Google , puedes usar claves de encriptación administradas por el cliente. Estas claves se crean y administran a través de Cloud Key Management Service (Cloud KMS), y almacenas las claves como claves de software en un clúster de HSM o externamente.

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

Casos de uso de CMEK

En esta sección, se describen casos de uso típicos para usar la CMEK con Apigee.

Rotación de claves

Rota la clave de forma manual o automática. Ten en cuenta que, cuando se rota la clave, los datos almacenados antes en Apigee no se vuelven a encriptar de forma automática con la versión de clave nueva, sino que se podrá seguir accediendo a ellos mientras la versión de clave anterior usada para encriptar los datos no esté inhabilitada ni destruida.

El propósito principal de la rotación de claves es limitar la exposición de los datos a una sola clave, no reemplazar por completo la versión anterior de la clave. Actualmente, Apigee no admite la reencriptación tras la rotación de claves. En el caso específico de Apigee, cuando rotas una clave, solo se encriptará una cantidad limitada de datos nuevos (por ejemplo, una revisión de proxy nueva) con la nueva versión de clave primaria. La mayoría de los datos, como los datos de análisis, el disco de tiempo de ejecución y la revisión de proxy anterior, siguen usando la versión de clave anterior. Si quieres deshacerte por completo de la versión anterior de la clave, debes volver a crear la organización de apigee. En el caso de las claves de encriptación de tiempo de ejecución, si deseas deshacerte por completo de la versión anterior de la clave, debes volver a crear las instancias de tiempo de ejecución. Consulta las prácticas recomendadas para CMEK de Apigee para obtener más detalles.

Consulta también: Rota una clave

Inhabilitación y eliminación de claves

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

Cuando borras o inhabilitas tu clave de CMEK, incluso solo para versiones anteriores, tu organización de apigee comenzará a funcionar mal según la versión de clave que se use para la encriptación. Algunas APIs dejarán de funcionar inmediatamente, ya que requieren una clave de CMEK para desencriptar datos, mientras que algunas funciones comenzarán a fallar solo cuando se active alguna acción del sistema, como el reacoplamiento de los discos persistentes de Compute Engine. Consulta Inhabilitación de claves para obtener más información.

Cuando se destruye una versión de clave, cualquier dato de Apigee encriptado con esa versión de clave se volverá ilegible y no se podrá recuperar. Esta es una operación irreversible y permanente.

También consulta los siguientes vínculos:

Restauración de claves

Si borras o inhabilitas accidentalmente una clave o una versión anterior, debes intentar restablecerla lo antes posible. Ten en cuenta que la CMEK es una función diseñada para la pérdida de datos si la clave no está disponible. Después de restablecer la clave, no se garantiza que se recupere tu organización de apigee y es posible que pierdas datos. Consulta Vuelve a habilitar una clave para obtener más detalles. Comunícate con el equipo de Atención al cliente de Google Cloud para determinar cuál es el mejor paso a seguir.

Consulta también: Destruye y restablece versiones de claves

Revoca el acceso a la clave

Si revocas el acceso del agente de servicio de Apigee a la clave con la IAM, Apigee no podrá acceder a ningún dato del plano de control encriptado por ninguna versión de clave. Las operaciones de la API de Apigee que dependen de la desencriptación de los datos fallarán. El acceso a los datos se puede restablecer si vuelves a otorgar el acceso a la clave y se restablecerán las operaciones de la API de Apigee que desencripten los datos.

Consulta también: Administra el acceso a proyectos, carpetas y organizaciones

EKM

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

Seguimiento de claves

Apigee no admite el seguimiento de claves. Si usas la función para ver el uso de claves y te das cuenta de que no se usa una versión determinada de la clave, ten en cuenta que no es preciso, ya que Apigee no se integró con las funciones de seguimiento de claves.

Cuotas

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

Revoca la clave de encriptación

Si crees que tus datos en Apigee en Google Cloud están vulnerados, puedes revocar tus claves de encriptación. Revoca la CMEK del entorno de ejecución para que la instancia de entorno de ejecución funcione de forma incorrecta y no pueda acceder a los datos de la puerta de enlace. Revoca la CMEK del plano de control para que Apigee no pueda realizar estadísticas ni implementar proxies nuevos.

Usa CMEK con Apigee

Las claves de encriptación de Apigee se usan para los datos del entorno 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 encriptan con una clave de encriptación diferente de los datos del entorno de ejecución y se pueden almacenar en regiones diferentes. Según la documentación de CMEK, esta encriptación se aplica solo a los datos en reposo, es decir, los datos que se almacenan en el disco.

Los datos del plano de control de Apigee incluyen parámetros de configuración del proxy (paquetes), algunos datos de configuración del entorno y datos de estadísticas. Los datos del entorno de ejecución de Apigee incluyen datos de aplicación, como KVM, caché y secretos del cliente, que luego se almacenan en la base de datos del entorno de ejecución.

Consulta Acerca de las claves de encriptación de Apigee para obtener descripciones de los tipos de claves de encriptación.

Puedes agregar claves de encriptación solo cuando se crea la organización de Apigee. Una vez que se asigna una CMEK, no puedes cambiar a una CMEK diferente después de la creación de la organización.

Regiones de CMEK del plano de control de residencia de datos

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

Detalles Claves obligatorias

La región del plano de control es donde se ejecuta el plano de control. El plano de control en 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 el almacenamiento de estadísticas y configuración del proxy.

Otros datos del plano de control (p. ej., procesamiento de estadísticas, 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 que otros.

Una clave para los datos del plano de control.

Una clave para los datos subregionales del plano de control.

Restricciones de las políticas de la organización

Si tienes restricciones de políticas de la 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 IU, la CLI o directamente a través de las APIs de Apigee, se garantiza la aplicación de las políticas de CMEK. Cuando usas la IU de Google Cloud Apigee, las restricciones de políticas de la organización de CMEK se validan previamente para que la IU pueda guiarte en la elección de una configuración válida y de cumplimiento.

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

Actualmente, no todas las funciones de Apigee cumplen con CMEK. Para garantizar que los proyectos que requieren CMEK no usen sin saberlo funciones que no están protegidas por CMEK, esas funciones se inhabilitarán para los proyectos con restricciones de CMEK hasta que cumplan con los requisitos. Solo se inhabilitarán los usos nuevos de las funciones (crear recursos nuevos o habilitar un complemento). Las funciones y los recursos que ya están en uso seguirán disponibles y editables, pero no cumplirán con los requisitos de la CMEK. Se inhabilitarán las siguientes funciones:

  • Apigee Shadow API Discovery no está sujeto a la política de la organización de CMEK y no cumple con los requisitos de CMEK.

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

  • La API de la organización de evaluación CreateOrganization y el asistente de aprovisionamiento de evaluación bloquearán la creación de organizaciones globales.
  • La creación de instancias híbridas no está disponible para la aplicación.
  • El botón Looker Studio para abrir Looker Studio con datos de Apigee se inhabilitará cuando se requiera CMEK.
  • La aplicación retroactiva del cumplimiento para los recursos existentes no está disponible. Deberás borrar y volver a crear los recursos si necesitas que un recurso existente cumpla con los requisitos.

Consulta Usa restricciones de políticas de la organización en Apigee para obtener más información sobre el uso de restricciones de políticas de la organización con Apigee.

Cómo crear claves de encriptación

De forma predeterminada, Google administra la creación de claves de encriptación durante el proceso de aprovisionamiento. Sin embargo, puedes crearlos tú mismo. Para obtener más información, consulta Acerca de las claves de encriptación de Apigee.

Riesgos y mitigaciones

En esta sección, se describen las posibles amenazas y las acciones que puedes realizar.

  • Riesgos:
    • Compromiso de clave: Ocurre cuando un atacante obtiene acceso a la clave de encriptación, potencialmente a través de vulnerabilidades en el KMS o ataques contra administradores de claves.
    • Denegación del servicio: Un atacante podría interrumpir el acceso a las claves o los datos de encriptación mediante el ataque al KMS o al sistema de almacenamiento.
    • Pérdida de clave: La eliminación o pérdida accidental de claves podría provocar la pérdida de datos o de la accesibilidad.
  • Mitigaciones:
    • Implementa políticas de control de acceso y administración de claves sólidas.
    • Supervisar los registros y la actividad de KMS en busca de comportamientos sospechosos.

Soluciona problemas

En la tabla siguiente, se describen algunas condiciones de error comunes que pueden surgir con los datos del almacén de configuración encriptado con CMEK, el mensaje de error aproximado que muestra la API de Apigee y los pasos recomendados para solucionar problemas.

Mensaje de error o síntoma Causa Pasos
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. Intentaste aprovisionar una organización de prueba en la que existe una restricción de la política de la organización para el proyecto. CMEK no es compatible con las organizaciones de prueba o evaluación. Deberás actualizar la restricción de política de la 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. Intentaste aprovisionar una organización en la que existe una restricción de la política de la organización para el proyecto y especificaste una CryptoKey de KMS que no está incluida en la lista de entidades permitidas. Configuraste constraints/gcp.restrictCmekCryptoKeyProjects en las políticas de la organización, que requieren que proporciones una clave CMEK de los proyectos permitidos que enumeraste. Deberás proporcionar la CMEK de un proyecto permitido para poder crear una organización o instancias. Como alternativa, puedes actualizar la restricción de la política de la organización constraints/gcp.restrictCmekCryptoKeyProjects para permitir claves del proyecto Google Cloud específico que desees.
Apigee does not have permission to access key "..." Un usuario revocó el acceso de Apigee a la clave de KMS proporcionada, es decir, quitó el rol roles/cloudkms.cryptoKeyEncrypterDecrypter. Un usuario debe verificar 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 inhabilitó o borró la versión de clave que se usa para encriptar o desencriptar los datos solicitados. Si es posible, un usuario debe volver a habilitar la versión de clave. Si se destruyó la clave o la versión de clave, no se pueden recuperar los datos (por diseño).
No new Analytics data for US/EU users Una de las posibles causas de este problema puede ser una clave de región única que se revocó, inhabilitó o borró a un usuario. Un usuario debe volver a habilitar o restablecer el acceso a la clave de región única.
Control plane key "..." in region "..." is not valid for this control plane instance. Supported region(s) are "…". Un usuario proporcionó una sola clave del plano de control de una región en una región que no es válida o no es compatible con la región o multirregión entregada por la instancia del plano de control. Un usuario debe proporcionar una clave en una de las regiones compatibles o usar una instancia de plano de control diferente.
Multi-region control plane key is not valid for this control plane instance. Specify only the "apiConsumerDataEncryptionKeyName" field. Un usuario proporcionó una clave del plano de control multirregional en un plano de control que existe solo en una región (es decir, no es un plano de control multirregional). Un usuario debe omitir el campo de clave multirregional o 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 proporcionó una clave del plano de control multirregional a la instancia del plano de control multirregional incorrecta (p. ej., una clave “us” a la instancia del plano de control “eu”) Un usuario debe usar una clave multirregional en la multirregión adecuada o elegir usar una instancia de plano de control multirregional diferente.