Skip to content

feat(iam): IAM baseline roles module#8

Merged
arjunmehta-git merged 1 commit into
mainfrom
feat/iam-baseline
May 27, 2026
Merged

feat(iam): IAM baseline roles module#8
arjunmehta-git merged 1 commit into
mainfrom
feat/iam-baseline

Conversation

@arjunmehta-git

Copy link
Copy Markdown
Member

Summary

Implements the IAM baseline from the design discussion. Closes #5.

Roles

Role Use case
ReadOnly Auditors, read-only access
Developer Day-to-day dev work, no IAM/billing
PlatformEngineer Platform team, no org management
CICD GitHub Actions pipelines via OIDC
BreakGlass Emergency full access, MFA + audit

Notes

  • OIDC provider must be created separately (see README)
  • BreakGlass alarm is optional but enabled by default
  • PassRole scoped to tcs-* prefix only

- ReadOnly, Developer, PlatformEngineer, CICD, BreakGlass roles
- Resource-scoped iam:PassRole for developer role (tcs-* prefix)
- OIDC trust for GitHub Actions on CICD role
- MFA enforcement on all human-assumed roles
- Optional CloudWatch alarm on BreakGlass assumption

Signed-off-by: Hamza Mohammed <hamza-mohd@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 27, 2026 06:26

@arjunmehta-git arjunmehta-git left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The OIDC setup looks correct. One thing worth documenting in the README: the subject claim format matters. repo:org/repo:* is broad - for production, teams should scope it to specific branches or environments (e.g. repo:org/repo:ref:refs/heads/main).

@winkletinkle winkletinkle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the BreakGlass alarm implementation - looks right. The MFA condition in the trust policy uses the correct key (aws:MultiFactorAuthPresent). LGTM.

@arjunmehta-git arjunmehta-git merged commit d5d7939 into main May 27, 2026
1 check failed
@arjunmehta-git arjunmehta-git deleted the feat/iam-baseline branch May 27, 2026 06:26
@arjunmehta-git arjunmehta-git removed the request for review from Copilot May 27, 2026 06:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IAM baseline - least-privilege roles for platform teams

3 participants