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.
Qué se protege con CMEK
Puedes configurar CMEK para encriptar los mensajes de eventos que pasan por los siguientes recursos:
MessageBus
: Un bus de Eventarc AdvancedPipeline
: Una canalización de Eventarc AdvancedGoogleApiSource
: Es un recurso que representa una suscripción a eventos de la API de Google para un autobús en particular.
Para obtener más información, consulta la descripción general de Eventarc Advanced.
Cuando habilitas CMEK para un recurso, se protegen los datos asociados con el recurso en esa región mediante una clave de encriptación a la que solo tú puedes acceder.
Cloud KMS y Eventarc son servicios regionalizados. La región de la clave de Cloud KMS y el recurso avanzado de Eventarc protegido deben ser iguales.
Antes de comenzar
Antes de usar esta función en Eventarc, debes realizar las siguientes acciones:
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
.
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 el rol Encriptador/Desencriptador de CryptoKeys de Cloud KMS:
Console
Cuando habilitas CMEK para un bus o una canalización con la consola de Google Cloud, se te solicita 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 un bus o Habilita CMEK para un canal.
gcloud
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring KEY_RING \ --location REGION \ --member serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Reemplaza lo siguiente:
KEY_NAME
: Es el nombre de la clave, por ejemplo,my-key
.KEY_RING
: Es el nombre del llavero de claves, por ejemplo,my-keyring
.REGION
: 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 un bus
Cuando habilitas CMEK para un bus de Eventarc Advanced, todos los mensajes que pasan por el bus se encriptan por completo con esa clave CMEK.
Console
En la consola de Google Cloud, ve a la página Eventarc > Bus.
Puedes crear un bus o, si quieres actualizar uno, haz clic en su nombre.
En la página Detalles del bus, haz clic en
Editar.En la página Editar bus, en Encriptación, selecciona Clave de Cloud KMS.
En la lista Tipo de clave, selecciona un método para administrar tus claves.
Puedes administrar tus claves de forma manual o usar Autokey, que te permite generar llaveros y claves a pedido. Si la opción de Autokey está inhabilitada, aún no está integrada en el tipo de recurso actual.
Selecciona una clave administrada por el cliente.
Opcional: Para ingresar de forma manual el nombre del recurso de la clave, en la lista Selecciona una clave administrada por el cliente, haz clic en Ingresar 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
al agente de servicio de Eventarc.Haz clic en Guardar.
gcloud
Usa el comando gcloud beta eventarc message-buses update
para habilitar CMEK en tu bus:
gcloud beta eventarc message-buses update BUS_NAME \ --location=REGION \ --crypto-key=KEY
Reemplaza lo siguiente:
BUS_NAME
: El ID o el identificador completamente calificado de tu busREGION
: Una ubicación de Eventarc Advanced compatibleKEY
: Es el nombre de la clave de Cloud KMS, el cual está calificado por completo y es en formatoprojects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.El
REGION
de la clave debe coincidir con la ubicación del bus que se protegerá.
Verifica el uso de Cloud KMS
Verifica que el bus ahora cumpla con CMEK.
Console
En la consola de Google Cloud, ve a la página Eventarc > Bus.
Haz clic en el nombre del bus que protegiste con CMEK.
En la página Detalles del bus, el estado Encriptación muestra el mensaje
Event messages encrypted using customer-managed encryption keys
.
gcloud
Usa el comando gcloud beta eventarc message-buses describe
para describir el bus:
gcloud beta eventarc message-buses describe BUS_NAME \ --location=REGION
El resultado debería ser similar al siguiente ejemplo:
cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME name: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME updateTime: '2022-06-28T17:24:56.365866104Z'
El valor de cryptokeyName
muestra la clave de Cloud KMS que se usa para el bus.
Inhabilita CMEK para un bus
Puedes inhabilitar la protección con CMEK asociada a un bus. Los eventos que se entregan a través del bus están protegidos por claves de Google y administradas por Google.
Console
En la consola de Google Cloud, ve a la página Eventarc > Bus.
Haz clic en el nombre del bus.
En la página Detalles del bus, haz clic en
Editar.En la página Editar bus, desmarca la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
Haz clic en Guardar.
gcloud
Usa el comando gcloud beta eventarc message-buses update
para inhabilitar CMEK en tu bus:
gcloud beta eventarc message-buses update BUS_NAME \ --location=REGION \ --clear-crypto-key
Habilita CMEK para una canalización
Cuando habilitas CMEK para una canalización de Eventarc Advanced, todos los mensajes que pasan por la canalización se encriptan por completo con esa clave CMEK.
Console
En la consola de Google Cloud, ve a la página Eventarc > Canales.
Puedes crear una canalización o, si quieres actualizar una, haz clic en su nombre.
En la página Detalles de la canalización, haz clic en
Editar.En la página Editar canalización, en Encriptación, selecciona Clave de Cloud KMS.
En la lista Tipo de clave, selecciona un método para administrar tus claves.
Puedes administrar tus claves de forma manual o usar Autokey, que te permite generar llaveros y claves a pedido. Si la opción Autokey está inhabilitada, aún no está integrada en el tipo de recurso actual.
Selecciona una clave administrada por el cliente.
Opcional: Para ingresar de forma manual el nombre del recurso de la clave, en la lista Selecciona una clave administrada por el cliente, haz clic en Ingresar 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
al agente de servicio de Eventarc.Haz clic en Guardar.
gcloud
Usa el comando gcloud beta eventarc pipelines update
para habilitar CMEK en una canalización:
gcloud beta eventarc pipelines update PIPELINE_NAME \ --location=REGION \ --crypto-key=KEY
Reemplaza lo siguiente:
PIPELINE_NAME
: El ID o el identificador completamente calificado de tu canalizaciónREGION
: Una ubicación de Eventarc Advanced compatibleKEY
: Es el nombre de la clave de Cloud KMS, el cual está calificado por completo y es en formatoprojects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.El
REGION
de la clave debe coincidir con la ubicación de la canalización que se protegerá.
Verifica el uso de Cloud KMS
Verifica que la canalización ahora cumpla con CMEK.
Console
En la consola de Google Cloud, ve a la página Eventarc > Canales.
Haz clic en el nombre de la canalización que protegiste con CMEK.
En la página Detalles de la canalización, el estado Encriptación muestra el mensaje
Event messages encrypted using customer-managed encryption keys
.
gcloud
Usa el comando
gcloud beta eventarc pipelines describe
para verificar la CMEK de tu canalización:
gcloud beta eventarc pipelines describe PIPELINE_NAME \ --location=REGION
El resultado debería ser similar al siguiente ejemplo:
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME destinations: ... name: projects/PROJECT_ID/locations/REGION/pipelines/PIPELINE_NAME uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3 updateTime: '2022-06-28T18:09:18.650727516Z'
El valor de cryptokeyName
muestra la clave de Cloud KMS que se usa para la canalización.
Inhabilita CMEK para una canalización
Puedes inhabilitar la protección con CMEK asociada a una canalización. Los eventos que se entregan a través de la canalización siguen protegidos por claves de Google y administradas por Google.
Console
En la consola de Google Cloud, ve a la página Eventarc > Canales.
Haz clic en el nombre de la canalización.
En la página Detalles de la canalización, haz clic en
Editar.En la página Editar canalización, desmarca la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
Haz clic en Guardar.
gcloud
Usa el comando
gcloud beta eventarc pipelines update
para inhabilitar CMEK en tu canalización:
gcloud beta eventarc pipelines update PIPELINE_NAME \ --location=REGION \ --clear-crypto-key
Habilita CMEK para las fuentes de la API de Google
Cuando habilitas CMEK para un recurso GoogleApiSource
, todos los mensajes que se recopilan para ese recurso se encriptan por completo con la clave CMEK.
Console
En la consola de Google Cloud, ve a la página Eventarc > Bus.
Puedes crear un bus o, si quieres actualizar uno, haz clic en su nombre.
En la página Detalles del bus, haz clic en
Editar.Para agregar una fuente de mensajes, haz clic en
Agregar fuente.Si ya existe una fuente de mensajes, primero debes borrarla y, luego, agregar una fuente de mensajes nueva.
En el panel Add message source, para el proveedor de mensajes de la API de Google, acepta el valor predeterminado de
google-api-source
.En Encriptación, selecciona Clave de Cloud KMS y haz lo siguiente:
En la lista Tipo de clave, selecciona un método para administrar tus claves.
Puedes administrar tus claves de forma manual o usar Autokey, que te permite generar llaveros y claves a pedido. Si la opción Autokey está inhabilitada, aún no está integrada en el tipo de recurso actual.
En Selecciona una clave administrada por el cliente, selecciona una clave.
Debes seleccionar una región para poder ver las claves administradas por el cliente.
Opcional: Para ingresar de forma manual el nombre del recurso de la clave, en la lista Selecciona una clave administrada por el cliente, haz clic en Ingresar 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
al agente de servicio de Eventarc.
Haz clic en Crear.
Esto permite la recopilación automática de eventos que provienen directamente de las fuentes de Google, y todos los mensajes de eventos se encriptan por completo con la clave CMEK.
Solo se publican los eventos de los recursos del mismo proyecto de Google Cloud que el
GoogleApiSource
. Para obtener más información, consulta Cómo publicar eventos desde fuentes de Google.Haz clic en Guardar.
gcloud
Usa el comando gcloud beta eventarc google-api-sources update
para habilitar CMEK para tu recurso GoogleApiSource
:
gcloud beta eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \ --location=REGION \ --crypto-key=KEY
Reemplaza lo siguiente:
GOOGLE_API_SOURCE_NAME
: El ID o el identificador completamente calificado de tu recursoGoogleApiSource
REGION
: Una ubicación de Eventarc Advanced compatibleKEY
: Es el nombre de la clave de Cloud KMS, el cual está calificado por completo y es en formatoprojects/PROJECT_NAME/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
.El
REGION
de la clave debe coincidir con la ubicación del recurso que se protegerá.
Verifica el uso de Cloud KMS
Verifica que el recurso ahora cumpla con CMEK.
Console
En la consola de Google Cloud, ve a la página Eventarc > Bus.
Haz clic en el nombre del bus cuya fuente de mensajes protegiste con una clave de Cloud KMS.
En la página Detalles del bus, haz clic en
Editar.Debe aparecer la clave que encripta la fuente de tu mensaje.
gcloud
Usa el comando gcloud beta eventarc google-api-sources describe
para verificar el CMEK de tu recurso GoogleApiSource
:
gcloud beta eventarc google-api-sources describe GOOGLE_API_SOURCE_NAME \ --location=REGION
El resultado debería ser similar al siguiente ejemplo:
createTime: '2022-06-28T18:05:52.403999904Z' cryptoKeyName: projects/PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME destination: projects/PROJECT_ID/locations/REGION/messageBuses/BUS_NAME name: projects/PROJECT_ID/locations/REGION/googleApiSources/GOOGLE_API_SOURCE_NAME uid: 5ea277f9-b4b7-4e7f-a8e0-6ca9d7204fa3 updateTime: '2022-06-28T18:09:18.650727516Z'
El valor de cryptokeyName
muestra la clave de Cloud KMS que se usa para la canalización.
Inhabilita CMEK para las fuentes de la API de Google
Puedes inhabilitar la protección con CMEK asociada a las fuentes de la API de Google. Los eventos que se recopilan a través del recurso GoogleApiSource
aún están protegidos por claves que son propiedad de Google y están administradas por Google.
Console
En la consola de Google Cloud, ve a la página Eventarc > Bus.
Haz clic en el nombre del bus cuya fuente de mensajes protegiste con la CMK.
En la página Detalles del bus, haz clic en
Editar.Para borrar la fuente del mensaje encriptada por una clave de Cloud KMS, haz clic en
Borrar recurso.Si es necesario, vuelve a agregar la fuente del mensaje.
gcloud
Usa el comando gcloud beta eventarc google-api-sources update
para inhabilitar CMEK en tu recurso GoogleApiSource
:
gcloud beta eventarc google-api-sources update GOOGLE_API_SOURCE_NAME \ --location=REGION \ --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 las claves de Cloud KMS, el enrutamiento de eventos falla con errores FAILED_PRECONDITION
y se detiene la entrega de eventos. 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:
- Te recomendamos inhabilitar la versión de clave que configuraste para el bus o la canalización. Esto afecta solo al bus o la canalización de Eventarc Advanced que está asociado con la clave específica.
- opcional: Revoca el rol
cloudkms.cryptoKeyEncrypterDecrypter
de la cuenta de servicio de Eventarc. Esto afecta a todos los recursos 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 el enrutamiento de eventos, restablece el acceso a Cloud KMS.
Registros de auditoría y solución de problemas
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.
Para resolver problemas que puedas encontrar cuando uses claves administradas de forma externa a través de Cloud External Key Manager (Cloud EKM), consulta la referencia de errores de Cloud EKM.
Precios
La integración del bus 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 para una canalización 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.