Skip to main content

CIS Benchmarks

The Center for Internet Security (CIS) Benchmarks are consensus-based hardening guides developed by security experts worldwide. They are the most widely adopted configuration standards for cloud platforms, operating systems, and applications. Infracast implements 189 automated rules across five CIS Benchmarks.


Supported Benchmarks

BenchmarkVersionRulesScope
CIS AWS Foundations1.562AWS account and service configuration
CIS Azure Foundations2.041Azure subscription and service configuration
CIS GCP Foundations1.338GCP project and service configuration
CIS Kubernetes1.828Kubernetes cluster hardening
CIS Microsoft 3653.020Microsoft 365 tenant configuration

CIS AWS Foundations Benchmark (62 rules)

The CIS AWS Foundations Benchmark v1.5 covers four sections:

Section 1 — Identity and Access Management (26 rules)

RuleLevelDescription
CIS-AWS-1.11Root account MFA enabled
CIS-AWS-1.21No root account access keys
CIS-AWS-1.41IAM password length ≥ 14 characters
CIS-AWS-1.51Password reuse prevention (24 passwords)
CIS-AWS-1.61MFA enabled for all IAM users
CIS-AWS-1.71No initial access keys at user creation
CIS-AWS-1.91Unused credentials rotated within 45 days
CIS-AWS-1.101IAM policies attached to groups, not users
CIS-AWS-1.141No more than one access key per user
CIS-AWS-1.161IAM access key rotation within 90 days
CIS-AWS-1.191Security contact info registered

Section 2 — Storage (10 rules)

RuleLevelDescription
CIS-AWS-2.1.11S3 public access blocked at account level
CIS-AWS-2.1.51S3 buckets deny HTTP (TLS only)
CIS-AWS-2.2.11EBS default encryption enabled
CIS-AWS-2.3.11RDS encryption at rest enabled
CIS-AWS-2.3.21RDS automated backups enabled
CIS-AWS-2.4.11S3 MFA delete enabled

Section 3 — Logging (10 rules)

RuleLevelDescription
CIS-AWS-3.11CloudTrail enabled in all regions
CIS-AWS-3.21CloudTrail log file validation enabled
CIS-AWS-3.31CloudTrail S3 bucket not publicly accessible
CIS-AWS-3.41CloudTrail integrated with CloudWatch
CIS-AWS-3.51AWS Config enabled in all regions
CIS-AWS-3.101Security Hub enabled

Section 5 — Networking (16 rules)

RuleLevelDescription
CIS-AWS-5.21No security groups allow 0.0.0.0/0 to port 22
CIS-AWS-5.31No security groups allow 0.0.0.0/0 to port 3389
CIS-AWS-5.41Default security group blocks all traffic
CIS-AWS-5.62VPC flow logging enabled

CIS Azure Foundations Benchmark (41 rules)

CategoryRulesKey Checks
Identity & Access15MFA for admins, guest users, conditional access
Security Center8Defender for Cloud enabled, security contacts
Storage Accounts6Secure transfer, public access, logging
Database Services5SQL TDE, firewall rules, audit logging
Networking4Network watcher, flow logs, NSG rules
Logging3Activity log alerts, diagnostic settings

Sample rules:

CIS-AZURE-1.1  — Multi-factor authentication for all privileged users
CIS-AZURE-3.1 — Ensure that 'Secure transfer required' is enabled
CIS-AZURE-6.3 — Ensure that 'Activity Retention' is set to 1 year or greater
CIS-AZURE-9.1 — Ensure app service authentication is enabled

CIS GCP Foundations Benchmark (38 rules)

CategoryRulesKey Checks
Identity & Access14Service account keys, org policies, IAM
Logging & Monitoring10Cloud Audit Logs, log metric alerts
Networking8Firewall rules, SSH/RDP access, flow logs
Storage4Bucket public access, uniform access
Compute2OS login, metadata server access

Sample rules:

CIS-GCP-1.1   — No admin service accounts at org level
CIS-GCP-4.1 — Firewall rule does not allow 0.0.0.0/0:22
CIS-GCP-6.2.1 — Cloud SQL requires all incoming connections to use SSL
CIS-GCP-7.1 — Cloud Storage bucket is not anonymously accessible

CIS Kubernetes Benchmark (28 rules)

Covers both managed Kubernetes (EKS, AKS, GKE) and self-hosted clusters:

CategoryRulesKey Checks
Control Plane8API server flags, etcd encryption, audit logging
Worker Nodes8kubelet config, node authorization, pod security
RBAC6Cluster-admin binding, service account tokens
Networking4Network policies, CNI configuration
Pod Security2Pod security admission, privileged containers

Sample rules:

CIS-K8S-1.2.1  — API server anonymous auth disabled
CIS-K8S-1.2.6 — AlwaysPullImages admission controller enabled
CIS-K8S-4.2.1 — kubelet anonymous authentication disabled
CIS-K8S-5.2.1 — No privileged containers in default namespace
CIS-K8S-5.7.1 — Namespaces have network policies applied

CIS Microsoft 365 Benchmark (20 rules)

CategoryRulesKey Checks
Identity8MFA for admins, legacy auth blocked, conditional access
Email Security5Anti-phishing, DKIM, DMARC, SPF
Application4Integrated app consent, OAuth app permissions
Data Protection3Sensitivity labels, external sharing, audit logging

How Rules Map to CIS Controls

Every Infracast rule includes the CIS control ID for easy cross-reference:

# Get all CIS AWS findings
curl -H "Authorization: Bearer $TOKEN" \
"$API_URL/api/v1/tenants/$TENANT/findings?framework=cis-aws"

# Filter by CIS section
curl -H "Authorization: Bearer $TOKEN" \
"$API_URL/api/v1/tenants/$TENANT/findings?framework=cis-aws&control_prefix=5"

Example finding response:

{
"id": "CIS-AWS-5.2-sg-0abc123def456",
"rule_id": "CIS-AWS-5.2",
"framework": "cis-aws",
"control_id": "5.2",
"severity": "HIGH",
"title": "Security group allows unrestricted SSH access",
"description": "Security group 'sg-0abc123def456' (web-servers-sg) has inbound rule 0.0.0.0/0:22 (SSH).",
"resource_type": "aws.ec2.security_group",
"remediation": "Remove the inbound rule allowing 0.0.0.0/0:22. Restrict SSH to known admin IPs or a bastion host."
}

CIS Levels

CIS benchmarks define two levels:

LevelDescriptionWhen to Apply
Level 1Essential, practical security. Minimal performance impactAlways — baseline for all systems
Level 2Defense-in-depth. May impact performance or usabilityHigh-security environments, regulated industries

Infracast reports pass/fail per level so you can see your posture against L1 alone vs. L1+L2.


Multi-Benchmark Compliance

Running multiple cloud platforms? Infracast evaluates all CIS benchmarks simultaneously:

GET /api/v1/tenants/{tenantID}/compliance/summary

{
"frameworks": {
"cis-aws": { "score": 84, "rules": 62, "passing": 52 },
"cis-azure": { "score": 91, "rules": 41, "passing": 37 },
"cis-gcp": { "score": 78, "rules": 38, "passing": 30 },
"cis-kubernetes": { "score": 86, "rules": 28, "passing": 24 },
"cis-m365": { "score": 95, "rules": 20, "passing": 19 }
}
}

Next Steps

  • DISA STIGs — DoD hardening for government systems
  • PCI DSS — CIS benchmarks support PCI network controls
  • API: Findings — Query CIS findings by benchmark and section