GCP Pub/Sub
Cloudsystem_type: "gcp_pubsub"Publish and consume GCP Pub/Sub messages through QuantaSeal's PQC encryption proxy.
Overview#
The GCP Pub/Sub connector proxies Google Cloud Pub/Sub REST API v1 calls. All message payloads are encrypted with ML-KEM-768 + AES-256-GCM before publication.
https://api.quantaseal.io/api/v2/proxy/outboundAuth header:
X-API-Key: qs_live_…Prerequisites#
- 1A GCP project with Pub/Sub API enabled
- 2A service account with Pub/Sub Publisher and Subscriber roles
- 3Service account JSON key
Configuration#
Follow these steps to connect GCP Pub/Sub to QuantaSeal. You can configure integrations via the Admin Console or directly via the API.
- 1
Create a service account with Pub/Sub Publisher + Subscriber roles.
- 2
Seal service account JSON via POST /api/v2/vault/seal (credential_type: custom_kv).
- 3
Create integration with system_type: gcp_pubsub, config: {project_id, topic_id, subscription_id}.
Authentication Types#
Seal the service account JSON as custom_kv. QuantaSeal generates short-lived access tokens automatically.
All credential types are sealed in QuantaVault with ML-KEM-768 + AES-256-GCM and wrapped by your tenant AWS KMS CMK before storage. See the Vault API reference for the full list of credential types and seal/unseal endpoints.
Available Operations#
QuantaSeal enforces a default-deny operation policy. Only operations listed in your integration's allowed_operations array will be permitted. Add operations when creating or updating the integration.
| Operation | Description |
|---|---|
publish | Publish messages to a Pub/Sub topic. |
pull | Pull messages from a subscription. |
acknowledge | Acknowledge received messages. |
Code Example#
Every proxy call returns a HybridCryptoEnvelope - the response is ML-KEM-768 key-encapsulated, AES-256-GCM encrypted, and signed with ML-DSA-65 + HMAC-SHA-512. Verify both signatures before trusting the decrypted payload.
curl -X POST https://api.quantaseal.io/api/v2/proxy/outbound \
-H "X-API-Key: qs_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"integration_id":"int_GCPPUBSUB001","operation":"publish","payload":{"messages":[{"data":"eyJvcmRlcl9pZCI6MTIzfQ=="}]}}'client.encryption.decrypt(envelope). Both the ML-DSA-65 signature and the HMAC-SHA-512 signature must pass - QuantaSeal uses a bitwise & check, not short-circuit and.Troubleshooting#
PERMISSION_DENIED
Ensure the service account has both Pub/Sub Publisher and Subscriber roles, and that the topic/subscription exists in the same project.