With SAML Workload Identity Federation, your workloads obtain a SAML assertion from your Identity Provider (IdP) and exchange it for temporary AI Object Storage credentials. This eliminates the need to store long-lived secrets in your applications. This guide walks through the complete workflow: configuring your SAML provider, creating a WIF configuration in the Cloud Console, setting up organization access policies, and exchanging assertions for credentials.Documentation Index
Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
Use this file to discover all available pages before exploring further.
How SAML WIF works
Your workload obtains a SAML assertion from your identity provider and sends it to the AI Object Storage WIF endpoint. CoreWeave validates the assertion against your WIF configuration, parses theRole and PrincipalName attributes, and returns a temporary Access Key / Secret Key pair for AI Object Storage.
What the returned credentials can do is determined by your organization access policies and optional bucket access policies, which must reference the role as a principal.
Before using SAML for Workload Identity Federation, configure your organization’s SAML SSO. See Configure SAML SSO for setup instructions.
Prerequisites
Before you begin, ensure you have:- A CoreWeave organization with AI Object Storage enabled
- Administrator privileges for your organization (the IAM Admin role and Object Storage Admin role, or equivalent legacy access)
- A SAML Identity Provider configured to issue assertions with the required attributes (see Required SAML attributes)
Step 1: Configure your SAML provider
Configure your IdP to issue SAML assertions for the workloads that need AI Object Storage access. The assertions must include the CoreWeave-specific attributes described below.Required SAML attributes
Every SAML assertion must contain these CoreWeave-specific attributes:| Attribute | Description |
|---|---|
https://coreweave.com/SAML/Attributes/Role | The role for the credentials this call generates. Used in access policy evaluation and audit logs. |
https://coreweave.com/SAML/Attributes/PrincipalName | The principal (actor) making requests. Can be used in access policies and appears in audit logs. |
Example: Role attribute
Example: PrincipalName attribute
SAML response configuration
Configure your IdP to set the following elements in the SAML response:| Element | Value |
|---|---|
Destination | https://console.coreweave.com/m2m-saml-acs |
Recipient | https://console.coreweave.com/m2m-saml-acs |
Audience | https://console.coreweave.com/accounts/saml/<ORG_UID>/metadata/ |
<ORG_UID> with your organization’s UID. You can find this on the Settings page in Cloud Console.
Example SAML assertion
Example SAML assertion
Example SAML assertion
Step 2: Create a WIF configuration in Cloud Console
Create a SAML Workload Identity Federation configuration to tell CoreWeave how to validate assertions from your IdP.- Log in to the Cloud Console and navigate to the Workload Federation page.
- Click Create SAML configuration. The configuration form opens:

- Name: A unique name for the configuration.
- IdP Entity ID: Your identity provider’s unique identifier, typically a URI or URL. You can find this value in your IdP’s SAML metadata or SSO configuration settings. CoreWeave uses this to verify the source of SAML assertions.
- X.509 Certificate: The PEM-encoded public key certificate from your identity provider. CoreWeave uses this to verify that SAML assertions are digitally signed by your trusted IdP. You can typically find this in your IdP’s SAML/SSO configuration settings.
- Description: A brief description of the configuration.
Step 3: Create organization access policies
Organization access policies control what your SAML role can do. Before your workload can exchange SAML assertions for credentials, you must grant thecwobject:CreateAccessKeySAML action to the WIF role.
The principal for your SAML role uses the format role/<role-value>, where <role-value> matches the value in your SAML assertion’s Role attribute.
The following policy grants the WIF role permission to create temporary credentials via the SAML endpoint. The cwobject: actions are global and must use "resources": ["*"].
Grant S3 permissions
Once your workload can create credentials, you need policies that grant those credentials permission to access buckets. This policy grants read and write access to a specific bucket:Example: Role-based access control with multiple roles
This policy demonstrates granting different access levels to different SAML roles:Step 4: (Optional) Add bucket access policies
In most cases, organization access policies are sufficient. However, you can layer on bucket access policies when you need cross-organization access to specific buckets or bucket-level lifecycle configuration. Organization access policies and bucket access policies have different syntax requirements:| Aspect | Organization access policies | Bucket access policies |
|---|---|---|
| Principals | Simple strings (for example, role/data-ingest) | Full ARNs (for example, arn:aws:iam::[ORG-ID]:role/data-ingest) |
| Resources | Short bucket names ([BUCKET-NAME], [BUCKET-NAME]/*) | Full S3 ARNs (arn:aws:s3:::[BUCKET-NAME], arn:aws:s3:::[BUCKET-NAME]/*) |
Step 5: Exchange a SAML assertion for credentials
Once your IdP, WIF configuration, and organization access policies are in place, your workload can request temporary credentials from CoreWeave. Send an HTTPPOST request to the SAML WIF endpoint:
| Field | Description |
|---|---|
durationSeconds | Lifetime of the credentials in seconds, up to a maximum of 12 hours. |
orgId | Your CoreWeave organization ID. Find this on the Settings page in Cloud Console. |
configId | The Config ID generated when you created your WIF configuration. |
samlResponse | The base64-encoded SAML response from your IdP. |
Step 6: Use the temporary credentials
Use the returned Access Key and Secret Key with any S3-compatible client. Configure the client with the AI Object Storage endpointhttps://cwobject.com.
These credentials are temporary. Your workload should refresh them by calling the SAML WIF endpoint again before they expire. The permissions available to the client are exactly those granted to the WIF role in your access policies.
For client configuration examples, see Getting Started with AI Object Storage.
Troubleshooting
Assertion exchange returns “permission denied”
If the/temporary-credentials/saml call returns an error like {"code": 7, "message": "permission denied", "details": []}, check:
- Missing cwobject permission: Ensure your organization access policy grants
cwobject:CreateAccessKeySAMLto the WIF role. This permission is required for the assertion exchange to succeed. - Assertion validity: Ensure the assertion is signed by your IdP and the signature validates against the X.509 certificate in your WIF configuration.
- Config ID: Verify you’re using the correct Config ID from your WIF configuration.
- Timing: Ensure the assertion is not expired (
NotOnOrAfter) and is not being used beforeNotBefore.
Assertion exchange succeeds but S3 operations return AccessDenied
If you receive credentials but S3 operations fail, the issue is in your access policies. Check that at least one organization access policy:- Allows the needed
s3:*actions (e.g.,s3:Get*,s3:List*,s3:Put*) - Uses the correct short-form resources (
"[BUCKET-NAME]","[BUCKET-NAME]/*") - Lists the correct WIF role in
principalsusing the formatrole/<role-value>
Deny statements can override other Allow statements.