This guide applies to hosted SaaS workspaces. Enterprise self-hosted deployments configure object storage at deployment time instead.
How It Works
A workspace owner or admin registers an S3 storage target, validates access, then creates collections bound to that target. After a collection is bound, Nebula writes that collection’s graph objects under:Prerequisites
- An Enterprise-plan team workspace
- An S3 bucket in the region you want to use
- An IAM role Nebula can assume
- Object access for the target prefix
endpoint_url. Custom S3-compatible endpoints are only supported in trusted self-hosted deployments; hosted SaaS rejects custom endpoints.
Create the IAM Role
Create a role that trusts the Nebula-provided AWS principal and requires the external ID returned when you register the storage target. The trust policy shape is:Register a Storage Target
Register the bucket on the workspace:
If you need the generated
external_id before finalizing the IAM trust policy, register the target first, update the role trust policy with the returned value, then validate.
Validate Access
Validation confirms Nebula can access the bucket and prefix:active.
Create a BYOC Collection
Create collections with bothworkspace_id and storage_target_id:
List or Disable Targets
List targets:Operational Notes
- Use one bucket prefix per environment, such as
nebula/prodandnebula/staging. - Do not manually move or delete objects under a collection prefix while the collection is active.
- Workspace deletion is blocked while BYOC-bound collections still exist.
- To use signed URL transport for device memory snapshots, see Device Memory API.