Access Control Policy
1. Principle¶
FirstTry follows the principle of least privilege: Users have minimum access required for their role.
2. Access Tiers¶
Tier 1: Public (No Authentication Required)¶
- Documentation (docs/)
- Public GitHub repository (if applicable)
Tier 2: Developer (Atlassian OAuth2)¶
- Source code repository access (GitHub)
- Development environment
- Requires: GitHub pull request review
Tier 3: Maintainer (Admin)¶
- Merge permissions on main branch
- Release and deployment authority
- Requires: Multi-factor authentication (MFA) on GitHub
- Requires: Security training (annual)
Tier 4: Security Lead (Full Admin)¶
- All above
- Plus: vulnerability triage, incident response decisions
- Requires: MFA (mandatory)
- Requires: Security clearance or vetting
3. Multi-Factor Authentication (MFA)¶
Mandatory for:
- All GitHub accounts with repo push access
- Atlassian Forge deployment accounts
- Jira Cloud admin site (if test site exists)
Method: GitHub's built-in authentication (TOTP or security keys)
Enforcement: GitHub branch protection rules block commits from non-MFA accounts.
4. Onboarding¶
New team member process:
- Assign to GitHub team (with least privilege role)
- Enable MFA on GitHub account
- Provision Forge CLI credentials (if deploying)
- Grant Jira Cloud test site access (if applicable)
- Conduct security training (docs/trust/SECURITY_OVERVIEW.md)
Offboarding:
- Disable GitHub access (remove from team)
- Revoke Forge credentials
- Remove from Jira Cloud site
- Audit for any lingering access
5. Access Review¶
Quarterly (every 3 months):
- List all users with repo access
- Confirm each user still requires access
- Revoke access for users who have changed roles
- Update RBAC_MATRIX.md with current state
- Document findings in changelog or access log
6. Credential Management¶
Forge CLI credentials:
- Store in
~/.forge/cli.conf(local machine; never commit) - Rotate annually or on role change
- Revoke on offboarding
- Never share credentials (one per person)
GitHub tokens (if used for automation):
- Store in GitHub Secrets (if CI/CD uses PATs)
- Rotate every 90 days
- Limit scope to minimum required
- Audit token usage logs
7. Incident and Breach Response¶
If unauthorized access suspected:
- Notify security.contact@firsttry.run immediately
- Revoke suspect credentials
- Conduct audit log review (GitHub Actions logs, Forge logs)
- Reset MFA on affected accounts
- Follow INCIDENT_RESPONSE_PLAN.md
References¶
- RBAC_MATRIX.md: Current access matrix
- INCIDENT_RESPONSE_PLAN.md: Breach response procedures
- docs/trust/SECURITY_OVERVIEW.md: Security principles