🚨 CMMC Phase One started November 10! Here's everything you need to know →

How to Configure AWS IAM and Groups to Limit Information System Access to Allowed Transactions and Functions (Practical Guide) — FAR 52.204-21 / CMMC 2.0 Level 1 - Control - AC.L1-B.1.II

Practical, step-by-step guidance to implement FAR 52.204-21 / CMMC 2.0 AC.L1-B.1.II in AWS using IAM groups, roles, least privilege policies, permission boundaries, and monitoring to limit access to allowed transactions and functions.

April 03, 2026
4 min read

Share:

Schedule Your Free Compliance Consultation

Feeling overwhelmed by compliance requirements? Not sure where to start? Get expert guidance tailored to your specific needs in just 15 minutes.

Personalized Compliance Roadmap
Expert Answers to Your Questions
No Obligation, 100% Free

Limited spots available!

This post explains how to implement the Compliance Framework control AC.L1-B.1.II (limit information system access to allowed transactions and functions) in AWS using IAM groups, policies, roles, and monitoring — with step-by-step actions, concrete policy examples, CLI commands, and small-business scenarios to make the guidance actionable and auditable for FAR 52.204-21 and CMMC 2.0 Level 1 compliance.

Why this control matters and the risk of not implementing it

AC.L1-B.1.II requires you to ensure users and processes can only perform allowed transactions and functions; failure to enforce this leads to over-privileged accounts, accidental or malicious data exposure, unauthorized configuration changes, and loss of contracts or penalties under FAR/CMMC. For a small business contracting with the federal government, even a single excessive IAM permission can expose Controlled Unclassified Information (CUI) and trigger a compliance finding or contract termination.

Key AWS IAM constructs to meet the control

Use IAM groups to represent job functions (e.g., Developer, Ops, Finance), attach least-privilege policies to those groups, and use IAM roles for cross-account or machine access. Complement groups/policies with permission boundaries for delegated admins, Service Control Policies (SCPs) in AWS Organizations for top-level restrictions, and attribute-based access control (ABAC) or resource tags to constrain actions to allowed resources. Enable CloudTrail, AWS Config, and IAM Access Analyzer for auditing and evidence.

Step-by-step implementation

1) Design your role/group matrix (people -> group -> permissions)

Start by listing job functions and the exact transactions they must perform. Example small-business matrix: Developer (deploy Lambda, read S3 dev buckets), Ops (start/stop EC2 in prod-ops-tagged resources), Finance (read-only billing). Map each function to an IAM group — do not attach policies to individual users. Document this matrix (who, why, scope) to produce audit evidence for FAR/CMMC.

2) Create least-privilege policies (concrete examples)

Author customer-managed policies that scope actions to the minimum required API calls and resources. Use resource ARNs and conditions (tags, aws:RequestTag, aws:PrincipalTag, aws:RequestedRegion) to restrict where operations can run. Example: S3 read-only for specific buckets:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowListAndGetOnDevBuckets",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:s3:::acme-dev-bucket",
        "arn:aws:s3:::acme-dev-bucket/*"
      ]
    }
  ]
}

Example: allow Ops to Start/Stop only EC2 instances tagged Environment=prod and Owner=ops-team:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowStartStopTaggedEC2",
      "Effect": "Allow",
      "Action": [
        "ec2:StartInstances",
        "ec2:StopInstances"
      ],
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "StringEquals": {
          "ec2:ResourceTag/Environment": "prod",
          "ec2:ResourceTag/Owner": "ops-team"
        }
      }
    }
  ]
}

Make policies explicit — prefer Deny statements for critical guardrails (e.g., Deny Delete of S3 buckets holding CUI) and avoid broad wildcards like "*".

3) Create IAM groups and attach policies (console & CLI)

Console: IAM -> Groups -> Create group -> attach your custom policies. CLI example:

# Create a group
aws iam create-group --group-name OpsGroup

# Attach a policy to the group
aws iam attach-group-policy --group-name OpsGroup --policy-arn arn:aws:iam::123456789012:policy/EC2StartStopProdOnly

# Add user to group
aws iam add-user-to-group --user-name alice --group-name OpsGroup

Always manage permissions through groups; avoid attaching inline policies to users. Use group naming conventions like GOV-Role-Env (e.g., GOV-Ops-Prod) and tag groups with project identifiers.

4) Constrain delegated admins with permission boundaries and SCPs

If you delegate IAM administration, apply permission boundaries to any principals allowed to create policies/roles so they cannot escalate beyond approved actions. If you use AWS Organizations, apply SCPs at the OU/account level to centrally prohibit disallowed actions (e.g., ec2:TerminateInstances across prod accounts). Example permission boundary that prevents creating IAM users with AdministratorAccess:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyCreateAdminIAM",
      "Effect": "Deny",
      "Action": [
        "iam:CreateUser",
        "iam:AttachUserPolicy",
        "iam:PutUserPolicy",
        "iam:CreateAccessKey"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringLike": {
          "iam:PolicyARN": "arn:aws:iam::*:policy/AdministratorAccess"
        }
      }
    }
  ]
}

Monitoring, auditing, and evidence for compliance

Enable CloudTrail across all accounts and aggregate logs to a central, immutable S3 bucket with Object Lock where feasible. Use AWS Config rules (e.g., iam-user-no-policies-check, iam-password-policy) and IAM Access Analyzer to detect overly permissive policies. Generate IAM credential reports and record group membership snapshots monthly. For CMMC/FAR evidence, retain policy versions, group membership exports, and change control records showing policy reviews and approvals.

Practical tips, small-business scenarios, and best practices

Small-business example: A 12-person contractor should create three groups (Dev, Ops, Finance), one cross-account Role for CI/CD with tightly-scoped S3/CodeBuild permissions, and require MFA for console access. Use IAM roles for any automation (no long-lived keys on CI servers), and rotate any service account keys quarterly. Enforce least privilege from Day 1: default deny, then grant explicit APIs and resources. Regularly run iam-policy-simulate and Access Advisor to refine policies. Keep a change log (Jira/Ticket) tied to policy updates for audit trails.

Conclusion

Implementing AC.L1-B.1.II in AWS is practical and auditable: define job functions, build group-based least-privilege policies with resource and condition scoping, use permission boundaries and SCPs to prevent privilege escalation, and instrument monitoring for continuous assurance. For FAR 52.204-21 and CMMC Level 1 evidence, document your design, retain policy/version history, export group membership and credential reports, and schedule regular reviews — these steps reduce risk and demonstrate that only allowed transactions and functions are permitted.

 

Quick & Simple

Discover Our Cybersecurity Compliance Solutions:

Whether you need to meet and maintain your compliance requirements, help your clients meet them, or verify supplier compliance we have the expertise and solution for you

 CMMC Level 1 Compliance App

CMMC Level 1 Compliance

Become compliant, provide compliance services, or verify partner compliance with CMMC Level 1 Basic Safeguarding of Covered Contractor Information Systems requirements.
 NIST SP 800-171 & CMMC Level 2 Compliance App

NIST SP 800-171 & CMMC Level 2 Compliance

Become compliant, provide compliance services, or verify partner compliance with NIST SP 800-171 and CMMC Level 2 requirements.
 HIPAA Compliance App

HIPAA Compliance

Become compliant, provide compliance services, or verify partner compliance with HIPAA security rule requirements.
 ISO 27001 Compliance App

ISO 27001 Compliance

Become compliant, provide compliance services, or verify partner compliance with ISO 27001 requirements.
 FAR 52.204-21 Compliance App

FAR 52.204-21 Compliance

Become compliant, provide compliance services, or verify partner compliance with FAR 52.204-21 Basic Safeguarding of Covered Contractor Information Systems requirements.
 
Hello! How can we help today? 😃

Chat with Lakeridge

We typically reply within minutes