Bring Your Own Storage: Google Cloud Storage
Store your extraction artifacts in your own Google Cloud Storage bucket for complete data sovereignty and compliance requirements.Custom storage is available for Enterprise customers. Email support@trypulse.ai to enable this feature.
Overview
Pulse connects to your Google Cloud Storage bucket using a service account with a JSON key. This provides:- Fine-grained access control - Grant only the permissions Pulse needs
- Full audit trail - All access is logged in Cloud Audit Logs
- Data residency - Choose your bucket location for compliance
Setup Steps
Step 1: Create a GCS Bucket
Create a new bucket in your GCP project:- Enable uniform bucket-level access
- Choose a location that meets your compliance requirements
- Consider using dual-region or multi-region for high availability
Step 2: Create a Service Account
Create a dedicated service account for Pulse:Step 3: Grant Bucket Permissions
Grant the service account access to your bucket:roles/storage.objectAdmin allows Pulse to:
- Create, read, update, and delete objects
- List objects in the bucket
Step 4: Create Service Account Key
Generate a JSON key for the service account:Step 5: Configure in Pulse Platform
- Navigate to Settings > Storage in the Pulse Platform
- Select Google Cloud Storage as your storage provider
-
Enter the following details:
- Project ID:
your-project-id - Bucket Name:
my-company-pulse-data - Service Account JSON: Paste the contents of your key file
- Region (optional):
us-central1 - Base Path (optional):
extractions/- prefix for all stored objects
- Project ID:
- Click Save Configuration
Step 6: Test the Connection
Click Test Connection to verify that Pulse can access your bucket. The test will:- Authenticate using the service account
- Verify bucket access
- Report success or any configuration issues
Step 7: Enable Custom Storage
Once the connection test passes, toggle Enabled to start using your custom storage.Storage Structure
Pulse organizes artifacts in your bucket using this structure:Security Best Practices
Use a dedicated project or bucket
Use a dedicated project or bucket
Create a separate bucket specifically for Pulse extractions rather than using an existing bucket with other data.
Enable Object Versioning
Enable Object Versioning
Protect against accidental deletion:
Set retention policies
Set retention policies
Configure retention policies for compliance:
Enable audit logging
Enable audit logging
Ensure Cloud Audit Logs are enabled for your project to track all data access.
Use VPC Service Controls
Use VPC Service Controls
For enhanced security, configure VPC Service Controls to restrict data exfiltration.
Rotate service account keys
Rotate service account keys
Regularly rotate service account keys. GCP recommends rotation every 90 days.
Troubleshooting
Permission denied error
Permission denied error
- Verify the service account has
roles/storage.objectAdminon the bucket - Check that the service account email matches the key file
- Ensure uniform bucket-level access is enabled
Invalid JSON key error
Invalid JSON key error
- Ensure you’ve copied the entire JSON key file content
- Check for any trailing whitespace or formatting issues
- Verify the key file is valid JSON
Bucket not found error
Bucket not found error
- Verify the bucket name is spelled correctly
- Ensure the bucket exists in the specified project
- Check that the project ID matches
Key disabled or deleted
Key disabled or deleted
- The service account key may have been disabled or deleted
- Generate a new key and update the configuration
Reverting to Pulse Default Storage
To stop using custom storage and revert to Pulse’s managed storage:- Toggle Enabled to off
- Click Reset to Default if you want to remove the configuration entirely