Fabric supports AWS IAM–based authentication for accessing native AWS services (such as S3, Secrets Manager, KMS) without using static access keys or secrets.
This is achieved using:
The key concept is that Fabric pods inherit AWS permissions from a Kubernetes ServiceAccount, which is annotated with an IAM Role ARN.
The ARN is not configured in the Fabric UI, but via Helm values, and credentials are resolved automatically at runtime.
The ARN is not entered in the UI. It is injected into the Fabric pod via Helm, ServiceAccounts, and IRSA.
To use AWS IAM with Fabric:
secrets:
SPACE_SA_ARN: "<IAM Role ARN>"
Fabric handles everything else automatically. Please consult https://github.com/k2view/blueprints/blob/main/helm/k2view-agent/values.yaml for details.
IAM Role
An IAM Role defines:
AWS STS
AWS STS issues short-lived credentials when a trusted identity assumes a role.
These credentials rotate automatically and are never stored.
IRSA (IAM Roles for Service Accounts)
IRSA bridges Kubernetes and AWS by allowing a Kubernetes ServiceAccount to assume an IAM Role via an OIDC identity.
No access keys are stored in:
Result: Secure, short-lived IAM access with no static secrets.
When configuring an S3 interface in Fabric Studio:
This is expected and correct.
Fabric will automatically fallback to using IAM credentials provided by the pod environment.
Key Point: Where the ARN Is Configured
The IAM Role ARN is configured at deployment time via Helm — not in the Fabric UI.
Primary Setting (Fabric Spaces)
To set the AWS IAM role ARN for Fabric spaces, which are used to access cloud resources, you use this secret. Please consult https://github.com/k2view/blueprints/blob/main/helm/k2view-agent/values.yaml.
secrets:
SPACE_SA_ARN: "arn:aws:iam::<account-id>:role/<FabricRole>"
Purpose
Effect
Each Fabric space’s ServiceAccount is annotated with this IAM Role upon creation.
During space creation:
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/<FabricRole>
Example
How it works
This is a standard AWS cross-account role assumption.
Fabric supports AWS IAM–based authentication for accessing native AWS services (such as S3, Secrets Manager, KMS) without using static access keys or secrets.
This is achieved using:
The key concept is that Fabric pods inherit AWS permissions from a Kubernetes ServiceAccount, which is annotated with an IAM Role ARN.
The ARN is not configured in the Fabric UI, but via Helm values, and credentials are resolved automatically at runtime.
The ARN is not entered in the UI. It is injected into the Fabric pod via Helm, ServiceAccounts, and IRSA.
To use AWS IAM with Fabric:
secrets:
SPACE_SA_ARN: "<IAM Role ARN>"
Fabric handles everything else automatically. Please consult https://github.com/k2view/blueprints/blob/main/helm/k2view-agent/values.yaml for details.
IAM Role
An IAM Role defines:
AWS STS
AWS STS issues short-lived credentials when a trusted identity assumes a role.
These credentials rotate automatically and are never stored.
IRSA (IAM Roles for Service Accounts)
IRSA bridges Kubernetes and AWS by allowing a Kubernetes ServiceAccount to assume an IAM Role via an OIDC identity.
No access keys are stored in:
Result: Secure, short-lived IAM access with no static secrets.
When configuring an S3 interface in Fabric Studio:
This is expected and correct.
Fabric will automatically fallback to using IAM credentials provided by the pod environment.
Key Point: Where the ARN Is Configured
The IAM Role ARN is configured at deployment time via Helm — not in the Fabric UI.
Primary Setting (Fabric Spaces)
To set the AWS IAM role ARN for Fabric spaces, which are used to access cloud resources, you use this secret. Please consult https://github.com/k2view/blueprints/blob/main/helm/k2view-agent/values.yaml.
secrets:
SPACE_SA_ARN: "arn:aws:iam::<account-id>:role/<FabricRole>"
Purpose
Effect
Each Fabric space’s ServiceAccount is annotated with this IAM Role upon creation.
During space creation:
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/<FabricRole>
Example
How it works
This is a standard AWS cross-account role assumption.