aws-cis-controls-assessment 1.0.8__py3-none-any.whl → 1.0.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. aws_cis_assessment/__init__.py +1 -1
  2. aws_cis_assessment/config/rules/cis_controls_ig1.yaml +94 -1
  3. aws_cis_assessment/config/rules/cis_controls_ig2.yaml +83 -1
  4. aws_cis_assessment/controls/ig1/__init__.py +17 -0
  5. aws_cis_assessment/controls/ig1/control_aws_backup_service.py +1276 -0
  6. aws_cis_assessment/controls/ig2/__init__.py +12 -0
  7. aws_cis_assessment/controls/ig2/control_aws_backup_ig2.py +23 -0
  8. aws_cis_assessment/core/assessment_engine.py +24 -0
  9. aws_cis_assessment/core/models.py +1 -0
  10. aws_cis_assessment/core/scoring_engine.py +30 -0
  11. aws_cis_assessment/reporters/base_reporter.py +2 -0
  12. aws_cis_assessment/reporters/html_reporter.py +279 -7
  13. {aws_cis_controls_assessment-1.0.8.dist-info → aws_cis_controls_assessment-1.0.10.dist-info}/METADATA +57 -10
  14. {aws_cis_controls_assessment-1.0.8.dist-info → aws_cis_controls_assessment-1.0.10.dist-info}/RECORD +30 -24
  15. docs/README.md +14 -3
  16. docs/adding-aws-backup-controls.md +562 -0
  17. docs/assessment-logic.md +291 -3
  18. docs/cli-reference.md +1 -1
  19. docs/config-rule-mappings.md +46 -5
  20. docs/developer-guide.md +312 -3
  21. docs/dual-scoring-implementation.md +303 -0
  22. docs/installation.md +2 -2
  23. docs/scoring-comparison-aws-config.md +379 -0
  24. docs/scoring-methodology.md +350 -0
  25. docs/troubleshooting.md +211 -2
  26. docs/user-guide.md +47 -2
  27. {aws_cis_controls_assessment-1.0.8.dist-info → aws_cis_controls_assessment-1.0.10.dist-info}/WHEEL +0 -0
  28. {aws_cis_controls_assessment-1.0.8.dist-info → aws_cis_controls_assessment-1.0.10.dist-info}/entry_points.txt +0 -0
  29. {aws_cis_controls_assessment-1.0.8.dist-info → aws_cis_controls_assessment-1.0.10.dist-info}/licenses/LICENSE +0 -0
  30. {aws_cis_controls_assessment-1.0.8.dist-info → aws_cis_controls_assessment-1.0.10.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,350 @@
1
+ # Compliance Scoring Methodology
2
+
3
+ This document explains how compliance scores are calculated in the AWS CIS Controls Assessment Framework.
4
+
5
+ ## Overview
6
+
7
+ The scoring system uses a **weighted, hierarchical approach** that calculates compliance at three levels:
8
+ 1. **Control Level** - Individual CIS Control compliance
9
+ 2. **Implementation Group Level** - IG1, IG2, IG3 compliance
10
+ 3. **Overall Score** - Aggregate compliance across all IGs
11
+
12
+ ## Scoring Hierarchy
13
+
14
+ ```
15
+ Overall Score (0-100%)
16
+ ├── IG1 Score (weight: 1.0)
17
+ │ ├── Control 1.1 (weight: 1.0)
18
+ │ ├── Control 3.3 (weight: 1.5)
19
+ │ └── ... (74 controls)
20
+ ├── IG2 Score (weight: 1.5)
21
+ │ ├── Control 3.10 (weight: 1.4)
22
+ │ ├── Control 3.11 (weight: 1.4)
23
+ │ └── ... (58 additional controls)
24
+ └── IG3 Score (weight: 2.0)
25
+ └── ... (13 additional controls)
26
+ ```
27
+
28
+ ## 1. Control-Level Scoring
29
+
30
+ ### Basic Calculation
31
+
32
+ For each CIS Control, the compliance percentage is calculated as:
33
+
34
+ ```
35
+ Control Compliance % = (Compliant Resources / Total Resources) × 100
36
+ ```
37
+
38
+ **Example:**
39
+ - Control 3.3 (Data Access Control)
40
+ - Total Resources Evaluated: 50
41
+ - Compliant Resources: 40
42
+ - Non-Compliant Resources: 10
43
+ - **Control Compliance: 80%**
44
+
45
+ ### Resource Status Classification
46
+
47
+ Resources are classified into these statuses:
48
+
49
+ | Status | Description | Counted in Score? |
50
+ |--------|-------------|-------------------|
51
+ | **COMPLIANT** | Resource meets requirements | ✅ Yes (numerator) |
52
+ | **NON_COMPLIANT** | Resource fails requirements | ✅ Yes (denominator only) |
53
+ | **NOT_APPLICABLE** | Rule doesn't apply to resource | ✅ Yes (excluded from both) |
54
+ | **ERROR** | Assessment error occurred | ❌ No (excluded from scoring) |
55
+
56
+ ### Control Weighting
57
+
58
+ Controls are weighted based on their security criticality:
59
+
60
+ | Control ID | Weight | Rationale |
61
+ |------------|--------|-----------|
62
+ | 3.3 | 1.5 | Data Access Control - Critical |
63
+ | 3.10 | 1.4 | Encryption in Transit - Critical |
64
+ | 3.11 | 1.4 | Encryption at Rest - Critical |
65
+ | 5.2 | 1.3 | Password Management - Important |
66
+ | 12.8 | 1.3 | Network Segmentation - Important |
67
+ | 4.1 | 1.2 | Secure Configuration - Important |
68
+ | 3.14 | 1.2 | Sensitive Data Logging - Important |
69
+ | 13.1 | 1.2 | Network Monitoring - Important |
70
+ | 7.1 | 1.1 | Vulnerability Management - Important |
71
+ | 1.1 | 1.0 | Asset Inventory - Foundational |
72
+ | Others | 1.0 | Standard weight |
73
+
74
+ **Weighted Control Score:**
75
+ ```
76
+ Weighted Control Score = Control Compliance % × Control Weight
77
+ ```
78
+
79
+ ## 2. Implementation Group (IG) Scoring
80
+
81
+ ### IG Compliance Calculation
82
+
83
+ The IG score is a **weighted average** of all control scores within that IG:
84
+
85
+ ```
86
+ IG Compliance % = Σ(Control Compliance % × Control Weight) / Σ(Control Weights)
87
+ ```
88
+
89
+ **Example - IG1 with 3 controls:**
90
+ - Control 1.1: 90% × 1.0 = 90
91
+ - Control 3.3: 80% × 1.5 = 120
92
+ - Control 4.1: 75% × 1.2 = 90
93
+ - **Total Weighted Score: 300**
94
+ - **Total Weight: 3.7**
95
+ - **IG1 Compliance: 300 / 3.7 = 81.1%**
96
+
97
+ ### Control Compliance Threshold
98
+
99
+ A control is considered "compliant" if it achieves **≥80% compliance**. This is used for the "compliant controls" count but doesn't affect the percentage calculation.
100
+
101
+ ### IG Weighting
102
+
103
+ Implementation Groups have different weights reflecting their security maturity:
104
+
105
+ | IG | Weight | Description |
106
+ |----|--------|-------------|
107
+ | **IG1** | 1.0 | Essential Cyber Hygiene (baseline) |
108
+ | **IG2** | 1.5 | Enhanced Security (50% more weight) |
109
+ | **IG3** | 2.0 | Advanced Security (2x weight) |
110
+
111
+ ## 3. Overall Compliance Score
112
+
113
+ The overall score is a **weighted average** across all assessed Implementation Groups:
114
+
115
+ ```
116
+ Overall Score = Σ(IG Compliance % × IG Weight) / Σ(IG Weights)
117
+ ```
118
+
119
+ ### Scenario Examples
120
+
121
+ #### Scenario 1: All IGs Assessed
122
+ ```
123
+ IG1: 85% × 1.0 = 85
124
+ IG2: 75% × 1.5 = 112.5
125
+ IG3: 60% × 2.0 = 120
126
+ Total: 317.5 / 4.5 = 70.6%
127
+ ```
128
+
129
+ #### Scenario 2: Only IG1 Assessed
130
+ ```
131
+ IG1: 85% × 1.0 = 85
132
+ Total: 85 / 1.0 = 85%
133
+ ```
134
+
135
+ #### Scenario 3: IG1 + IG2 Assessed
136
+ ```
137
+ IG1: 85% × 1.0 = 85
138
+ IG2: 75% × 1.5 = 112.5
139
+ Total: 197.5 / 2.5 = 79%
140
+ ```
141
+
142
+ ## Scoring Formula Summary
143
+
144
+ ### Complete Formula
145
+
146
+ ```
147
+ Overall Score =
148
+ Σ(IG in [IG1, IG2, IG3]) [
149
+ IG_Weight(IG) × (
150
+ Σ(Control in IG) [
151
+ Control_Weight(Control) × (
152
+ Count(Compliant Resources) / Count(Total Scorable Resources)
153
+ )
154
+ ] / Σ(Control_Weights in IG)
155
+ )
156
+ ] / Σ(IG_Weights)
157
+ ```
158
+
159
+ ### Simplified View
160
+
161
+ ```
162
+ Overall = Weighted Average of IGs
163
+ ├─ IG Score = Weighted Average of Controls
164
+ │ └─ Control Score = Compliant / Total Resources
165
+ └─ Weights applied at both levels
166
+ ```
167
+
168
+ ## Compliance Ratings
169
+
170
+ Scores are typically interpreted as:
171
+
172
+ | Score Range | Rating | Interpretation |
173
+ |-------------|--------|----------------|
174
+ | 90-100% | **Excellent** | Strong security posture |
175
+ | 80-89% | **Good** | Solid compliance, minor gaps |
176
+ | 70-79% | **Fair** | Moderate compliance, improvement needed |
177
+ | 60-69% | **Poor** | Significant gaps, action required |
178
+ | 0-59% | **Critical** | Major security risks, urgent action needed |
179
+
180
+ ## Risk Area Identification
181
+
182
+ The scoring engine identifies top risk areas by:
183
+
184
+ 1. **Sorting controls** by compliance percentage (lowest first)
185
+ 2. **Filtering** controls with <80% compliance
186
+ 3. **Selecting top 5** lowest-scoring controls
187
+ 4. **Reporting** with control ID, title, and compliance percentage
188
+
189
+ **Example Risk Areas:**
190
+ ```
191
+ 1. Control 3.11 (Encryption at Rest): 45.2% compliant
192
+ 2. Control 5.2 (Password Management): 52.8% compliant
193
+ 3. Control 12.8 (Network Segmentation): 61.3% compliant
194
+ 4. Control 3.10 (Encryption in Transit): 68.7% compliant
195
+ 5. Control 13.1 (Network Monitoring): 72.4% compliant
196
+ ```
197
+
198
+ ## Remediation Prioritization
199
+
200
+ Remediation priorities are calculated using:
201
+
202
+ ### Priority Calculation
203
+
204
+ ```
205
+ Priority = f(Control Weight, Affected Resources, Rule Complexity)
206
+
207
+ HIGH: Control Weight ≥ 1.4 OR Affected Resources ≥ 10
208
+ MEDIUM: Control Weight ≥ 1.2 OR Affected Resources ≥ 5
209
+ LOW: All others
210
+ ```
211
+
212
+ ### Effort Estimation
213
+
214
+ ```
215
+ Effort = f(Affected Resources, Rule Complexity)
216
+
217
+ Base Effort:
218
+ - Low: ≤5 resources
219
+ - Medium: 6-20 resources
220
+ - High: >20 resources
221
+
222
+ Adjusted for complex rules:
223
+ - IAM password policies
224
+ - VPC security group rules
225
+ - Multi-region CloudTrail
226
+ ```
227
+
228
+ ## Example: Complete Scoring Walkthrough
229
+
230
+ ### Input Data
231
+ ```
232
+ Assessment of IG1 with 3 controls:
233
+
234
+ Control 1.1 (Asset Inventory):
235
+ - 100 resources evaluated
236
+ - 90 compliant
237
+ - 10 non-compliant
238
+ - Weight: 1.0
239
+
240
+ Control 3.3 (Data Access Control):
241
+ - 50 resources evaluated
242
+ - 40 compliant
243
+ - 10 non-compliant
244
+ - Weight: 1.5
245
+
246
+ Control 4.1 (Secure Configuration):
247
+ - 75 resources evaluated
248
+ - 60 compliant
249
+ - 15 non-compliant
250
+ - Weight: 1.2
251
+ ```
252
+
253
+ ### Step 1: Calculate Control Scores
254
+ ```
255
+ Control 1.1: 90/100 = 90%
256
+ Control 3.3: 40/50 = 80%
257
+ Control 4.1: 60/75 = 80%
258
+ ```
259
+
260
+ ### Step 2: Apply Control Weights
261
+ ```
262
+ Control 1.1: 90% × 1.0 = 90
263
+ Control 3.3: 80% × 1.5 = 120
264
+ Control 4.1: 80% × 1.2 = 96
265
+ Total Weighted: 306
266
+ Total Weight: 3.7
267
+ ```
268
+
269
+ ### Step 3: Calculate IG1 Score
270
+ ```
271
+ IG1 Score = 306 / 3.7 = 82.7%
272
+ ```
273
+
274
+ ### Step 4: Calculate Overall Score
275
+ ```
276
+ (Only IG1 assessed)
277
+ Overall Score = 82.7% × 1.0 / 1.0 = 82.7%
278
+ ```
279
+
280
+ ### Result
281
+ ```
282
+ Overall Compliance: 82.7% (Good)
283
+ IG1 Compliance: 82.7%
284
+ Compliant Controls: 2/3 (Controls 3.3 and 4.1 ≥80%)
285
+ Total Resources: 225
286
+ Compliant Resources: 190
287
+ ```
288
+
289
+ ## Customization
290
+
291
+ ### Custom Control Weights
292
+
293
+ You can customize control weights when initializing the scoring engine:
294
+
295
+ ```python
296
+ from aws_cis_assessment.core.scoring_engine import ScoringEngine
297
+
298
+ custom_weights = {
299
+ '3.3': 2.0, # Increase data access control importance
300
+ '1.1': 0.5, # Decrease asset inventory importance
301
+ }
302
+
303
+ scoring_engine = ScoringEngine(control_weights=custom_weights)
304
+ ```
305
+
306
+ ### Custom IG Weights
307
+
308
+ Similarly, you can adjust IG weights:
309
+
310
+ ```python
311
+ custom_ig_weights = {
312
+ 'IG1': 1.0,
313
+ 'IG2': 1.2, # Reduce IG2 weight
314
+ 'IG3': 1.5, # Reduce IG3 weight
315
+ }
316
+
317
+ scoring_engine = ScoringEngine(ig_weights=custom_ig_weights)
318
+ ```
319
+
320
+ ## Scoring Best Practices
321
+
322
+ 1. **Focus on weighted scores** - They reflect security priorities
323
+ 2. **Track trends over time** - Compare scores across assessments
324
+ 3. **Prioritize high-weight controls** - Maximum security impact
325
+ 4. **Address ≥80% threshold** - Get controls to "compliant" status
326
+ 5. **Review risk areas** - Focus remediation on lowest scores
327
+ 6. **Consider resource counts** - High resource counts = higher impact
328
+
329
+ ## Limitations
330
+
331
+ 1. **No historical trending** - Current implementation doesn't track score changes over time
332
+ 2. **Static weights** - Weights don't adapt to organizational priorities automatically
333
+ 3. **Equal resource weighting** - All resources within a control are weighted equally
334
+ 4. **No severity levels** - Non-compliance is binary (pass/fail)
335
+
336
+ ## Future Enhancements
337
+
338
+ Potential improvements to the scoring system:
339
+
340
+ - **Historical trending** - Track compliance changes over time
341
+ - **Severity-based scoring** - Weight findings by severity (critical, high, medium, low)
342
+ - **Resource criticality** - Weight production resources higher than dev/test
343
+ - **Custom scoring profiles** - Industry-specific weight profiles (finance, healthcare, etc.)
344
+ - **Benchmark comparisons** - Compare scores against industry averages
345
+ - **Predictive scoring** - Estimate future compliance based on trends
346
+
347
+ ---
348
+
349
+ **Last Updated**: January 26, 2026
350
+ **Version**: 1.0.8
docs/troubleshooting.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Troubleshooting Guide
2
2
 
3
- This guide helps you diagnose and resolve common issues with the AWS CIS Controls Compliance Assessment Framework - a production-ready, enterprise-grade solution with 136 implemented rules.
3
+ This guide helps you diagnose and resolve common issues with the AWS CIS Controls Compliance Assessment Framework - a production-ready, enterprise-grade solution with 138 implemented rules.
4
4
 
5
5
  ## Production Framework Status
6
6
 
@@ -631,4 +631,213 @@ When reporting issues, include:
631
631
  For enterprise users:
632
632
  - **AWS Support**: For AWS service-related issues
633
633
  - **Professional Services**: For implementation assistance
634
- - **Training**: For team education and best practices
634
+ - **Training**: For team education and best practices
635
+
636
+
637
+ ## AWS Backup Controls Issues
638
+
639
+ ### Problem: Backup Plan Assessment Failures
640
+
641
+ **Error Message:**
642
+ ```
643
+ AccessDenied: User is not authorized to perform: backup:ListBackupPlans
644
+ ```
645
+
646
+ **Solutions:**
647
+
648
+ 1. **Add Backup permissions:**
649
+ ```bash
650
+ # Ensure IAM policy includes Backup permissions
651
+ aws iam attach-user-policy \
652
+ --user-name your-user \
653
+ --policy-arn arn:aws:iam::aws:policy/AWSBackupReadOnlyAccess
654
+ ```
655
+
656
+ 2. **Verify Backup service availability:**
657
+ ```bash
658
+ # Check if Backup service is available in region
659
+ aws backup list-backup-plans --region us-east-1
660
+ ```
661
+
662
+ 3. **Check for Backup plans:**
663
+ ```bash
664
+ # List existing backup plans
665
+ aws backup list-backup-plans --query 'BackupPlansList[*].[BackupPlanName,BackupPlanId]' --output table
666
+ ```
667
+
668
+ ### Problem: Backup Vault Access Policy Check Failures
669
+
670
+ **Error Message:**
671
+ ```
672
+ ResourceNotFoundException: Backup vault not found
673
+ ```
674
+
675
+ **Solutions:**
676
+
677
+ 1. **Verify backup vaults exist:**
678
+ ```bash
679
+ # List backup vaults in region
680
+ aws backup list-backup-vaults --region us-east-1
681
+ ```
682
+
683
+ 2. **Check vault access policy:**
684
+ ```bash
685
+ # Get vault access policy
686
+ aws backup get-backup-vault-access-policy --backup-vault-name MyVault
687
+ ```
688
+
689
+ 3. **Create backup vault if needed:**
690
+ ```bash
691
+ # Create a backup vault
692
+ aws backup create-backup-vault --backup-vault-name MyVault
693
+ ```
694
+
695
+ ### Problem: Backup Plan Frequency/Retention Validation
696
+
697
+ **Symptoms:**
698
+ - Backup plans marked as non-compliant
699
+ - Frequency or retention requirements not met
700
+ - Assessment shows "Backup plan does not meet minimum requirements"
701
+
702
+ **Solutions:**
703
+
704
+ 1. **Review backup plan rules:**
705
+ ```bash
706
+ # Get backup plan details
707
+ aws backup get-backup-plan --backup-plan-id <plan-id>
708
+ ```
709
+
710
+ 2. **Check schedule expression:**
711
+ ```bash
712
+ # Verify cron/rate expression meets requirements
713
+ # Minimum daily frequency: cron(0 0 * * ? *) or rate(1 day)
714
+ ```
715
+
716
+ 3. **Verify retention settings:**
717
+ ```bash
718
+ # Ensure DeleteAfterDays >= 35 days (5 weeks)
719
+ # Check lifecycle settings in backup plan rules
720
+ ```
721
+
722
+ 4. **Update backup plan:**
723
+ ```bash
724
+ # Update plan to meet requirements
725
+ aws backup update-backup-plan \
726
+ --backup-plan-id <plan-id> \
727
+ --backup-plan file://updated-plan.json
728
+ ```
729
+
730
+ ### Problem: No Backup Resources Found
731
+
732
+ **Symptoms:**
733
+ - Assessment shows "No backup plans found"
734
+ - Zero backup-related resources discovered
735
+ - All backup controls show NOT_APPLICABLE
736
+
737
+ **Solutions:**
738
+
739
+ 1. **Enable AWS Backup:**
740
+ ```bash
741
+ # Create your first backup plan
742
+ aws backup create-backup-plan --backup-plan file://backup-plan.json
743
+ ```
744
+
745
+ 2. **Check region scope:**
746
+ ```bash
747
+ # Backup resources are regional
748
+ # Ensure you're checking the correct regions
749
+ aws-cis-assess assess --regions us-east-1,us-west-2 --verbose
750
+ ```
751
+
752
+ 3. **Verify service availability:**
753
+ ```bash
754
+ # Check if Backup service is enabled in your account
755
+ aws backup describe-global-settings
756
+ ```
757
+
758
+ ### Problem: Backup Vault Policy Validation
759
+
760
+ **Symptoms:**
761
+ - Vault policy marked as non-compliant
762
+ - "Vault allows public access" or "Vault policy too permissive"
763
+ - Policy validation failures
764
+
765
+ **Solutions:**
766
+
767
+ 1. **Review vault policy:**
768
+ ```bash
769
+ # Get current vault policy
770
+ aws backup get-backup-vault-access-policy \
771
+ --backup-vault-name MyVault \
772
+ --query 'Policy' \
773
+ --output text | jq .
774
+ ```
775
+
776
+ 2. **Check for overly permissive principals:**
777
+ ```json
778
+ {
779
+ "Statement": [{
780
+ "Principal": "*", // ❌ Too permissive
781
+ "Effect": "Allow",
782
+ "Action": "backup:*"
783
+ }]
784
+ }
785
+ ```
786
+
787
+ 3. **Update vault policy:**
788
+ ```bash
789
+ # Apply restrictive policy
790
+ aws backup put-backup-vault-access-policy \
791
+ --backup-vault-name MyVault \
792
+ --policy file://restrictive-policy.json
793
+ ```
794
+
795
+ 4. **Best practice policy example:**
796
+ ```json
797
+ {
798
+ "Version": "2012-10-17",
799
+ "Statement": [{
800
+ "Effect": "Allow",
801
+ "Principal": {
802
+ "AWS": "arn:aws:iam::123456789012:role/BackupRole"
803
+ },
804
+ "Action": [
805
+ "backup:DescribeBackupVault",
806
+ "backup:ListRecoveryPointsByBackupVault"
807
+ ],
808
+ "Resource": "*"
809
+ }]
810
+ }
811
+ ```
812
+
813
+ ### Problem: Backup Assessment Performance
814
+
815
+ **Symptoms:**
816
+ - Backup control assessments take too long
817
+ - Timeout errors during backup plan evaluation
818
+ - High API call volume to Backup service
819
+
820
+ **Solutions:**
821
+
822
+ 1. **Limit assessment scope:**
823
+ ```bash
824
+ # Assess only specific backup controls
825
+ aws-cis-assess assess --controls 11.1,11.2 --regions us-east-1
826
+ ```
827
+
828
+ 2. **Reduce parallel workers:**
829
+ ```bash
830
+ # Lower concurrency for Backup API calls
831
+ aws-cis-assess assess --max-workers 2
832
+ ```
833
+
834
+ 3. **Check for large number of backup plans:**
835
+ ```bash
836
+ # Count backup plans
837
+ aws backup list-backup-plans --query 'length(BackupPlansList)'
838
+ ```
839
+
840
+ 4. **Optimize backup plan structure:**
841
+ - Consolidate multiple small plans into fewer comprehensive plans
842
+ - Use backup selections to target specific resources
843
+ - Avoid creating excessive backup plans per region
docs/user-guide.md CHANGED
@@ -5,10 +5,11 @@ This comprehensive guide covers how to use the AWS CIS Controls Compliance Asses
5
5
  ## Production Framework Overview
6
6
 
7
7
  **✅ Complete Implementation**
8
- - 136 AWS Config rules implemented (131 CIS Controls + 5 bonus security rules)
8
+ - 138 AWS Config rules implemented (133 CIS Controls + 5 bonus security rules)
9
9
  - 100% coverage across all Implementation Groups (IG1, IG2, IG3)
10
10
  - Production-tested architecture with enterprise-grade error handling
11
11
  - Ready for immediate deployment in production environments
12
+ - **NEW:** AWS Backup service controls for infrastructure assessment
12
13
 
13
14
  ## Table of Contents
14
15
 
@@ -490,4 +491,48 @@ Each non-compliant finding includes:
490
491
  - **Configuration Guide**: Learn about customizing assessments
491
492
  - **Troubleshooting Guide**: Resolve common issues
492
493
  - **CLI Reference**: Complete command reference
493
- - **Developer Guide**: Extend and customize the tool
494
+ - **Developer Guide**: Extend and customize the tool
495
+
496
+
497
+ ## AWS Backup Controls (New in v1.0.10)
498
+
499
+ ### Overview
500
+
501
+ Two new controls have been added to assess AWS Backup service infrastructure:
502
+
503
+ 1. **backup-plan-min-frequency-and-min-retention-check**
504
+ - Validates backup plans have appropriate frequency and retention policies
505
+ - Ensures backups happen regularly (daily minimum)
506
+ - Checks retention periods meet minimum requirements (7 days default)
507
+ - Validates lifecycle policies for cold storage transitions
508
+
509
+ 2. **backup-vault-access-policy-check**
510
+ - Ensures backup vaults have secure access policies
511
+ - Detects publicly accessible backup vaults
512
+ - Identifies overly permissive access policies
513
+ - Warns about dangerous permissions
514
+
515
+ ### Usage
516
+
517
+ These controls are automatically included in IG1 assessments:
518
+
519
+ ```bash
520
+ # Run assessment including new backup controls
521
+ aws-cis-assess assess --implementation-groups IG1
522
+
523
+ # Focus on backup-related controls
524
+ aws-cis-assess assess --controls 11.2
525
+ ```
526
+
527
+ ### Benefits
528
+
529
+ - **Comprehensive Coverage**: Assesses both resource protection AND backup infrastructure
530
+ - **Security Validation**: Ensures backup vaults aren't publicly accessible
531
+ - **Compliance Checking**: Validates backup policies meet organizational requirements
532
+ - **Ransomware Protection**: Helps identify backup vulnerabilities
533
+
534
+ ### Documentation
535
+
536
+ For detailed information about AWS Backup controls, see:
537
+ - [AWS Backup Controls Implementation Guide](adding-aws-backup-controls.md)
538
+ - [AWS Backup Controls Summary](../AWS_BACKUP_CONTROLS_IMPLEMENTATION_SUMMARY.md)