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

  1. 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.
  2. 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.
  3. 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:
    • Write access to the specific project repositories they are working on.
    • Read access to most other company repositories.
  • Cloudflare:
    • Read-Only access to the main Cloudflare account.
    • Administrator or Developer access to specific Pages projects for the preview/staging environments.
  • Project Management Tool (Jira/Asana):
    • Member role within their assigned projects.
  • Password Manager:
    • Read access to shared vaults needed for their projects.

Project Managers

  • GitHub:
    • Read access to project repositories.
  • Cloudflare:
    • Read-Only access to relevant accounts and projects.
  • Project Management Tool (Jira/Asana):
    • Administrator role for the projects they manage.
  • Password Manager:
    • Read access to relevant shared vaults.

System Administrators (DevOps/Senior Leadership)

  • GitHub:
    • Owner or Admin role on the company organization.
  • Cloudflare:
    • Super Administrator role 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.