This page describes IAM resources that belong to your application: identities, roles, policies and the IAM API calls your application makes. The Permissions Model describes access granted to the Tensor9 control plane. Installation documentation covers the appliance’s cloud identity.
Supported origins and targets
An origin stack may use AWS IAM, Microsoft Entra ID or Google Cloud IAM. The IAM service adapter reads identities and policy statements from that origin model, then applies the adaptation tier selected for the deployment. Infrastructure only emits grants in the target cloud’s IAM system. Max retains an adapted policy model and authorizes requests inside the appliance. AWS, Google Cloud and Azure are available as native-IAM targets. OCI and Private Kubernetes use the Max adaptation tier, with Cedar evaluating the adapted policy inside the appliance. Tensor9 evaluates policies sent to a native-IAM target according to that cloud’s policy model. The compatibility examples and limitation tables on this page are specific to AWS origins. Azure and Google Cloud policies use the same adaptation process, but their supported constructs and refusal reasons are evaluated against their own IAM models.Policy compatibility
Before deployment, the IAM service adapter evaluates every statement in a policy document against the selected target. The document receives one of four outcomes:For an AWS origin, an accepted policy maps to Cedar for runtime authorization or to the target cloud’s native IAM during deployment.
A failure applies to the entire policy document. The adapter reports the document name and reason; it does not remove an unsupported statement and continue with the rest.Accept a broader grant
Only the Wider outcome can be accepted. At the Infrastructure only adaptation tier, place the annotation immediately above the IAM resource whose target grant may be broader:Tags field. For example:
t9:tuning: identifies the target attribute. Values are strings on the wire and are parsed into the corresponding native type. Lists use comma-delimited values without brackets, and maps are set one scalar entry at a time. Because the tag is part of the IAM create request, no separate configuration file or client protocol is required. Neither acceptance form can release an Incompatible policy.
AWS policy forms that are refused
For AWS origins at Max, the following forms cause the complete policy document to fail:
Attribute-based access control is unavailable for this AWS adaptation. Conditions that depend on
aws:PrincipalTag, session tags, aws:SourceIp, aws:PrincipalOrgID or aws:SecureTransport cause the complete document to fail. Role tags are stored but are not used during authorization.
The runtime catalog does not contain AWS-managed policy documents. Replace a reference such as AmazonS3ReadOnlyAccess with a customer-managed policy that uses supported action forms.
Cedar runtime authorization
This section describes the Cedar authorization destination: an AWS-origin application whose policies were adapted to Cedar, running on any target cloud. It is not about an appliance installed into AWS, which is a deployment target rather than an origin. At Max, each receiving service adapter verifies the signed AWS request. The principal and resource are synthesized from ARNs in that request and passed to Cedar with the adapted policy set. Cedar applies explicit-deny-wins semantics: a matching deny overrides an allow, and a request with no matching allow is denied.The request supplies the principal and resource used for authorization. A request that cannot supply either value is denied.
For example, consider a signedGetObject request. The receiving S3 adapter verifies the signature, derives the caller and object ARN from the request, and asks Cedar whether the adapted policy allows s3:GetObject. A matching deny rejects the call even if another statement allows it. With no matching allow, Cedar also rejects the call.
No directory lookup occurs during this evaluation. Each entity has an ARN attribute, so a policy cannot depend on principal or network attributes that are absent from the request. Actions outside the receiving adapter’s service catalog are denied.
Production adapters enforce the decision. Report-only mode is available before cutover: calls that enforcement would deny are recorded and allowed to continue. This setting belongs to each receiving adapter, which lets services move to enforcement independently. If the appliance has not received a policy set, enforcement denies the request.
Adaptation tiers
The tiers differ in when authorization is decided and whether the application can call its origin IAM API at runtime.
Infrastructure only fits applications whose infrastructure declares all required permissions and that do not administer IAM at runtime. Max is required when the application makes supported IAM administration calls after deployment. It is also required on OCI and Private Kubernetes.
Tier selection is made from the origin stack and target cloud. The service adapter analysis identifies the services and policy constructs that determine the result.
Cedar IAM behavior
Everything below applies wherever Cedar is the authorization destination, whichever cloud the appliance runs in. The AWS names in it, such as ARNs andAssumeRole, come from the ORIGIN model the application still speaks, not from the target.
Policy synchronization
Each appliance maintains its own policy set. Changes are checked about every 30 seconds, although that interval is not a propagation deadline. There is no fixed upper bound for revocation to take effect. When the policy source is unavailable, the appliance continues to use its last-known-good policy set and reports that the data is stale. The policy does not expire automatically. A change applied to one appliance has no effect on another.Accounts and root credentials
Account IDs in adapted ARNs identify logical accounts within an appliance. The ARN spelling is inherited from the origin model and names nothing in AWS: these do not create AWS accounts or billing relationships, and AWS Organizations policies do not apply. Each appliance issues one long-lived access key and secret for the logical account root, and shows the secret once. Because this principal has unrestricted access and the IAM API cannot rotate its credential, store it with the controls used for the appliance’s most privileged secret.API coverage and logging
Each appliance serves 50 origin-model IAM administration operations for roles, customer-managed policies, instance profiles and OIDC providers. It also servesGetCallerIdentity, AssumeRole and AssumeRoleWithWebIdentity. A role’s trust policy controls session creation; deleting the role invalidates its sessions.
Allowed calls are absent from the per-request audit log. Diagnostics contain denied calls and report-only findings.
Cedar IAM limitations
These limitations apply to an AWS-origin application whose policies are adapted to Cedar at the Max adaptation tier. They are properties of that adaptation, not of any one target cloud. The AWS IAM service adapter provides operation-by-operation coverage.AssumeRole does not accept role chaining, session policies, ExternalId or MFA inputs. A design that depends on ExternalId for confused-deputy protection must provide that protection elsewhere.
Cross-account role assumption is supported between configured logical accounts when both the caller’s policy and the target role’s trust policy allow it. A policy document that names a concrete principal from another AWS account is refused.
Related topics
- AWS IAM service adapter: Coverage for each supported IAM and STS operation
- Permissions Model: Access granted to the Tensor9 control plane inside a customer’s environment
- Security Model: Trust relationships between Tensor9, you and your customer
- Service Adapters: Supported services and target-cloud mappings