S3 Configuration
Configuration parameters for integrating your Onyxia instance with S3 or an S3-compatible object store.
Onyxia uses S3 in three ways:
It provides a file explorer backed by your S3 server.
It requests temporary S3 credentials for users through STS and OpenID Connect.
It injects those credentials into services such as Jupyter or RStudio.
The installation guide shows a basic MinIO setup. This page covers the full configuration model for any S3-compatible provider.
Onyxia talks to S3 directly from the user's browser. It does not proxy S3 calls through the backend API.
The S3 configuration in Onyxia describes the access model exposed in the UI. It does not create roles or policies on your S3 server.
You must configure your S3 provider and its OIDC integration separately so that:
the STS provider trusts your OIDC issuer;
the requested roles already exist;
users actually have the permissions the UI advertises.
Onyxia exchanges the user's OIDC access token for temporary S3 credentials with AssumeRoleWithWebIdentity.
Onyxia exposes S3 access through profiles, following the same idea as AWS CLI profiles. An administrator can define one or more profiles in onyxia.api.regions[].data.S3. Each profile tells Onyxia:
which S3 endpoint to use;
how to request temporary S3 credentials with STS;
which profile name users will see and use in code snippets;
which bookmarked S3 directories should appear in the file explorer.
Minimal Example
This example creates one profile named default for each user. The STS role ARN and the bookmark are generated from the user's preferred_username claim.
For a user whose decoded OIDC ID token contains:
Onyxia exposes one S3 profile:
If the bucket "alice" doesn't exist, Onyxia will ask the user if they want to create it.
Multiple Profiles From Claims
data.S3 can be a single object or an array of objects. A single S3 object can also generate several profiles when sts.role is an array or when a role uses a claim whose value is an array.
The following example creates:
one personal profile named
default;one project profile per user group, except groups matching
^USER_ONYXIA.*;one public bookmark attached to all generated profiles.
For a user connected with this OIDC ID token:
Onyxia exposes these profiles:
No profile is generated for USER_ONYXIA_admin because it matches excludedClaimPattern.
Main Options
Here is an exhaustive documentation of the available options:
Templating and claim expansion rules
claimName refers to a claim in the decoded OIDC ID token associated with the S3 OIDC configuration. Dot notation is supported for nested claims, for example realm_access.roles.
The claim value must be either a string or an array of strings:
if the value is a string, Onyxia resolves one role or bookmark;
if the value is an array, Onyxia resolves one role or bookmark per accepted value.
includedClaimPattern and excludedClaimPattern are regular expressions:
if
includedClaimPatternis omitted, Onyxia behaves as if it were^(.+)$;if
excludedClaimPatternmatches a claim value, that value is ignored;the included pattern is then applied to the remaining values.
In templated fields, $1, $2, and so on are replaced by the capture groups of includedClaimPattern. With the default included pattern, $1 is the full claim value.
Templating is available in:
sts.role.roleARN;sts.role.roleSessionName;sts.role.profileName;bookmarkedDirectories[].fullPath;bookmarkedDirectories[].title;bookmarkedDirectories[].description;bookmarkedDirectories[].tags;bookmarkedDirectories[].forProfileName.
When claimName is not specified, the values are used literally and exactly one role or bookmark is produced.
Using one entry only for manual profile defaults
An S3 entry without sts does not create an administrator-defined profile. It is only used to prefill the endpoint fields when a user manually creates an S3 profile in Onyxia.
In this example, the first entry only provides default values for the manual creation form. The second entry creates the default profile.
Operational Notes
Onyxia does not create IAM roles or S3 bucket policies. The configured role must already grant the intended S3 permissions.
The OIDC client configured in
sts.oidcConfigurationmust be trusted by the STS provider.The claims referenced by
claimNameare read from the decoded OIDC ID token.Prefer a profile named
defaultwhen users should have one obvious primary S3 profile. Onyxia also usesdefaultnaturally in generated AWS CLI snippets.
Last updated
Was this helpful?