Features

AWS IAM External Permission Checks

Source

AWS IAM external permission checks let externally authenticated callers carry an AWS IAM principal ARN as evidence for an explicit, fail-closed authorization check. Eden RBAC still runs first; AWS IAM principals do not grant Eden permissions by themselves.

This is not the whole third-party auth story. Eden supports generic OIDC and provider presets such as Okta, Microsoft Entra ID, Google Workspace, Auth0, AWS Cognito, Keycloak, OneLogin, and PingOne for authentication. AWS IAM is the current provider-specific external permission engine that can run after those identity and Eden RBAC layers.

Capabilities

CapabilityBehavior
External principal resolutionOIDC-family tokens can carry aws_iam_principal_arn, or groups can map to AWS IAM principal ARNs.
Explicit permission APIPOST /api/v1/iam/external-permissions/aws/template-check runs a saved AWS IAM simulation template server-side.
Fail-closed decisionsMissing principal, ambiguous principal, template failure, malformed output, deny, or missing action/resource coverage blocks.
Access introspectionGET /api/v1/iam/access/endpoints/{endpoint} includes safe external_permission_principals.
Safe evidenceEvidence includes provider, principal source, status, counts, and coverage only.

External Auth Configuration

This example uses Okta, but the same principal claim can come from any configured OIDC-family provider.

toml
[auth.external]
mode = "hybrid"
provider = "okta"
issuer = "https://customer.okta.com/oauth2/default"
audience = "api://eden"
org_id = "customer-prod"
org_uuid = "00000000-0000-0000-0000-000000000001"
aws_iam_principal_arn_claim = "aws_iam_principal_arn"

[[auth.external.group_aws_iam_principals]]
group = "document-reviewers"
principal_arn = "arn:aws:iam::123456789012:role/DocumentReviewer"

Template Check Request

json
{
  "template_id": "aws-regulated-document-read-check",
  "principal": {
    "provider": "aws_iam",
    "source": "token_principal",
    "principal": "arn:aws:iam::123456789012:role/DocumentReviewer"
  },
  "fields": {},
  "principal_field": "policy_source_arn",
  "action_names_field": "action_names",
  "resource_arns_field": "resource_arns",
  "action_names": ["s3:GetObject"],
  "resource_arns": ["arn:aws:s3:::regulated-documents/doc-8842.pdf"]
}

Eden injects the selected token principal, actions, and resources into the saved AWS Read template. The caller cannot submit precomputed IAM simulation output as an allow decision.

Enforcement Model

The check is explicit and opt-in. Eden RBAC remains the baseline authorization layer, then the AWS IAM check can add a downstream allow/deny decision for the requested AWS action and resource set.

ConditionResult
No matching principal in the token contextFail closed.
Multiple ambiguous principalsFail closed.
Simulation template cannot runFail closed.
AWS returns deny or no explicit allowFail closed.
Simulation output omits an expected action/resource pairFail closed.
Every expected action/resource pair is explicitly allowedAllow the external permission check to pass.

Evidence

Evidence records include provider, principal source, template UUID, endpoint UUID, action/resource coverage status, counts, and decision status. They do not include raw secrets, rendered AWS requests, rendered AWS responses, or caller-submitted allow decisions.

Help improve Eden Docs

Find something unclear or incomplete? Review the source and propose an update.

View on GitLab Updated August 2, 2026