CoreWeave sandboxes are in public preview. For access, contact your CoreWeave account team, CoreWeave Support, or email support@coreweave.com.
- An OIDC provider (Workload Identity Federation config) in your CoreWeave organization, so the per-sandbox tokens CoreWeave mints can be exchanged for temporary credentials in your organization.
- A bucket policy on your bucket that grants that federated identity the scoped access FSS needs.
- The bucket registration with CoreWeave, through a single API call.
Before you start, create the bucket you want to use. This guide does not cover bucket creation. See Create buckets.
How FSS uses your bucket
You never hand CoreWeave a static access key. Instead, every time a sandbox takes or restores a snapshot:- CoreWeave mints a short-lived OIDC JWT for that sandbox. The token is issued by
https://oidc.cwsandbox.com, has the audiencecw-credential-vendor, and carries claims that identify the organization, the user, the bucket, and the exact object the sandbox is allowed to touch. - Inside the sandbox, the AWS SDK exchanges that token through Workload Identity Federation for temporary S3 credentials scoped to your bucket, and auto-rotates them.
- Your bucket policy authorizes that federated identity. It pins access down to a per-user prefix and to your organization only.
Values you need
Collect these before you begin. The values marked fixed are the same for every customer. The rest are specific to you.Your organization ID is the same value everywhere it appears in the policy below: in the principal ARN, in each
oidc:[ORG-ID]:... condition key, and as the value the org_id condition is matched against.Step 1: Register the OIDC provider
In the CoreWeave Cloud Console, go to the Workload Identity Federation OIDC page:
This tells your organization to trust the tokens CoreWeave mints for your sandboxes. Without it, the credential exchange described in How FSS uses your bucket fails before any bucket policy is evaluated.
For background on how OIDC Workload Identity Federation and the Cloud Console configuration work, see Use Workload Identity Federation with OIDC.
Step 2: Attach the bucket policy
Attach the following policy to your bucket. It is the same policy CoreWeave applies to managed FSS buckets, parameterized with your organization ID. Replace the placeholders:[BUCKET-NAME]with your bucket name.[ORG-ID]with your 6-character organization ID, everywhere it appears.
What each statement does
OIDCFederatedScopedAccessis the read and write grant for snapshot work. It is scoped to a per-user prefix,${oidc:[ORG-ID]:user_hash}/*. A given user’s token only resolves to keys under their own hashed prefix, so users in your organization cannot write over each other’s snapshots. Thebucket_namecondition prevents a token minted for a different bucket from being used here.OIDCFederatedRestoreObjectScopeis a narrowGetObjectgrant for the exact object a restore is reading,${oidc:[ORG-ID]:restore_object_key}. This lets one sandbox restore a snapshot another user in your organization created, while the per-user write scoping still holds.DenyCrossOrgis defense in depth. It denies everything if the token’sorg_idclaim is not your organization, so even a leaked or misrouted token cannot touch your bucket.
The condition keys use the
oidc:[ORG-ID]:[CLAIM] form that CoreWeave AI Object Storage evaluates. CoreWeave fills in the ${oidc:[ORG-ID]:user_hash} and ${oidc:[ORG-ID]:restore_object_key} variables from the sandbox’s token at request time. Do not substitute those. Leave them as written. Only the [ORG-ID] inside them is yours to fill in.Step 3: Register the bucket with CoreWeave
Tell CoreWeave to use your bucket by setting your organization’s FSS bucket config. This is a singlePUT that fully replaces the organization’s config.
api.cwsandbox.comis the standard sandbox API host, the same one the data plane uses for other calls such as starting a sandbox.- This call requires the
SANDBOX_ADMINIAM action, granted on the Access Policies page. It is admin-gated because changing the bucket affects where every future snapshot lands. See Change or revert your bucket. - Both
bucketNameandregionare required together. Sending one without the other is rejected withCWSANDBOX_INVALID_REQUEST.
Example output
Step 4: Verify
Run a snapshot and restore round trip against a real sandbox:-
Start a sandbox with a fresh filesystem:
-
Write a file under
/work, then stop the sandbox and snapshot on stop. The response returns afileSystemSnapshotId: -
Restore it into a new sandbox:
FileSystemSnapshot returned by GetFileSystemSnapshot and ListFileSystemSnapshots includes an objectBucket field showing which bucket the snapshot was stored in.
Change or revert your bucket
ThePUT in Step 3 is a full replace, so it is also how you change or undo your config:
- Switch back to CoreWeave-managed:
PUTan empty body ({}). CoreWeave resumes managing a bucket for you automatically. - Move to a different bucket:
PUTthe newbucketNameandregion.
Troubleshooting
If a sandbox runs on a profile with allowlist-only egress, make sure it can reach the CoreWeave credential endpoint (
https://api.coreweave.com). Otherwise the credential fetch times out and the first S3 operation fails.
Reference
The following sections describe the bucket name rules, the S3 actions the policy grants, and the token claims the policy references.Bucket name rules
When you register a bucket in Step 3, CoreWeave validates the name against the standard object storage rules.Bucket naming rules
Bucket naming rules
Bucket names must be globally unique and adhere to the following rules:
- Length: 3 to 63 characters.
- Characters: Only lowercase letters (
a-z), numbers (0-9), and hyphens (-). No dots, uppercase letters, underscores, spaces, or other special characters. - Start and end: Must begin and end with a letter or number. Cannot start or end with a hyphen (
-). - Prohibited patterns: Cannot start with
xn--. - Reserved: Must not begin with
cw-,vip-, orlog-stitcher-ch-. Must not be the exact nameint. CoreWeave reserves these for internal use.
region is a CoreWeave Availability Zone, for example US-EAST-01A, and must match the zone your bucket lives in. For the full list of zones, see All Availability Zones.
S3 actions granted
The policy grants exactly the actions FSS needs and nothing more:s3:GetObject, s3:PutObject, s3:CreateMultipartUpload, s3:UploadPart, s3:CompleteMultipartUpload, s3:AbortMultipartUpload, and s3:ListMultipartUploadParts. Writes use multipart upload, and restore uses GetObject.
Token claims used by the policy
CoreWeave stamps these claims onto each per-sandbox token. The bucket policy conditions reference them asoidc:[ORG-ID]:[CLAIM].
Related resources
- File system snapshots: how snapshots, restore, and forking work.
- Use Workload Identity Federation with OIDC: how OIDC federation and the Cloud Console configuration work.
- Create buckets: create the bucket this guide assumes you already have.
- All Availability Zones: the zones to use as your bucket’s region.
- Manage API access tokens: create the token used in Step 3.
- IAM Access Policies: grant the
SANDBOX_ADMINaction required for Step 3.