De forma predeterminada, Eventarc encripta el contenido del cliente almacenado en reposo. Eventarc controla la encriptación por ti sin que debas 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 Eventarc. 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 Eventarc 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).
Las claves de encriptación administradas por el cliente se almacenan como claves de software, en un clúster de Cloud HSM o de forma externa con Cloud External Key Manager.
Cloud KMS produce registros de auditoría de Cloud cuando los recursos avanzados de Eventarc habilitan, inhabilitan o usan las claves para encriptar y desencriptar mensajes. Para obtener más información, consulta la información de registro de auditoría de Cloud KMS.
Qué se protege con CMEK
Puedes configurar CMEK para un canal que Eventarc use y encriptar los eventos que pasan por el canal.
La habilitación de un canal con CMEK protege los datos asociados con él (por ejemplo, el tema de Pub/Sub utilizado como una vía de transporte) mediante una clave de encriptación a la que solo tú puedes acceder.
Ten en cuenta que, cuando habilitas CMEK para el canal de Google en un proyecto de Google Cloud, todos los activadores de Eventarc para los tipos de eventos de Google en ese proyecto y región se encriptan por completo con esa clave CMEK. Las claves CMEK no se pueden aplicar por activador.
Antes de comenzar
Antes de usar esta función en Eventarc, debes hacer lo siguiente:
Console
-
Enable the Cloud KMS and Eventarc APIs.
- Crea un llavero de claves.
- Crea una clave para un llavero de claves específico.
gcloud
- Actualiza los componentes de
gcloud
:gcloud components update
- Habilita las APIs de Cloud KMS y de Eventarc del proyecto que almacenará tus claves de encriptación.
gcloud services enable cloudkms.googleapis.com eventarc.googleapis.com
- Crea un llavero de claves.
- Crea una clave para un llavero de claves específico.
Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca --help
.
Ten en cuenta que Cloud KMS y Eventarc son servicios regionalizados. La región de la clave de Cloud KMS y el canal de Eventarc protegido deben ser iguales.
Otorga a la cuenta de servicio de Eventarc acceso a una clave
Para otorgar a la cuenta de servicio de Eventarc acceso a la clave de Cloud KMS, agrega la cuenta de servicio como principal de la clave y otorga a la cuenta de servicio la función: Encriptador/Desencriptador de CryptoKeys de Cloud KMS
Console
Cuando habilitas CMEK para un canal de Google o de terceros con la consola, se te solicitará que otorgues el rol de Encriptador/Desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio. Para obtener más información, en este documento, consulta Habilita CMEK para los tipos de eventos de Google o Habilita CMEK para un canal de eventos de terceros.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Reemplaza lo siguiente:
KEY_NAME
: el nombre de la clave. Por ejemplo,my-key
KEY_RING
: es el nombre del llavero de claves. Por ejemplo,my-keyring
LOCATION
: es la ubicación de la clave. Por ejemplo,us-central1
SERVICE_AGENT_EMAIL
: la dirección de correo electrónico de la cuenta de servicio con el roleventarc.serviceAgent
.Por ejemplo,
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
. Para obtener más información, consulta Agentes de servicio.
Habilita CMEK para los tipos de eventos de Google
Eventarc activa que los tipos de rutas de eventos de Google publique eventos en un canal virtual llamado Canal de Google o regionales. Este canal virtual está disponible en todas las regiones de Eventarc.
Cuando habilitas CMEK para el canal de Google en un proyecto de Google Cloud, todos los activadores de Eventarc para los tipos de eventos de Google en ese proyecto y región se encriptan por completo con esa clave CMEK. Puedes agregar varias claves CMEK y asociar cada una con una región específica para el canal de Google. Las claves CMEK no se pueden aplicar por activador.
Console
En la consola de Google Cloud, ve a la página Eventarc> Canales.
Haz clic en un canal con un proveedor de Google.
En la página Editar canal, elige la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
Haz clic en Agregar clave de encriptación.
Elige una Región y, en la lista Clave de encriptación de CMEK, elige un llavero de claves que hayas creado para la región. Ten en cuenta que solo puedes agregar una clave de encriptación por región para un canal.
Opcional: Para ingresar de forma manual el nombre del recurso de la clave, en la lista clave de encriptación CMEK, haz clic en ¿No encuentras tu clave? Escribe el nombre del recurso de la clave y, luego, el nombre en el formato especificado.
Si se te solicita, otorga el rol
cloudkms.cryptoKeyEncrypterDecrypter
a la cuenta de servicio de Eventarc con el roleventarc.serviceAgent
.Opcional: Haz clic en Agregar clave de encriptación para agregar otro llavero de claves que creaste para una región diferente.
Haz clic en Guardar.
gcloud
gcloud eventarc google-channels update \ --location=LOCATION \ --crypto-key=KEY
Reemplaza lo siguiente:
LOCATION
: la ubicación del canal de Google que se protegerá. Debe coincidir con la ubicación de la clave utilizada.KEY
: Es el nombre de la clave de Cloud KMS, el cual está calificado por completo y es en formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Si creas activadores de Pub/Sub con tus propios temas existentes, para una protección completa de CMEK, te recomendamos que también configures la clave KMS sobre el tema. Para obtener más información, consulta Configura temas de Pub/Sub.
Verifica el uso de Cloud KMS
Para verificar que el canal ahora cumpla con CMEK, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Activadores> de Eventarc
Haz clic en un activador que enumere una fuente de Google Cloud como su Proveedor de eventos y una Región que protegiste con CMEK.
En la página Detalles del activador, el estado Encriptación muestra el mensaje
Events encrypted using Customer-managed encryption keys
.
gcloud
gcloud eventarc google-channels describe \ --location=LOCATION
El resultado debería ser similar al siguiente ejemplo:
cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig updateTime: '2022-06-28T17:24:56.365866104Z'
El valor del cryptokeyName
muestra la clave de Cloud KMS que se usa para el canal de Google.
Habilita CMEK para un canal de terceros
Un canal de Eventarc para terceros es un recurso mediante el cual las entidades que no son de Google Cloud que ofrecen una fuente de Eventarc pueden interactuar con los destinos. Este canal es específico de una región y solo puedes agregar una clave por canal de terceros.
Para habilitar CMEK en un canal de terceros, haz lo siguiente:
Console
En la consola de Google Cloud, ve a la página Eventarc> Canales.
Haz clic en un canal con un proveedor externo.
En la página Detalles del canal, haz clic en Editar.
En la página Editar canal, elige la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
En la lista Clave de encriptación de CMEK, elige un llavero de claves que creaste para la región. Ten en cuenta que solo puedes agregar una clave de encriptación por región para un canal.
Opcional: Para escribir de forma manual el nombre del recurso de la clave que quieres usar, En la lista Claves de encriptación de CMEK, haz clic en Escribir la clave de forma manual y, luego, escribe el nombre de la clave en el formato especificado.
Si se te solicita, otorga el rol
cloudkms.cryptoKeyEncrypterDecrypter
a la cuenta de servicio de Eventarc con el roleventarc.serviceAgent
.Haz clic en Guardar.
gcloud
gcloud eventarc channels update CHANNEL_NAME \ --location=LOCATION \ --crypto-key=KEY
Reemplaza lo siguiente:
CHANNEL_NAME
: el nombre del canal de terceros. Para crear un canal de terceros nuevo, consulta Crea un canal.LOCATION
: la ubicación del canal de terceros que se protegerá. Debe coincidir con la ubicación de la clave.KEY
: Es el nombre de la clave de Cloud KMS, el cual está calificado por completo y es en formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.
Verifica el uso de Cloud KMS
Para verificar que el canal ahora cumpla con CMEK, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Activadores> de Eventarc
Haz clic en un activador con una fuente de terceros como su proveedor de eventos y una región que hayas protegido con CMEK.
En la página Detalles del activador, el estado de Encriptación muestra el mensaje
Events encrypted using Customer-managed encryption keys
.
gcloud
gcloud eventarc channels describe CHANNEL_NAME \ --location=LOCATION
El resultado debería ser similar al siguiente ejemplo:
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/LOCATION/googleChannelConfig pubsubTopic: projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID state: ACTIVE uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3 updateTime: '2022-06-28T18:09:18.650727516Z'
En cryptokeyName
, se muestra la clave de Cloud KMS que se usa para el canal de terceros.
Inhabilita CMEK
Puedes inhabilitar la protección con CMEK asociada a un canal. Los eventos que se entregan en dichos canales están protegidos por Claves de Google y administradas por Google. Para borrar la protección de CMEK asociada a un canal, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Eventarc> Canales.
Según el tipo de canal, haz lo siguiente:
Canal de Google
- Haz clic en un canal con un Proveedor de Google.
- En la página Editar canal, mantén el cursor sobre la lista de claves de encriptación de CMEK para ver el botón Borrar elemento .
- Haz clic en Eliminar elemento
- Haz clic en Guardar.
CANAL DE TERCEROS
- Haz clic en un canal con un proveedor externo.
- En la página Detalles del canal, haz clic en Editar.
- En la página Editar canal, desmarca la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
- Haz clic en Guardar.
gcloud
Según el tipo de canal, haz lo siguiente:
Canal de Google
gcloud eventarc google-channels \ update --clear-crypto-key
CANAL DE TERCEROS
gcloud eventarc channels CHANNEL_NAME \ update --clear-crypto-key
Inhabilita y habilita claves de Cloud KMS
Una versión de clave almacena el material de clave criptográfica que usas para encriptar, desencriptar, firmar y verificar datos. Puedes inhabilitar esta versión de clave para que no se pueda acceder a los datos encriptados con la clave.
Cuando Eventarc no puede acceder a Cloud KMS, la publicación de eventos con canales presenta errores FAILED_PRECONDITION
y la entrega de eventos se detiene. Puedes habilitar una clave en el estado Inhabilitada para que se pueda volver a acceder a los datos encriptados.
Inhabilita las claves de Cloud KMS
Si quieres evitar que Eventarc use la clave para encriptar o desencriptar los datos de tu evento, haz lo siguiente:
- Recomendaciones inhabilita la versión de clave que configuraste para el canal. Esto afecta solo a los canales y activadores de Eventarc que están asociados con la clave específica.
- opcional: Revoca el rol
cloudkms.cryptoKeyEncrypterDecrypter
de la cuenta de servicio de Eventarc. Esto afecta a todos los canales y activadores de Eventarc del proyecto que admiten eventos encriptados con CMEK.
Aunque ninguna de las dos operaciones garantiza la revocación de acceso instantánea, los cambios en Identity and Access Management (IAM) se suelen propagar más rápido. Para obtener más información, consulta Coherencia de recursos de Cloud KMS y Propagación del cambio de acceso.
Vuelve a habilitar las claves de Cloud KMS
Para reanudar la entrega y publicación de eventos, restablece el acceso a Cloud KMS.
Precios
Esta integración no genera costos adicionales más allá de las operaciones de clave que se facturan en tu proyecto de Google Cloud. El uso de CMEK en un canal genera cargos por el acceso al Servicio de Cloud KMS según los precios de Pub/Sub.
Para obtener más información sobre la información de precios más actualizada, consulta Precios de Cloud KMS.