En esta página, se describe cómo encriptar el contenido almacenado en los complementos de Service Extensions con claves de encriptación administradas por el cliente (CMEK).
Descripción general
De forma predeterminada, Service Extensions encripta el contenido del cliente en reposo. Service Extensions controla la encriptación por ti sin que tengas que realizar ninguna acción adicional. Esta opción se denomina encriptación predeterminada de Google.
Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluido Service Extensions. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.
Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Service Extensions es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).
Todas las operaciones criptográficas se facturan al Google Cloud proyecto que posee la clave, independientemente del tipo de clave. Para obtener información sobre los precios, consulta Precios de Cloud KMS.
Crea una clave y otorga permisos
En las siguientes instrucciones, se explica cómo crear una clave para un complemento y otorgar permisos para encriptar y desencriptar datos del complemento con la clave.
En el Google Cloud proyecto en el que deseas administrar tus claves, haz lo siguiente:
Para poder crear una clave, habilita la API de Cloud Key Management Service.
Crea un llavero de claves y una clave con una de las siguientes opciones:
La ubicación de la clave de Cloud KMS debe coincidir con la ubicación del complemento que deseas encriptar.
La cuenta de servicio de Service Extensions debe existir en tu proyecto de Service Extensions. El nombre de la cuenta de servicio es
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com, dondePROJECT_NUMBERes el número del proyecto del Google Cloud proyecto en el que se ejecuta Service Extensions.La cuenta de servicio se crea automáticamente cuando creas tu primer complemento en tu proyecto de Service Extensions. Si aún no creaste un complemento en tu proyecto, crea la cuenta de servicio ejecutando el siguiente comando:
gcloud beta services identity create \ --service=networkactions.googleapis.com \ --project=PROJECTReemplaza PROJECT por el ID del proyecto en el que se ejecuta Service Extensions.
Otorga la función Encriptador/Desencriptador de CryptoKey de Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) a la cuenta de servicio de Service Extensions en la clave que creaste.Console
En la consola de Google Cloud , ve a la página Administración de claves.
Selecciona la clave que creaste.
Otorga acceso a la cuenta de servicio de Service Extensions:
- Selecciona Mostrar panel de información.
- Haz clic en Agregar miembro.
- Agrega la cuenta de servicio de Service Extensions. La
cuenta de servicio es
service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com. - En Selecciona un rol, selecciona Cloud KMS > Encriptador/Desencriptador de CryptoKey de Cloud KMS
- Haz clic en Guardar.
Repite el paso anterior para otorgar acceso a la cuenta del creador del complemento.
Vuelve a la página Administración de claves y selecciona la clave de nuevo.
Selecciona Mostrar panel de información. Verás las funciones en la columna Función/Miembro.
gcloud
Para otorgar acceso a la cuenta de servicio de Service Extensions ejecuta el
gcloud kms keys add-iam-policy-bindingcomando:gcloud kms keys add-iam-policy-binding [--project=PROJECT] KEY_NAME \ --location LOCATION --keyring=KEYRING_NAME \ --member=serviceAccount:service-PROJECT-NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypterReemplaza lo siguiente:
PROJECT: el ID del proyecto que contiene la claveKEY_NAME: el nombre de la claveLOCATION: es la ubicación de la clave.KEYRING_NAME: es el nombre del llavero de clavesPROJECT-NUMBER: es el número del proyecto del Google Cloud proyecto
Repite el paso anterior con
memberconfigurado en la cuenta del creador del complemento.
Cuando crees o actualices un complemento, especifica la clave CMEK. La clave proporciona encriptación para la imagen del complemento y los datos de configuración. Otros datos del complemento están protegidos por la encriptación predeterminada de Google.
Reencriptación automática
Cuando cambia la versión principal de la clave de KMS (ya sea por un cambio manual del usuario o por una rotación automática), los datos del complemento protegidos por la clave se vuelven a encriptar automáticamente con la nueva clave versión.
Seguimiento de claves
Puedes usar el seguimiento de claves para enumerar los recursos del complemento que protege una clave. Para obtener más información, consulta Cómo ver el uso de claves.
Cuotas de Cloud Key Management Service y Service Extensions
Cuando usas claves CMEK en Service Extensions, como en las siguientes operaciones, tus proyectos pueden consumir cuotas de solicitudes criptográficas de Cloud KMS:
- Crear o actualizar un complemento protegido por CMEK
- Agregar versiones nuevas o cambiar la versión principal de los complementos protegidos por CMEK
- Enumerar las versiones de los complementos protegidos por CMEK que tienen configurado el campo
plugin_config_data - Adjuntar un complemento a la extensión
Los complementos adjuntos también generan operaciones de desencriptación con el tiempo.
Si usas claves de hardware (Cloud HSM) o externas (Cloud EKM), las operaciones de encriptación y desencriptación con claves CMEK afectan las cuotas de Cloud KMS.
Quita el acceso a un complemento encriptado con CMEK
Existen varias formas de quitar el acceso a un complemento encriptado con una CMEK:
- Revoca la función Encriptador/Desencriptador de CryptoKey de Cloud KMS de la cuenta de servicio de Service Extensions con la Google Cloud consola o la CLI de gcloud. Los cambios en los permisos entran en vigencia en cuestión de segundos, pero pueden tardar decenas de minutos hasta que todas las réplicas de entrega de un complemento dejen de entregar tráfico después de que se revoca su clave.
- Inhabilita temporalmente la clave de encriptación administrada por el cliente.
- Destruye de forma permanente la clave CMEK.
Te recomendamos revocar los permisos de la cuenta de servicio de Service Extensions antes de inhabilitar o destruir una clave.
Implicaciones de quitar el acceso
Los datos protegidos por CMEK consisten en imágenes descargadas de Artifact Registry, así como en cualquier dato de configuración del complemento que se proporcione directamente (a través del campo plugin_config_data).
Después de inhabilitar o destruir la clave de encriptación de un complemento, no se podrá acceder a todos los datos del complemento protegidos por CMEK en cuestión de minutos. Pueden tardar decenas de minutos hasta que todas las réplicas de entrega de un complemento dejen de entregar tráfico después de que se revoca su clave.
Los metadatos del complemento, como el nombre, la descripción, las etiquetas o la configuración de registro, siguen siendo accesibles.
Como consecuencia, quitar el acceso a una clave que protege un complemento activo (es decir, un complemento adjunto a una extensión) hace que el complemento no pueda entregar tráfico. Todas las solicitudes al complemento fallan.
Cuando falla la invocación del complemento, el comportamiento de la extensión depende del campo fail_open:
- Si el campo está configurado como
true, la solicitud continúa al servicio de destino sin proporcionar ninguna indicación de que falló la invocación del complemento. - Si el campo está configurado como
false, la solicitud no llega al servicio de destino.
Limitaciones
La protección de CMEK establecida en un complemento se limita a Service Extensions.
Para proteger los recursos del complemento en otros productos de Google, habilita CMEK a través de ellos. Para las imágenes de complementos subidas a Artifact Registry, configura CMEK para Artifact Registry. Para proteger los registros generados por tu complemento, configura CMEK para Cloud Logging.
No puedes cambiar el modo de encriptación (administrado por Google o CMEK) de un complemento. Sin embargo, puedes actualizar el complemento para usar una clave de KMS diferente.
Solo se admiten complementos regionales. Además, los complementos solo se pueden encriptar con una clave en la misma región que el complemento.
Próximos pasos
- Obtén más información para crear un complemento.
- Más información sobre CMEK.
- Obtén más información sobre la encriptación predeterminada en reposo.