Skip to content

Approvals and roles

Deployments separate requesting a change from approving it. Requesting queues a plan; approving executes it against a real AWS account. The two are distinct permissions so that one person cannot silently push infrastructure into production.

StackTakt seeds five roles. Roles reach people through groups: a group holds role grants at a scope, and members inherit the union of their groups’ grants.

RoleCan requestCan approveNotes
Organization AdminYesYesFull control of the organization, including identity.
Tenant AdminYesYesRun, approve, and manage people within their tenants. Cannot manage the organization.
OperatorYesNoRead and write, and request deployments.
RequesterYesNoRead, and request deployments for an approver to act on.
Read OnlyNoNoRead-only access to inventory, deployments, compliance, and audit.

Grants scope to the whole organization, one tenant, or a single AWS account inside a tenant. Details are in Users, groups, and grants.

A user who requested a deployment cannot approve it when anyone else with approval permission exists in that tenant. The approval fails with a clear message: ask a user with approval permission to review the plan.

There is one deliberate exception: when the requester is the sole eligible approver in the tenant (a one-person team), the approval goes through, and the audit event records sole_approver: true so the condition is visible to anyone reviewing the trail later.

Approval is always a distinct recorded action. Even in the sole-approver case, the plan was created, reviewed, and approved as separate audit events under one correlation ID.

The approval screen is the full plan: every resource with its action, the parameters as entered, the cost while running, and the control mapping the template version asserts. The apply runs exactly the reviewed plan artifact. If the plan is stale or wrong, the approver’s move is to not approve; the requester can destroy the planned deployment and create a new one.