Seed-stage B2B SaaS startup
Sample for a fictional organisation · 2,031 words[Company] Access Control Policy
- Version: 1.0
- Owner: Founder/CTO
- Approved by: Chief Executive Officer (CEO)
- Effective date: [Effective date]
- Next review date: [Review date]
1. Purpose
This policy defines how [Company] controls access to its systems, applications, and data. It sets out who may be granted access, how access is requested and approved, how it is reviewed, and how it is removed when it is no longer needed. The goal is to make sure that only authorized people and systems can reach [Company]'s information, and only to the extent their role requires.
[Company] handles personally identifiable information (PII) belonging to its customers and their end users. Controlling access properly reduces the risk of that data being viewed, changed, or disclosed without authorization, and supports [Company]'s commitments under its SOC 2 program and applicable US state privacy laws such as the California Consumer Privacy Act (CCPA).
2. Scope
This policy applies to all [Company] employees and contractors, and to any third party granted access to [Company] systems, and covers all systems that store, process, or transmit [Company] or customer data, including its cloud infrastructure (Amazon Web Services), productivity and collaboration suite (Google Workspace), source code repository (GitHub), and any other business application used to run the company.
Read the full example
[Company] Access Control Policy
- Version: 1.0
- Owner: Founder/CTO
- Approved by: Chief Executive Officer (CEO)
- Effective date: [Effective date]
- Next review date: [Review date]
1. Purpose
This policy defines how [Company] controls access to its systems, applications, and data. It sets out who may be granted access, how access is requested and approved, how it is reviewed, and how it is removed when it is no longer needed. The goal is to make sure that only authorized people and systems can reach [Company]'s information, and only to the extent their role requires.
[Company] handles personally identifiable information (PII) belonging to its customers and their end users. Controlling access properly reduces the risk of that data being viewed, changed, or disclosed without authorization, and supports [Company]'s commitments under its SOC 2 program and applicable US state privacy laws such as the California Consumer Privacy Act (CCPA).
2. Scope
This policy applies to all [Company] employees and contractors, and to any third party granted access to [Company] systems, and covers all systems that store, process, or transmit [Company] or customer data, including its cloud infrastructure (Amazon Web Services), productivity and collaboration suite (Google Workspace), source code repository (GitHub), and any other business application used to run the company.
3. Policy
Access to [Company] systems and data must be granted only on the basis of a demonstrated business need, following the principle of least privilege, and must be requested, approved, and recorded before it is provisioned. Access must be reviewed on a regular basis and removed promptly when it is no longer required, including when an employee or contractor leaves the company or changes role.
4. Access Control Model
[Company] uses role-based access control (RBAC) as its primary access model. Access to systems and data is assigned according to a person's job function (for example, engineering, customer support, or finance) rather than granted to individuals one request at a time. This approach is well suited to a small, fast-growing company because it lets new hires be provisioned quickly and consistently by assigning them the standard access bundle for their role, rather than relying on someone remembering the individual systems a new joiner needs.
All access, whether assigned through a role or granted individually, must also follow the principle of least privilege: a person or system is given the minimum access needed to do its job, and no more. As [Company] grows, roles and their associated access bundles must be kept up to date so that RBAC continues to reflect what people actually need.
5. Access to Networks and Network Services
[Company] operates entirely in the cloud and has no on-premises network to secure; "network access" in this policy means access to cloud infrastructure (AWS), business applications (Google Workspace), and source code systems (GitHub). Access to these services must only be possible after successful authentication, and multi-factor authentication (MFA) must be enabled and required for every system that supports it. Remote workers must not share accounts, devices, or credentials used to reach [Company] systems.
6. User Access Management
Access to [Company] systems is managed centrally wherever possible through Google Workspace, which acts as the primary identity source for company accounts, supplemented by direct account management in AWS and GitHub where Google Workspace is not used for sign-in.
6.1 User Registration and Deregistration
Every person who needs access to [Company] systems must have a unique, individually identifiable account; shared or generic accounts are not permitted except for documented service accounts. An account must be created only after a request has been approved as described in section 6.6, and must be deregistered (disabled or deleted) as described in section 6.5 when it is no longer needed.
6.2 User Access Provisioning
When a new employee or contractor joins, or an existing person changes role, access must be provisioned according to the standard role bundle that matches their job function, plus any additional access specifically approved. Provisioning must include:
- Creating or updating the person's Google Workspace account, which is used to sign in to supported applications.
- Adding the person to the appropriate groups or teams in AWS and GitHub that correspond to their role.
- Enabling multi-factor authentication before any access is used.
- Recording what was granted, to whom, by whom, and when.
6.3 Management of Privileged Access
Privileged access (such as AWS account administrator or IAM permissions, GitHub organization owner rights, or Google Workspace super administrator rights) must be limited to the smallest number of people who need it to do their job, and wherever the system supports it, administrators must use a separate account for administrative tasks rather than their everyday user account. Grants of privileged access must be individually recorded and are subject to more frequent review than standard access, as set out in section 6.4.
6.4 User Access Reviews
The Founder/CTO must review all privileged access at least every quarter, and all other user access at least every six months, to confirm that each person's access still matches their current role and is still needed. Access to systems that store or process customer PII must be included in every review. Reviews, and any access changes that result from them, must be recorded.
6.5 Removal and Adjustment of Access Rights
Access must be removed immediately, on the same day, when an employee or contractor departs involuntarily or when access is identified as posing an immediate risk. For all other departures, access must be removed within 5 business days of the person's last working day. Where a review or role change finds that a person's access is no longer needed or is broader than required, it must be adjusted within 5 business days of that finding. Accounts that have not been used for 30 consecutive days must be disabled pending confirmation that they are still needed.
6.6 Access Provisioning, Deprovisioning and Change Procedure
The step-by-step process for requesting, approving, modifying, and removing access is set out in Appendix A. All access changes, whether for new hires, role changes, or departures, must follow that procedure.
6.7 Segregation of Duties
[Company]'s small team means the same person (the Founder/CTO) often requests, approves, and provisions access for others. To compensate for this, every access grant must be recorded in a log that includes who requested it, who approved it, and who provisioned it, and this log must be reviewed by another authorized member of the team (such as the CEO) at least every quarter as part of the access review described in section 6.4. Where the team has grown enough that a request, an approval, and the provisioning of access can be handled by three different people, that separation must be used instead.
7. User Responsibility for Authentication Information
Every person with access to [Company] systems is responsible for keeping their passwords, security keys, and other authentication information confidential, and must not share their account or credentials with anyone else, including other employees. Any suspected compromise of a password or account must be reported to the Founder/CTO immediately.
7.1 Password Policy
- Passwords must be at least 12 characters long.
- [Company] does not require periodic password rotation unless there is reason to believe a password has been compromised.
- Multi-factor authentication must be enabled on every account and system that supports it, in addition to a password.
- Accounts must lock for 15 minutes, or until reset by an administrator, after 5 consecutive failed login attempts.
- Default or vendor-supplied passwords must be changed before a system is put into use.
8. System and Application Access
Access to individual systems and applications must follow the role-based bundles described in section 4, and must be restricted so that a person can only reach the specific systems, data, and functions their role requires.
8.1 Secure Log-on Procedures
Systems must not reveal which part of a login attempt (username or password) was incorrect, must not display more information than necessary before a user is authenticated, and must require multi-factor authentication where supported. Idle sessions on administrative interfaces for AWS, GitHub, and Google Workspace must lock or time out after 15 minutes of inactivity.
8.2 Password Management System
Where possible, password policies described in section 7.1 must be enforced through the built-in security settings of Google Workspace, AWS, and GitHub, rather than relying on individuals to apply them manually. Employees must use a password manager to generate and store credentials rather than reusing passwords across systems.
8.3 Use of Privileged Utility Programs
Tools or scripts capable of overriding normal system or application controls, such as AWS root account actions, GitHub organization-level administration, or infrastructure automation with elevated permissions, must be restricted to authorized administrators, must not be used for routine day-to-day work, and their use must be logged.
8.4 Access to Program Source Code
Access to [Company]'s source code repositories in GitHub is granted according to role and must be limited to the engineers who need it. Changes to production branches must go through a pull request with review by another engineer before merging, and force-pushes or history rewrites on protected branches are not permitted. Repository administrator rights are limited to the Founder/CTO or engineers specifically designated for that purpose.
9. Exceptions
Any exception to this policy must be requested from the Founder/CTO, documented in writing with the reason for the exception, and time-limited, with a defined date by which the exception will be reviewed or removed.
10. Violations & Enforcement
Failure to comply with this policy, including sharing credentials, bypassing access controls, or granting access without following the procedure in Appendix A, may result in disciplinary action up to and including termination of employment or contract, and may result in immediate suspension of system access while the matter is investigated.
11. Appendix A: Access Management Procedure
This appendix sets out the practical steps for requesting, approving, changing, and removing access to [Company] systems.
11.1 Access Request and Approval Process
- A request for new or changed access must identify the person, the system, the specific access needed, and the business reason.
- Requests must be approved by the Founder/CTO or, where the Founder/CTO is the person requesting access for themselves, by the CEO.
- Approved requests must be provisioned promptly and recorded in the access log described in section 6.7, including who requested, approved, and granted the access.
- Service accounts and API keys must have a named human owner responsible for them, must be limited to the minimum permissions needed, and must be included in access reviews.
- Accounts held by suppliers or support providers must have a defined end date at the time they are created, matching the expected length of the engagement, and must not be left open indefinitely.
- If the normal approver is unavailable, the CEO may grant emergency access. Emergency access must be time-limited to no more than 24 hours, must be logged, and must be reviewed by the Founder/CTO as soon as they are available afterward.
11.2 Access Modification and Removal Process
- When a person changes role, their access must be updated to match their new role bundle, and any access no longer needed must be removed within 5 business days of the change.
- When a person departs involuntarily, or access is found to pose an immediate risk, access must be removed the same day.
- For all other departures, access must be removed within 5 business days of the person's last working day.
- Supplier and support accounts must be disabled on or before their defined end date, unless a new end date is approved in advance.
- All removals and modifications must be recorded in the access log, including the date access was removed and who carried it out.
Disclaimer
This document is provided for informational purposes only and does not constitute legal advice. It is provided "as is", without warranty of any kind, express or implied, and no liability is accepted for any loss or damage arising from its use. It is used at your own discretion. Review it with a qualified adviser before adopting it.