ISO/IEC 27001

⌘K
  1. Home
  2. Docs
  3. ISO/IEC 27001
  4. Other Doc
  5. Access Control Matrix

Access Control Matrix

1. Purpose

The Access Control Matrix (ACM) defines which roles are permitted to access organizational systems, applications, information, cloud environments, and business processes.

It helps the organization:

  • Apply least privilege.
  • Prevent unauthorized access.
  • Define role-based access.
  • Identify excessive permissions.
  • Support segregation of duties.
  • Standardize access approvals.
  • Support joiner/mover/leaver processes.
  • Conduct periodic access reviews.
  • Provide audit evidence.

Core Principle

Role → Required Access → Approved Permission → Controlled Use → Periodic Review → Revoke When No Longer Required


2. Scope

The Access Control Matrix may cover:

  • Employees
  • Contractors
  • Consultants
  • Interns
  • Third-party users
  • Privileged administrators
  • Business applications
  • SaaS platforms
  • Cloud environments
  • Databases
  • Source-code repositories
  • Security tools
  • Corporate systems
  • Customer systems
  • Physical/remote access where applicable

3. What Is an Access Control Matrix?

An Access Control Matrix maps:

WHO → CAN ACCESS WHAT → AT WHAT LEVEL

For example:

RoleSystemAccess
DeveloperSource Code RepositoryRead/Write
DeveloperProduction AWSLimited / Approved
Customer SupportSupport PlatformRead/Write
HRHR SystemFull Business Administration
FinanceAccounting SystemFinance Administration
SecuritySecurity PlatformSecurity Administration

The matrix should reflect actual organizational roles and systems.


4. Access Levels

Use standardized access levels where practical.

LevelMeaning
No AccessAccess is not permitted
ReadView information only
CreateCreate records/information
WriteCreate or modify information
ApproveApprove transactions/requests
DeleteDelete information
AdminConfigure/manage the system
Privileged AdminHigh-risk administrative access
TemporaryAccess for a defined period

Not every application needs every access level.


5. Example Role-Based Access Matrix

The following is an example for a SaaS startup.

System / ResourceCEOCTOEngineeringSecurity/ISMSIT AdminHRFinanceSupportProcurement
Corporate EmailAdmin/UseAdmin/UseUseAdmin/UseAdminUseUseUseUse
HR SystemReadNoNoNoNoAdminNoNoNo
Finance SystemApproveReadNoNoNoNoAdminNoRead
CRMReadReadNoNoNoNoReadRead/WriteRead/Write
Customer SupportReadReadNoReadAdminNoNoRead/WriteNo
Source Code RepositoryReadAdminRead/WriteReadNoNoNoNoNo
AWS ProductionLimitedAdminLimitedSecurityAdminNoNoNoNo
AWS DevelopmentReadAdminRead/WriteReadAdminNoNoNoNo
Security PlatformReadReadLimitedAdminAdminNoNoNoNo
Vulnerability PlatformReadReadRemediateAdminAdminNoNoNoNo
Vendor ManagementApproveReadNoReadNoNoReadNoAdmin
Document RepositoryRead/WriteRead/WriteRead/WriteRead/WriteAdminRead/WriteRead/WriteRead/WriteRead/Write

Note: This is an example. Actual permissions should be based on business responsibilities, risk, system functionality, and the organization’s approved access model.


6. Detailed Access Control Matrix

For audit purposes, maintain a more granular matrix.

IDRoleSystemEnvironmentResourcePermissionData ClassificationPrivileged?Approval RequiredReview FrequencyStatus
ACM-001DeveloperGitHubProductionSource CodeRead/WriteConfidentialNoEngineering LeadQuarterlyActive
ACM-002DeveloperAWSProductionApplication LogsReadConfidentialNoCTOQuarterlyActive
ACM-003SecurityAWSProductionSecurity ServicesAdminRestrictedYesCTOMonthly/QuarterlyActive
ACM-004SupportSupport PlatformProductionCustomer TicketsRead/WriteConfidentialNoSupport ManagerQuarterlyActive
ACM-005HRHR PlatformProductionEmployee RecordsAdminConfidentialYesHR HeadQuarterlyActive
ACM-006FinanceFinance SystemProductionFinancial RecordsAdminConfidentialYesFinance HeadQuarterlyActive
ACM-007AuditorAudit RepositoryTemporaryAudit EvidenceReadConfidentialNoSecurity LeadPer EngagementTemporary

7. AWS Cloud Access Matrix

For AWS environments, access should be defined at role/resource level rather than simply giving broad account access.

RoleAWS EnvironmentIAM RoleAccessMFAProductionReview
DeveloperDevelopmentDeveloperRoleRead/WriteRequiredNoQuarterly
DeveloperProductionProductionReadOnlyReadRequiredLimitedQuarterly
DevOpsDevelopmentDevOpsRoleAdminRequiredNoQuarterly
DevOpsProductionProductionAdminAdminRequiredYesMonthly/Quarterly
SecurityProductionSecurityAuditRoleSecurity ReadRequiredYesQuarterly
SecurityProductionSecurityAdminSecurity AdminRequiredYesMonthly/Quarterly
SupportProductionSupportReadOnlyLimited ReadRequiredLimitedQuarterly
External AuditorAudit Account/RepositoryAuditorRoleRead OnlyRequiredNoPer Engagement

The exact permissions should be defined using the organization’s AWS IAM roles and security architecture.


8. Application Access Matrix

For each application, define the available roles.

Example: Customer Support Platform

RoleView TicketsCreate TicketUpdate TicketExport DataDelete TicketAdmin
Support Agent✓✓✓RestrictedNoNo
Support Manager✓✓✓✓RestrictedNo
Security✓NoNoRestrictedNoNo
IT AdminAs RequiredAs RequiredAs RequiredRestrictedRestricted✓
HRNoNoNoNoNoNo

This level of detail helps prevent broad or unnecessary permissions.


9. Database Access Matrix

Database access should be separately controlled because databases may contain sensitive or customer information.

RoleDatabaseEnvironmentAccessDataDirect QueryWriteAdmin
DeveloperCustomer DBDevelopmentRead/WriteTest DataYesYesNo
DeveloperCustomer DBProductionRead LimitedCustomer DataRestrictedNoNo
DBACustomer DBProductionAdminCustomer DataYesYesYes
SecurityCustomer DBProductionAudit/ReadSecurity DataLimitedNoNo
SupportCustomer DBProductionApplication-mediatedCustomer DataNoNoNo

Production database access should be more restrictive than development access.


10. Source Code Access Matrix

RoleRepositoryViewCommitMergeBranch AdminRepository Admin
DeveloperAssigned Project✓✓ControlledNoNo
Engineering LeadAssigned Project✓✓✓LimitedNo
CTOAll Projects✓✓✓✓Limited
SecurityRequired Projects✓NoNoNoNo
External ConsultantApproved Project✓As ApprovedNoNoNo

Branch protection and code-review requirements should be implemented where appropriate.


11. Privileged Access Matrix

Maintain a separate view for high-risk access.

RolePrivileged SystemPrivilegeBusiness NeedMFALoggingReview
CTOAWSAdministratorCloud administrationRequiredRequiredPeriodic
Security LeadSecurity PlatformAdministratorSecurity operationsRequiredRequiredPeriodic
IT AdminIdentity PlatformAdministratorIdentity managementRequiredRequiredPeriodic
DBAProduction DBAdministratorDatabase administrationRequiredRequiredPeriodic
DevOpsProduction InfrastructureAdministratorDeployment/operationsRequiredRequiredPeriodic

Privileged access should be limited to named individuals and should not normally be provided through shared administrator accounts.


12. Temporary Access Matrix

Temporary access should include an expiry date.

UserSystemAccessPurposeStartEndApproverStatus
External AuditorAudit RepositoryReadSOC 2 Audit01-Oct15-OctSecurity LeadActive
ConsultantAWSRead OnlyVAPT05-Oct12-OctCTOActive
DeveloperProduction LogsReadIncident Investigation10-Oct11-OctSecurity LeadClosed

Temporary access should be removed when the defined period ends.


13. Third-Party Access Matrix

Third PartySystemAccessDataPurposeStartExpiryOwner
Security ConsultantVAPT PlatformTestingTechnicalSecurity AssessmentDateDateSecurity
External AuditorAudit RepositoryReadAudit EvidenceCertification AuditDateDateISMS
Cloud ConsultantAWSLimited AdminTechnicalCloud ProjectDateDateCTO

Third-party access should use individual named accounts wherever practical.


14. Segregation of Duties

The Access Control Matrix should identify conflicting combinations.

Example

ActivityRole ARole BSame Person Allowed?
Create SupplierProcurement—Yes
Approve SupplierProcurement Manager—Controlled
Create PaymentFinance—Yes
Approve PaymentFinance Manager—Controlled
Deploy CodeDeveloper—Yes
Approve Production ReleaseEngineering Lead—Controlled
Perform Internal AuditInternal Auditor—Independent

The matrix should be reviewed against the organization’s Segregation of Duties Policy.


15. Joiner Access

When a new employee joins:

Role Identified → Standard Role Access → Manager Approval → Provision → Verify → Record

Use role-based access rather than manually assigning unrelated permissions.

Example

A new customer support employee receives the approved Support Agent access package.


16. Mover Access

When an employee changes role:

New Role → Compare Existing Access → Remove Unnecessary Access → Add New Access → Verify

Example

An employee moves:

Engineering → Customer Support

Remove:

  • Source-code write access
  • AWS development access
  • CI/CD access
  • Engineering SaaS tools

Add:

  • Customer support platform
  • Approved CRM access
  • Support collaboration tools

17. Leaver Access

When employment or engagement ends:

Identify Access → Revoke → Verify → Record

Review:

  • Email
  • SSO
  • VPN
  • SaaS
  • AWS/cloud
  • Source code
  • Databases
  • Security systems
  • API keys
  • SSH keys
  • Tokens
  • Physical access

18. Access Review

The matrix should be compared with actual system permissions during periodic access reviews.

Review Process

Access Matrix

↓

Actual User Access

↓

Compare

↓

Identify Excess/Incorrect Access

↓

Owner Review

↓

Remove/Modify

↓

Verify

↓

Record Evidence


19. Access Review Record

UserRoleSystemMatrix AccessActual AccessDifferenceActionOwnerDateStatus
User ADeveloperAWSReadAdminExcessRemove AdminCTODateClosed
User BSupportCRMRead/WriteRead/WriteNoneNoneSupportDateConfirmed
User CFormer ContractorGitHubNo AccessReadExcessRevokeEngineeringDateClosed

This provides useful evidence that the matrix is actually being used rather than being a static document.


20. Access Exceptions

If a user requires access outside the standard matrix:

Exception IDUserSystemRequested AccessReasonRiskCompensating ControlApproverExpiryStatus
EX-001DeveloperProduction DBTemporary ReadIncident investigationMediumMFA + loggingCTO/SecurityDateClosed

Exceptions should be:

  • Business justified
  • Risk assessed
  • Approved
  • Time-bound where practical
  • Reviewed
  • Removed when no longer required

21. Access Matrix Maintenance

The matrix should be updated when there are changes to:

  • Organizational roles
  • Applications
  • Cloud environments
  • Business processes
  • Information classification
  • Security risks
  • Regulatory requirements
  • Customer requirements
  • Access models
  • System functionality

Update Flow

Change Identified → Impact Assessment → Update Matrix → Owner Approval → Implement → Verify → Record


22. Access Matrix Ownership

ResponsibilityRole
Overall Access ModelSecurity/ISMS
Business Role DefinitionBusiness Owner
Application PermissionsApplication/System Owner
Cloud PermissionsCloud/IT Owner
User ProvisioningIT/System Administrator
Access ApprovalManager/System Owner
Privileged AccessSystem Owner/Security
Periodic ReviewSystem/Data Owner
Matrix MaintenanceSecurity/ISMS + System Owners
Independent VerificationInternal Audit

The exact allocation should reflect the organization’s structure.


23. Access Control Matrix – Master Template

Use this as the organization’s master matrix.

IDRoleUser/GroupSystemEnvironmentResourceAccess LevelData ClassificationPrivilegedBusiness PurposeApproval AuthorityMFALoggingStart DateExpiryReview FrequencyStatus
ACM-001
ACM-002
ACM-003

24. Audit Evidence

An auditor may request:

  • Approved Access Control Matrix
  • User Access Requests
  • Access approvals
  • IAM configuration
  • Application role configuration
  • Privileged access list
  • Access review records
  • User provisioning evidence
  • Access revocation evidence
  • Temporary access records
  • Third-party access records
  • Exceptions
  • SoD reviews
  • AWS IAM evidence
  • SSO/MFA evidence
  • Access logs
  • Corrective actions

Audit Trail

The organization should be able to demonstrate:

Role → Access Requirement → Request → Approval → Provisioning → Actual Access → Review → Revocation


25. Common Mistakes

❌ Matrix exists but actual permissions are different

The matrix must reflect the intended access model and be reconciled with actual permissions.

❌ Everyone receives administrator access

This violates the principle of least privilege.

❌ Temporary access has no expiry

Temporary access should have a defined end date where practical.

❌ Old access remains after role changes

Mover processes must remove unnecessary access.

❌ Shared accounts

Individual accountability should be maintained.

❌ No distinction between production and development

Production access normally requires greater control.

❌ Matrix never gets reviewed

The matrix should change as the organization, systems, roles, and risks change.


26. Startup-Friendly Implementation

A startup does not need hundreds of complex access rules on day one.

Start with:

Tier 1 – Critical Systems

  • AWS production
  • Source-code repository
  • Identity provider
  • Customer database
  • Security platforms
  • Backup systems

Tier 2 – Business Systems

  • CRM
  • HR
  • Finance
  • Customer support
  • Collaboration
  • Procurement

Tier 3 – Standard Applications

  • General SaaS tools
  • Internal applications
  • Low-risk business tools

Define standard roles first, then add exceptions only where required.


27. Relationship with Other ISMS Documents

The Access Control Matrix connects:

Information & Asset Inventory

↓

Asset Ownership

↓

Information Classification

↓

Risk Assessment

↓

Access Control Matrix

↓

User Access Request

↓

Access Provisioning

↓

Access Review

↓

Access Revocation

↓

Audit Evidence

It also connects with:

  • Access Control Policy
  • Privileged Access Management
  • Segregation of Duties Policy
  • Employee Offboarding Checklist
  • Contractor Offboarding Checklist
  • Cloud Asset Inventory
  • SaaS Application Register
  • Data Inventory
  • Information Classification Policy
  • Incident Management Procedure
  • Risk Register

28. ISO 27001 Connection

The Access Control Matrix supports the organization’s implementation of applicable information security controls relating to:

  • Identity management
  • Authentication
  • Access rights
  • Privileged access
  • Information access restriction
  • Segregation of duties
  • User access lifecycle
  • Secure access to systems and applications

The exact controls applicable to the organization should be determined through its risk assessment and Statement of Applicability (SoA).


29. Final Audit Trail

A well-maintained Access Control Matrix should answer:

Who can access what?

Why do they need it?

What level of access do they have?

Who approved it?

Is the access still required?

Does actual access match approved access?

When should it be removed?

Final Principle

Define access by role, grant only what is required, approve sensitive access, verify actual permissions, review regularly, and remove access when the business need ends.

How can we help?

Leave a Reply

Your email address will not be published. Required fields are marked *