{
  "title": "How to Implement Least Privilege to Limit Access: FAR 52.204-21 / CMMC 2.0 Level 1 - Control - AC.L1-B.1.II Step-by-Step",
  "date": "2026-04-01",
  "author": "Lakeridge Technologies",
  "featured_image": "/assets/images/blog/2026/4/how-to-implement-least-privilege-to-limit-access-far-52204-21-cmmc-20-level-1-control-acl1-b1ii-step-by-step.jpg",
  "content": {
    "full_html": "<p>Implementing least privilege (the practice of giving users and processes the minimum access necessary) is a foundational requirement under FAR 52.204-21 and maps to CMMC 2.0 Level 1 control AC.L1-B.1.II; this post gives a practical, step-by-step approach a small business can use to meet the requirement, including specific technical actions, real-world examples, and compliance artifacts to produce during assessments.</p>\n\n<h2>What the control requires and the key objectives</h2>\n<p>FAR 52.204-21 requires basic safeguarding of Federal contract information (FCI) on contractor systems; one of the core expectations—reflected in CMMC 2.0 Level 1 practice AC.L1-B.1.II—is that access to systems and information must be limited to authorized users and processes and granted on a need-to-know basis. Key objectives are to (1) identify what data and systems are covered, (2) restrict access through technical controls, (3) maintain documented authorization processes, and (4) be able to demonstrate periodic review and change control.</p>\n\n<h2>Step-by-step implementation</h2>\n<h3>1) Inventory and classify systems and data</h3>\n<p>Begin by identifying all systems that process, store, or transmit FCI (workstations, servers, cloud resources, SaaS apps). Create a simple table: system name, owner, data classification (FCI / internal / public), and access methods (RDP, SSH, web application). For small businesses this can be a spreadsheet or a lightweight CMDB. Example: \"Engineering design server (on-prem VM) — stores specs for DoD subcontract — classified as FCI — accessed via VPN + domain credentials.\"</p>\n\n<h3>2) Define roles, responsibilities, and an access matrix</h3>\n<p>Create concise role definitions (e.g., Admin, Engineer, Finance, Reception) and map which roles require access to which systems/data. Keep the matrix minimal and enforce role-based access control (RBAC) where possible instead of assigning privileges to individuals. Example matrix entry: \"Engineers: read/write access to engineering repo (GitLab project X) for files marked 'FCI', no access to HR payroll system.\" Store role approvals as change records (signed emails or ticket approvals) as evidence for assessors.</p>\n\n<h3>3) Implement technical controls (RBAC, groups, remove local admin, and MFA)</h3>\n<p>Use built-in IAM features: Active Directory groups and Group Policy (Windows), Azure AD groups and RBAC, AWS IAM policies, or cloud SSO providers (Okta, JumpCloud) to assign permissions to groups, not users. Remove unnecessary local administrator accounts on endpoints. Quick Windows audit examples: list local admins with PowerShell Get-LocalGroupMember -Group \"Administrators\" and remove a domain user with Remove-LocalGroupMember -Group \"Administrators\" -Member \"CORP\\\\jdoe\". On Linux, avoid giving sudo ALL; instead craft sudoers entries for precise commands, e.g., jsmith ALL=(root) /usr/bin/systemctl restart myapp.service. For cloud storage, use narrowly scoped IAM policies — example AWS JSON to allow read-only access to a single bucket: { \"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::example-bucket/*\"]}] }.</p>\n\n<h3>4) Manage privileged accounts and just-in-time access</h3>\n<p>Privileged accounts are high-risk. Implement controls such as: no shared admin accounts, unique credentials for each admin, MFA for all privilege elevations, and prefer just-in-time (JIT) elevation where possible (Azure AD PIM, AWS Session Manager, or temporary sudo elevations via workflow). For smaller shops, use a lightweight PAM or vault (HashiCorp Vault, AWS Secrets Manager, or an enterprise password manager supporting ephemeral credentials) to store and rotate admin secrets and to provide audit trails.</p>\n\n<h3>5) Automate provisioning, deprovisioning, and periodic reviews</h3>\n<p>Integrate access provisioning with HR and use a ticketing flow: create account upon hire, update role on promotion, revoke on termination. Automate where possible (SCIM with IdP or Azure AD Connect). Schedule quarterly access reviews and produce attestation records: \"90-day access review completed: list of role membership changes and approvals.\" Automation reduces the risk of orphaned accounts.</p>\n\n<h2>Real-world small business scenarios</h2>\n<p>Scenario A: A small subcontractor receives FCI spreadsheets via email. Actions: restrict spreadsheet access to a SharePoint site with Azure AD group membership, disable file download where practical, and grant edit rights only to the \"Project Engineers\" group. Scenario B: A one-person IT shop runs a shared admin account—replace that with a per-person admin account + password vault + MFA and document each admin action via privileged session logging (RDP session records or SSH bastion). These concrete steps both limit blast radius and create evidence for compliance reviewers.</p>\n\n<h2>Risks of not implementing least privilege</h2>\n<p>Failing to implement least privilege increases risk of accidental disclosure, lateral movement after credential compromise, and unauthorized change to systems. For contractors this can lead to loss of contracts, partial suspension, fines, reputational damage, and an inability to pass CMMC assessments. Technically, excessive privileges allow malware or compromised credentials to exfiltrate FCI or pivot to other systems, greatly magnifying impact.</p>\n\n<h2>Compliance tips and best practices</h2>\n<p>Document an access control policy that maps to the control AC.L1-B.1.II; keep artifacts: access matrices, role definitions, onboarding/offboarding procedures, screenshots of IAM group assignments, access review logs, and privileged access logs. Enforce unique accounts (no sharing), require MFA for remote access, and maintain least-privilege as a living practice—review whenever system roles change. During assessments, present sample tickets for provisioning, logs showing group membership changes, and evidence of quarterly reviews.</p>\n\n<p>In summary, meeting FAR 52.204-21 and CMMC 2.0 Level 1 AC.L1-B.1.II for least privilege is achievable for small businesses with a repeatable process: inventory and classify systems, define roles and an access matrix, implement RBAC and technical controls (remove local admins, use MFA and PAM), automate provisioning/deprovisioning, perform periodic access reviews, and keep clear documentation. These steps reduce risk and create the evidence needed to demonstrate compliance.</p>",
    "plain_text": "Implementing least privilege (the practice of giving users and processes the minimum access necessary) is a foundational requirement under FAR 52.204-21 and maps to CMMC 2.0 Level 1 control AC.L1-B.1.II; this post gives a practical, step-by-step approach a small business can use to meet the requirement, including specific technical actions, real-world examples, and compliance artifacts to produce during assessments.\n\nWhat the control requires and the key objectives\nFAR 52.204-21 requires basic safeguarding of Federal contract information (FCI) on contractor systems; one of the core expectations—reflected in CMMC 2.0 Level 1 practice AC.L1-B.1.II—is that access to systems and information must be limited to authorized users and processes and granted on a need-to-know basis. Key objectives are to (1) identify what data and systems are covered, (2) restrict access through technical controls, (3) maintain documented authorization processes, and (4) be able to demonstrate periodic review and change control.\n\nStep-by-step implementation\n1) Inventory and classify systems and data\nBegin by identifying all systems that process, store, or transmit FCI (workstations, servers, cloud resources, SaaS apps). Create a simple table: system name, owner, data classification (FCI / internal / public), and access methods (RDP, SSH, web application). For small businesses this can be a spreadsheet or a lightweight CMDB. Example: \"Engineering design server (on-prem VM) — stores specs for DoD subcontract — classified as FCI — accessed via VPN + domain credentials.\"\n\n2) Define roles, responsibilities, and an access matrix\nCreate concise role definitions (e.g., Admin, Engineer, Finance, Reception) and map which roles require access to which systems/data. Keep the matrix minimal and enforce role-based access control (RBAC) where possible instead of assigning privileges to individuals. Example matrix entry: \"Engineers: read/write access to engineering repo (GitLab project X) for files marked 'FCI', no access to HR payroll system.\" Store role approvals as change records (signed emails or ticket approvals) as evidence for assessors.\n\n3) Implement technical controls (RBAC, groups, remove local admin, and MFA)\nUse built-in IAM features: Active Directory groups and Group Policy (Windows), Azure AD groups and RBAC, AWS IAM policies, or cloud SSO providers (Okta, JumpCloud) to assign permissions to groups, not users. Remove unnecessary local administrator accounts on endpoints. Quick Windows audit examples: list local admins with PowerShell Get-LocalGroupMember -Group \"Administrators\" and remove a domain user with Remove-LocalGroupMember -Group \"Administrators\" -Member \"CORP\\\\jdoe\". On Linux, avoid giving sudo ALL; instead craft sudoers entries for precise commands, e.g., jsmith ALL=(root) /usr/bin/systemctl restart myapp.service. For cloud storage, use narrowly scoped IAM policies — example AWS JSON to allow read-only access to a single bucket: { \"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::example-bucket/*\"]}] }.\n\n4) Manage privileged accounts and just-in-time access\nPrivileged accounts are high-risk. Implement controls such as: no shared admin accounts, unique credentials for each admin, MFA for all privilege elevations, and prefer just-in-time (JIT) elevation where possible (Azure AD PIM, AWS Session Manager, or temporary sudo elevations via workflow). For smaller shops, use a lightweight PAM or vault (HashiCorp Vault, AWS Secrets Manager, or an enterprise password manager supporting ephemeral credentials) to store and rotate admin secrets and to provide audit trails.\n\n5) Automate provisioning, deprovisioning, and periodic reviews\nIntegrate access provisioning with HR and use a ticketing flow: create account upon hire, update role on promotion, revoke on termination. Automate where possible (SCIM with IdP or Azure AD Connect). Schedule quarterly access reviews and produce attestation records: \"90-day access review completed: list of role membership changes and approvals.\" Automation reduces the risk of orphaned accounts.\n\nReal-world small business scenarios\nScenario A: A small subcontractor receives FCI spreadsheets via email. Actions: restrict spreadsheet access to a SharePoint site with Azure AD group membership, disable file download where practical, and grant edit rights only to the \"Project Engineers\" group. Scenario B: A one-person IT shop runs a shared admin account—replace that with a per-person admin account + password vault + MFA and document each admin action via privileged session logging (RDP session records or SSH bastion). These concrete steps both limit blast radius and create evidence for compliance reviewers.\n\nRisks of not implementing least privilege\nFailing to implement least privilege increases risk of accidental disclosure, lateral movement after credential compromise, and unauthorized change to systems. For contractors this can lead to loss of contracts, partial suspension, fines, reputational damage, and an inability to pass CMMC assessments. Technically, excessive privileges allow malware or compromised credentials to exfiltrate FCI or pivot to other systems, greatly magnifying impact.\n\nCompliance tips and best practices\nDocument an access control policy that maps to the control AC.L1-B.1.II; keep artifacts: access matrices, role definitions, onboarding/offboarding procedures, screenshots of IAM group assignments, access review logs, and privileged access logs. Enforce unique accounts (no sharing), require MFA for remote access, and maintain least-privilege as a living practice—review whenever system roles change. During assessments, present sample tickets for provisioning, logs showing group membership changes, and evidence of quarterly reviews.\n\nIn summary, meeting FAR 52.204-21 and CMMC 2.0 Level 1 AC.L1-B.1.II for least privilege is achievable for small businesses with a repeatable process: inventory and classify systems, define roles and an access matrix, implement RBAC and technical controls (remove local admins, use MFA and PAM), automate provisioning/deprovisioning, perform periodic access reviews, and keep clear documentation. These steps reduce risk and create the evidence needed to demonstrate compliance."
  },
  "metadata": {
    "description": "A practical, step-by-step guide for small businesses to implement least-privilege access controls and meet FAR 52.204-21 / CMMC 2.0 Level 1 AC.L1-B.1.II requirements.",
    "permalink": "/how-to-implement-least-privilege-to-limit-access-far-52204-21-cmmc-20-level-1-control-acl1-b1ii-step-by-step.json",
    "categories": [],
    "tags": []
  }
}