Access Control Policy
This document outlines our policy for managing access to company systems and services. Our approach is guided by the Principle of Least Privilege, which means that users are only granted the minimum level of access they need to perform their job duties.
Roles and Responsibilities
- System Administrators: Designated senior technical staff (e.g., DevOps lead, CTO) who are responsible for managing access and permissions across all our platforms.
- Managers: Responsible for requesting access for their new hires and for notifying System Administrators when an employee’s role changes or when they leave the company.
- Employees: Responsible for safeguarding their credentials and for not sharing access with others.
Access Request Process
- New Hires: Access for new hires is provisioned as part of the
01_new_employee_onboarding_checklist.md. The hiring manager specifies the required level of access. - Role Changes: When an employee’s role changes, their manager must submit a request to a System Administrator to adjust their permissions accordingly. This may involve granting new access and revoking access that is no longer needed.
- New Project: When a new project is started, the Project Manager will request the necessary access for the project team.
Standard Access Levels by Role
This section defines the baseline permissions for common roles.
Developers
- GitHub:
Writeaccess to the specific project repositories they are working on.Readaccess to most other company repositories.
- Cloudflare:
Read-Onlyaccess to the main Cloudflare account.AdministratororDeveloperaccess to specific Pages projects for the preview/staging environments.
- Project Management Tool (Jira/Asana):
Memberrole within their assigned projects.
- Password Manager:
Readaccess to shared vaults needed for their projects.
Project Managers
- GitHub:
Readaccess to project repositories.
- Cloudflare:
Read-Onlyaccess to relevant accounts and projects.
- Project Management Tool (Jira/Asana):
Administratorrole for the projects they manage.
- Password Manager:
Readaccess to relevant shared vaults.
System Administrators (DevOps/Senior Leadership)
- GitHub:
OwnerorAdminrole on the company organization.
- Cloudflare:
Super Administratorrole on the main account.
- All other systems:
- Administrative access.
Access Reviews
- Frequency: System Administrators will conduct a full review of all user accounts and permissions on a quarterly basis.
- Process:
- Generate a list of all users and their access levels for key systems (GitHub, Cloudflare, Google Workspace).
- Review the list to identify any accounts or permissions that are no longer necessary.
- Particular attention will be paid to accounts with high levels of privilege.
- Goal: To ensure that permissions do not accumulate over time (“privilege creep”) and to remove stale accounts.
Authentication Requirements
- Two-Factor Authentication (2FA): 2FA must be enabled on all systems that support it, especially GitHub and Cloudflare.
- Strong Passwords: All users are required to use strong, unique passwords for each service. The use of our company password manager is mandatory to facilitate this.
This policy helps us maintain a secure environment by ensuring that access to our critical systems is always controlled, monitored, and appropriate.