Flyte’s access control model is organized around projects and domains. Each project can have multiple domains (e.g.,Documentation Index
Fetch the complete documentation index at: https://mintlify.com/flyteorg/flyte/llms.txt
Use this file to discover all available pages before exploring further.
development, staging, production). Authentication is enforced via OIDC, and authorization maps identity claims to Flyte roles.
Access control model
Flyte has two levels of access:| Level | Description |
|---|---|
| Admin | Full access to all projects and domains. Can create/delete projects, manage system configuration. |
| Project | Access scoped to one or more projects. Can register and execute workflows within assigned projects. |
Fine-grained row-level authorization (e.g., restricting specific workflows) is not currently supported out-of-the-box in open-source Flyte. Authorization control is at the project level.
Configuring admin access
Admin-level access is granted by setting theappAuth.thirdPartyConfig.flyteClient in the FlyteAdmin config. Any user whose OIDC token contains an admin claim is granted full access.
flyte-binary
Add toconfiguration.inline in your values.yaml:
Project-level access via OIDC claims
Flyte can extract user identity from OIDC token claims and use them to determine project access. The relevant config is inuserAuth.openId:
Setting the claims field
FlyteAdmin extracts the user’s identity from the OIDCsub claim by default. To use a different claim (e.g., email or preferred_username):
Configuring resource attributes per project/domain
Flyte supports setting resource attributes (CPU limits, memory limits, IAM roles) at the project and domain level usingmatchable_resources. These are configured via flytectl:
Creating and managing projects
By default, Flyte creates aflytesnacks project at startup. Create additional projects:
Kubernetes RBAC for Flyte namespaces
Flyte automatically creates Kubernetes namespaces in the format<project>-<domain> (e.g., ml-team-production). Task pods run in these namespaces.
The clusterResourceTemplates in Helm values controls what Kubernetes resources get created in each namespace:
Service account per project domain
Each project-domain namespace gets adefault service account, which is used by task pods. Annotate this account for cloud IAM integration: