Prerequisites
You must have theObject Storage Admin IAM role (assigned through CoreWeave IAM Access Policies), or equivalent permissions to create and manage organization access policies:
cwobject:EnsureAccessPolicyto create or edit an organization access policy.cwobject:ListAccessPolicyto view existing organization access policies.cwobject:DeleteAccessPolicyto delete an organization access policy.
Object Storage Admin IAM role assigned to them. They can create and manage organization access policies, and grant the same permissions to other users and groups (through either IAM Access Policies or AI Object Storage organization access policies).
Set an organization access policy
This section walks you through how to create an organization access policy so it starts to enforce permissions across your organization. You can set an organization access policy with the Cloud Console, the AI Object Storage API, or the CoreWeave Terraform provider. Choose the workflow that best matches how you manage your other CoreWeave resources.- Cloud Console
- AI Object Storage API
- Terraform
To create an organization access policy in the Cloud Console:
Edit returns you to the policy editor.Delete requires confirmation:
- Navigate to the Organization Access Policies page.
- Click the Create Policy button.
- In the Create Policy page, enter the Policy Name.
- Within the policy, add one or more statements. In the Statement section, enter a descriptive Name for the statement. For example, “grant-read-access-to-test-bucket”.
- For Access, select either Allow access or Deny access.
-
For Principals, enter one or more principals to which the statement applies. The search field shows available principals (users and groups) in your organization. Select the principals you want to add, or enter
*to allow access to all principals: After you select the principals, they appear in the Principals section:

-
For Actions, enter one or more actions to which the statement applies. The search field shows you available actions. Select the actions you want to add, or enter
*to allow access to all actions. This example grants read access by allowing the actionss3:GetObjectands3:ListBucket: After you select the actions, they appear in the Actions section:

-
For Resources, enter one or more resources to which the statement applies. The search field shows you available resources. Select the resources you want to add, or enter
*to allow access to all resources. This example scopes the policy statement to the buckettest-bucketand all objects within it: After you select the resources, they appear in the Resources section:

- Add another statement by clicking Add Statement, or click Submit to create the policy.
- Use the Search function to find policies by name.
- To view an existing policy, click the policy name.
- To edit or delete a policy, click the More icon next to the policy, then select Edit or Delete.


Structure of organization access policies
The rest of this page is a reference for the JSON fields that make up an organization access policy. Use it when you author or review a policy document, whether you create it through the Cloud Console, the API, or Terraform. Organization access policies use JSON objects with three top-level fields:version, name, and statements. The statements field is an array of objects. Each statement includes the following:
| Field | Description |
|---|---|
name | A unique identifier for the policy statement. |
effect | Indicates whether the policy allows or denies access. Must be either Allow or Deny. |
principals | The users, roles, or groups to which the policy applies. |
actions | The specific actions that the policy allows or denies. |
resources | The resources to which the policy applies, specified in short-form names (not full ARNs). |
Version
Theversion specifies the policy language version and is mandatory. For organization access policies, set "version": "v1alpha1". This internal CoreWeave identifier is not the same as the date-based format (for example, “2012-10-17”) used in standard S3 bucket access policies.
Replace [BUCKET-NAME] in the policy with the name of the bucket you want to grant access to.
Example policy
Name
At the top level, within thepolicy object, name is required. It provides a human-readable identifier for the overall organization access policy.
Statements
Thestatements element is required, and acts as the main container for access rules. It can contain a single policy statement or an array of multiple statements, with each statement enclosed in curly braces.
Replace [USER-UID] in the policy with the UID of the user you want to grant access to.
Name (within statement)
Within each statement,name is required. It serves as a short, human-readable identifier for that policy statement, similar to Sid in bucket access policies.
Each name must be unique within the JSON policy.
Effect
TheEffect field is mandatory and must be either Allow or Deny (case-sensitive). It determines whether the statement grants or denies the specified actions on the listed resources for the designated principals. By default, all access is denied.
Setting Effect to Allow grants permission; setting it to Deny explicitly rejects the request and overrides any Allow. During policy evaluation, an explicit Deny in an organization access policy immediately rejects the request.
Replace [USER-UID] in the policy with the UID of the user you want to deny access to.
Principals
Theprincipals field is required. It defines which users, roles, or groups the policy applies to.
For organization access policies, only short-form identifiers are supported. If you use a full ARN, the policy fails with an error.
- Cloud Console users: Use the user’s
UID, found in the user’s Settings in the Cloud Console, prefixed withcoreweave/. For example,coreweave/UserUID. - SAML users or groups: When you use SAML with an Identity Provider (IdP), reference users or groups with the format
role/GroupName. TheGroupNamemust match thePrincipalNameattribute in the SAML assertion. - OIDC users: When you use OIDC with an Identity Provider (IdP), reference users with the format
role/[JWT-ISSUER-URL]:[JWT-SUBJECT-USER-ID]where[JWT-ISSUER-URL]is the issuer of the JWT token and[JWT-SUBJECT-USER-ID]is the subject of the JWT token.
Groups created in the Cloud Console (like admin) can’t be used in organization access policies. To assign policies to groups, use a SAML-enabled Identity Provider (IdP).
Actions
Theactions field is required. It defines which operations the policy allows or denies. You can use wildcards (like s3:* or cwobject:*) to cover multiple actions at once. Organization access policies can include actions from two APIs:
- S3 API: Use
s3:*to reference all S3 actions. - AI Object Storage API: Use
cwobject:*for all CoreWeave-specific storage actions.
cwobject: actions in separate policy statements. This makes the policy easier to read and understand.
Resources
Theresources field is required. It defines which resources the policy applies to. Important guidelines for defining resources:
- Use short names: Use short resource names like
my-bucket.- Don’t use full ARNs (such as
arn:aws:s3:::my-bucket). Full ARNs cause errors.
- Don’t use full ARNs (such as
- Specify both bucket and object levels: If a policy affects both bucket-level and object-level operations, list both:
"my-bucket"for bucket-level actions"my-bucket/*"for object-level actions
- Use
"*"for global operations: Actions likecwobject:*ands3:ListAllMyBucketsare global and not tied to a single resource. They require"resources": ["*"]to be allowed. - Special case for
s3:PutBucketPolicy: This action is treated as global. To allow it, include"s3:PutBucketPolicy"in theactionsand setresourcesto either"*"or the specific bucket name (for example,"my-bucket").
Allowed AI Object Storage API actions
Use this list when you populate theactions field of a statement to confirm that a cwobject: action is permitted in an organization access policy. The following AI Object Storage API (cwobject:) actions are allowed in organization access policies:
cwobject:CreateAccessKeycwobject:CreateAccessKeySAMLcwobject:ListAccessKeyInfocwobject:GetAccessKeyInfocwobject:UpdateAccessKeyStatuscwobject:RevokeAccessKeyByAccessKeycwobject:RevokeAccessKeysByPrincipalcwobject:EnsureAccessPolicycwobject:ListAccessPolicycwobject:DeleteAccessPolicycwobject:ListBucketInfocwobject:GetBucketInfocwobject:EnableBucketAuditLoggingcwobject:DisableBucketAuditLoggingcwobject:EnableBucketAuditLoggingDefaultcwobject:DisableBucketAuditLoggingDefaultcwobject:EnableControlPlaneAuditLoggingcwobject:DisableControlPlaneAuditLogging
cwobject actions must use "*" as the resource value.
These actions are specific to the AI Object Storage API and manage access keys, policies, and audit logging for your organization.