aws-cis-controls-assessment 1.0.3__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 (77) hide show
  1. aws_cis_assessment/__init__.py +11 -0
  2. aws_cis_assessment/cli/__init__.py +3 -0
  3. aws_cis_assessment/cli/examples.py +274 -0
  4. aws_cis_assessment/cli/main.py +1259 -0
  5. aws_cis_assessment/cli/utils.py +356 -0
  6. aws_cis_assessment/config/__init__.py +1 -0
  7. aws_cis_assessment/config/config_loader.py +328 -0
  8. aws_cis_assessment/config/rules/cis_controls_ig1.yaml +590 -0
  9. aws_cis_assessment/config/rules/cis_controls_ig2.yaml +412 -0
  10. aws_cis_assessment/config/rules/cis_controls_ig3.yaml +100 -0
  11. aws_cis_assessment/controls/__init__.py +1 -0
  12. aws_cis_assessment/controls/base_control.py +400 -0
  13. aws_cis_assessment/controls/ig1/__init__.py +239 -0
  14. aws_cis_assessment/controls/ig1/control_1_1.py +586 -0
  15. aws_cis_assessment/controls/ig1/control_2_2.py +231 -0
  16. aws_cis_assessment/controls/ig1/control_3_3.py +718 -0
  17. aws_cis_assessment/controls/ig1/control_3_4.py +235 -0
  18. aws_cis_assessment/controls/ig1/control_4_1.py +461 -0
  19. aws_cis_assessment/controls/ig1/control_access_keys.py +310 -0
  20. aws_cis_assessment/controls/ig1/control_advanced_security.py +512 -0
  21. aws_cis_assessment/controls/ig1/control_backup_recovery.py +510 -0
  22. aws_cis_assessment/controls/ig1/control_cloudtrail_logging.py +197 -0
  23. aws_cis_assessment/controls/ig1/control_critical_security.py +422 -0
  24. aws_cis_assessment/controls/ig1/control_data_protection.py +898 -0
  25. aws_cis_assessment/controls/ig1/control_iam_advanced.py +573 -0
  26. aws_cis_assessment/controls/ig1/control_iam_governance.py +493 -0
  27. aws_cis_assessment/controls/ig1/control_iam_policies.py +383 -0
  28. aws_cis_assessment/controls/ig1/control_instance_optimization.py +100 -0
  29. aws_cis_assessment/controls/ig1/control_network_enhancements.py +203 -0
  30. aws_cis_assessment/controls/ig1/control_network_security.py +672 -0
  31. aws_cis_assessment/controls/ig1/control_s3_enhancements.py +173 -0
  32. aws_cis_assessment/controls/ig1/control_s3_security.py +422 -0
  33. aws_cis_assessment/controls/ig1/control_vpc_security.py +235 -0
  34. aws_cis_assessment/controls/ig2/__init__.py +172 -0
  35. aws_cis_assessment/controls/ig2/control_3_10.py +698 -0
  36. aws_cis_assessment/controls/ig2/control_3_11.py +1330 -0
  37. aws_cis_assessment/controls/ig2/control_5_2.py +393 -0
  38. aws_cis_assessment/controls/ig2/control_advanced_encryption.py +355 -0
  39. aws_cis_assessment/controls/ig2/control_codebuild_security.py +263 -0
  40. aws_cis_assessment/controls/ig2/control_encryption_rest.py +382 -0
  41. aws_cis_assessment/controls/ig2/control_encryption_transit.py +382 -0
  42. aws_cis_assessment/controls/ig2/control_network_ha.py +467 -0
  43. aws_cis_assessment/controls/ig2/control_remaining_encryption.py +426 -0
  44. aws_cis_assessment/controls/ig2/control_remaining_rules.py +363 -0
  45. aws_cis_assessment/controls/ig2/control_service_logging.py +402 -0
  46. aws_cis_assessment/controls/ig3/__init__.py +49 -0
  47. aws_cis_assessment/controls/ig3/control_12_8.py +395 -0
  48. aws_cis_assessment/controls/ig3/control_13_1.py +467 -0
  49. aws_cis_assessment/controls/ig3/control_3_14.py +523 -0
  50. aws_cis_assessment/controls/ig3/control_7_1.py +359 -0
  51. aws_cis_assessment/core/__init__.py +1 -0
  52. aws_cis_assessment/core/accuracy_validator.py +425 -0
  53. aws_cis_assessment/core/assessment_engine.py +1266 -0
  54. aws_cis_assessment/core/audit_trail.py +491 -0
  55. aws_cis_assessment/core/aws_client_factory.py +313 -0
  56. aws_cis_assessment/core/error_handler.py +607 -0
  57. aws_cis_assessment/core/models.py +166 -0
  58. aws_cis_assessment/core/scoring_engine.py +459 -0
  59. aws_cis_assessment/reporters/__init__.py +8 -0
  60. aws_cis_assessment/reporters/base_reporter.py +454 -0
  61. aws_cis_assessment/reporters/csv_reporter.py +835 -0
  62. aws_cis_assessment/reporters/html_reporter.py +2162 -0
  63. aws_cis_assessment/reporters/json_reporter.py +561 -0
  64. aws_cis_controls_assessment-1.0.3.dist-info/METADATA +248 -0
  65. aws_cis_controls_assessment-1.0.3.dist-info/RECORD +77 -0
  66. aws_cis_controls_assessment-1.0.3.dist-info/WHEEL +5 -0
  67. aws_cis_controls_assessment-1.0.3.dist-info/entry_points.txt +2 -0
  68. aws_cis_controls_assessment-1.0.3.dist-info/licenses/LICENSE +21 -0
  69. aws_cis_controls_assessment-1.0.3.dist-info/top_level.txt +2 -0
  70. docs/README.md +94 -0
  71. docs/assessment-logic.md +766 -0
  72. docs/cli-reference.md +698 -0
  73. docs/config-rule-mappings.md +393 -0
  74. docs/developer-guide.md +858 -0
  75. docs/installation.md +299 -0
  76. docs/troubleshooting.md +634 -0
  77. docs/user-guide.md +487 -0
docs/user-guide.md ADDED
@@ -0,0 +1,487 @@
1
+ # User Guide
2
+
3
+ This comprehensive guide covers how to use the AWS CIS Controls Compliance Assessment Framework effectively - a production-ready, enterprise-grade solution with complete CIS Controls coverage.
4
+
5
+ ## Production Framework Overview
6
+
7
+ **✅ Complete Implementation**
8
+ - 136 AWS Config rules implemented (131 CIS Controls + 5 bonus security rules)
9
+ - 100% coverage across all Implementation Groups (IG1, IG2, IG3)
10
+ - Production-tested architecture with enterprise-grade error handling
11
+ - Ready for immediate deployment in production environments
12
+
13
+ ## Table of Contents
14
+
15
+ 1. [Quick Start](#quick-start)
16
+ 2. [Basic Usage](#basic-usage)
17
+ 3. [Assessment Options](#assessment-options)
18
+ 4. [Output Formats](#output-formats)
19
+ 5. [Advanced Features](#advanced-features)
20
+ 6. [Best Practices](#best-practices)
21
+ 7. [Common Workflows](#common-workflows)
22
+
23
+ ## Quick Start
24
+
25
+ ### Your First Assessment
26
+
27
+ ```bash
28
+ # Run a basic assessment with default settings
29
+ aws-cis-assess assess
30
+
31
+ # This will:
32
+ # - Assess all Implementation Groups (IG1, IG2, IG3)
33
+ # - Use all enabled AWS regions
34
+ # - Generate a JSON report
35
+ # - Use default AWS credentials
36
+ ```
37
+
38
+ ### Quick IG1 Assessment
39
+
40
+ ```bash
41
+ # Focus on essential controls only
42
+ aws-cis-assess assess --implementation-groups IG1 --regions us-east-1
43
+ ```
44
+
45
+ ### Generate HTML Report
46
+
47
+ ```bash
48
+ # Create an interactive web report
49
+ aws-cis-assess assess --output-format html --output-file compliance-report.html
50
+ ```
51
+
52
+ ## Basic Usage
53
+
54
+ ### Command Structure
55
+
56
+ ```bash
57
+ aws-cis-assess [GLOBAL_OPTIONS] COMMAND [COMMAND_OPTIONS]
58
+ ```
59
+
60
+ ### Global Options
61
+
62
+ - `--verbose, -v`: Enable verbose output
63
+ - `--debug`: Enable debug logging
64
+ - `--version`: Show version information
65
+ - `--help`: Show help information
66
+
67
+ ### Main Commands
68
+
69
+ #### assess
70
+ Run CIS Controls compliance assessment
71
+
72
+ ```bash
73
+ aws-cis-assess assess [OPTIONS]
74
+ ```
75
+
76
+ #### list-controls
77
+ List available CIS Controls and their Config rules
78
+
79
+ ```bash
80
+ aws-cis-assess list-controls [OPTIONS]
81
+ ```
82
+
83
+ #### list-regions
84
+ List available AWS regions
85
+
86
+ ```bash
87
+ aws-cis-assess list-regions [OPTIONS]
88
+ ```
89
+
90
+ #### show-stats
91
+ Show assessment statistics and scope
92
+
93
+ ```bash
94
+ aws-cis-assess show-stats [OPTIONS]
95
+ ```
96
+
97
+ #### validate-credentials
98
+ Test AWS credentials and permissions
99
+
100
+ ```bash
101
+ aws-cis-assess validate-credentials [OPTIONS]
102
+ ```
103
+
104
+ #### validate-config
105
+ Validate CIS Controls configuration files
106
+
107
+ ```bash
108
+ aws-cis-assess validate-config [OPTIONS]
109
+ ```
110
+
111
+ ## Assessment Options
112
+
113
+ ### Implementation Groups
114
+
115
+ Choose which CIS Controls Implementation Groups to assess:
116
+
117
+ ```bash
118
+ # Assess only IG1 (Essential Cyber Hygiene)
119
+ aws-cis-assess assess --implementation-groups IG1
120
+
121
+ # Assess IG1 and IG2
122
+ aws-cis-assess assess --implementation-groups IG1,IG2
123
+
124
+ # Assess all groups (default)
125
+ aws-cis-assess assess --implementation-groups IG1,IG2,IG3
126
+ ```
127
+
128
+ ### Specific Controls
129
+
130
+ Target specific CIS Controls:
131
+
132
+ ```bash
133
+ # Assess specific controls
134
+ aws-cis-assess assess --controls 1.1,3.3,4.1
135
+
136
+ # Exclude specific controls
137
+ aws-cis-assess assess --exclude-controls 7.1,12.8
138
+ ```
139
+
140
+ ### Regional Scope
141
+
142
+ Control which AWS regions to assess:
143
+
144
+ ```bash
145
+ # Specific regions
146
+ aws-cis-assess assess --regions us-east-1,us-west-2,eu-west-1
147
+
148
+ # Exclude regions
149
+ aws-cis-assess assess --exclude-regions us-gov-east-1,us-gov-west-1
150
+
151
+ # Single region
152
+ aws-cis-assess assess --regions us-east-1
153
+ ```
154
+
155
+ ### AWS Credentials
156
+
157
+ Specify AWS credentials and profiles:
158
+
159
+ ```bash
160
+ # Use specific AWS profile
161
+ aws-cis-assess assess --aws-profile production
162
+
163
+ # Use short flag for profile
164
+ aws-cis-assess assess -p production
165
+
166
+ # Use access keys directly
167
+ aws-cis-assess assess --aws-access-key-id AKIA... --aws-secret-access-key ...
168
+
169
+ # Use temporary credentials
170
+ aws-cis-assess assess --aws-access-key-id AKIA... --aws-secret-access-key ... --aws-session-token ...
171
+ ```
172
+
173
+ ## Output Formats
174
+
175
+ ### JSON Format (Default)
176
+
177
+ Machine-readable format for automation:
178
+
179
+ ```bash
180
+ aws-cis-assess assess --output-format json --output-file results.json
181
+ ```
182
+
183
+ JSON structure:
184
+ ```json
185
+ {
186
+ "assessment_metadata": {
187
+ "account_id": "123456789012",
188
+ "timestamp": "2024-01-15T10:30:00Z",
189
+ "regions_assessed": ["us-east-1", "us-west-2"],
190
+ "assessment_duration": "PT15M30S"
191
+ },
192
+ "compliance_summary": {
193
+ "overall_compliance_percentage": 78.5,
194
+ "ig1_compliance_percentage": 85.2,
195
+ "ig2_compliance_percentage": 72.1,
196
+ "ig3_compliance_percentage": 65.8
197
+ },
198
+ "detailed_results": {
199
+ "IG1": {
200
+ "controls": {
201
+ "1.1": {
202
+ "compliance_percentage": 90.0,
203
+ "findings": [...]
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ ```
210
+
211
+ ### HTML Format
212
+
213
+ Interactive web-based report:
214
+
215
+ ```bash
216
+ aws-cis-assess assess --output-format html --output-file report.html
217
+ ```
218
+
219
+ Features:
220
+ - Executive dashboard with charts
221
+ - Drill-down capabilities
222
+ - Responsive design
223
+ - Remediation guidance
224
+ - Export capabilities
225
+
226
+ ### CSV Format
227
+
228
+ Spreadsheet-compatible format:
229
+
230
+ ```bash
231
+ aws-cis-assess assess --output-format csv --output-file results.csv
232
+ ```
233
+
234
+ Includes:
235
+ - Summary CSV with overall scores
236
+ - Detailed findings CSV
237
+ - Remediation guidance CSV
238
+
239
+ ### Multiple Formats
240
+
241
+ Generate multiple formats simultaneously:
242
+
243
+ ```bash
244
+ aws-cis-assess assess --output-format json,html,csv --output-dir ./reports/
245
+ ```
246
+
247
+ ## Advanced Features
248
+
249
+ ### Performance Tuning
250
+
251
+ Control assessment performance:
252
+
253
+ ```bash
254
+ # Limit parallel workers
255
+ aws-cis-assess assess --max-workers 2
256
+
257
+ # Set timeout
258
+ aws-cis-assess assess --timeout 1800
259
+
260
+ # Quiet mode for automation
261
+ aws-cis-assess assess --quiet
262
+ ```
263
+
264
+ ### Error Handling
265
+
266
+ Configure error handling behavior:
267
+
268
+ ```bash
269
+ # Enable error recovery
270
+ aws-cis-assess assess --enable-error-recovery
271
+
272
+ # Disable audit trail
273
+ aws-cis-assess assess --disable-audit-trail
274
+ ```
275
+
276
+ ### Logging
277
+
278
+ Control logging output:
279
+
280
+ ```bash
281
+ # Set log level
282
+ aws-cis-assess assess --log-level DEBUG
283
+
284
+ # Log to file
285
+ aws-cis-assess assess --log-file assessment.log
286
+
287
+ # Verbose console output
288
+ aws-cis-assess assess --verbose
289
+ ```
290
+
291
+ ### Dry Run
292
+
293
+ Validate configuration without running assessment:
294
+
295
+ ```bash
296
+ aws-cis-assess assess --dry-run
297
+ ```
298
+
299
+ ## Best Practices
300
+
301
+ ### 1. Start Small
302
+
303
+ Begin with IG1 controls in a single region:
304
+
305
+ ```bash
306
+ aws-cis-assess assess --implementation-groups IG1 --regions us-east-1
307
+ ```
308
+
309
+ ### 2. Use Dry Run
310
+
311
+ Always validate before running full assessments:
312
+
313
+ ```bash
314
+ aws-cis-assess assess --dry-run
315
+ ```
316
+
317
+ ### 3. Preview Scope
318
+
319
+ Check what will be assessed:
320
+
321
+ ```bash
322
+ aws-cis-assess show-stats --implementation-groups IG1,IG2
323
+ ```
324
+
325
+ ### 4. Focus on Critical Controls
326
+
327
+ Start with the most important controls:
328
+
329
+ ```bash
330
+ aws-cis-assess assess --controls 1.1,3.3,5.2,6.1
331
+ ```
332
+
333
+ ### 5. Generate Multiple Formats
334
+
335
+ Create both viewing and automation formats:
336
+
337
+ ```bash
338
+ aws-cis-assess assess --output-format html,json --output-dir ./reports/
339
+ ```
340
+
341
+ ### 6. Use Appropriate Regions
342
+
343
+ Focus on your primary regions:
344
+
345
+ ```bash
346
+ aws-cis-assess assess --regions us-east-1,us-west-2,eu-west-1
347
+ ```
348
+
349
+ ### 7. Control Resource Usage
350
+
351
+ For large assessments, limit workers:
352
+
353
+ ```bash
354
+ aws-cis-assess assess --max-workers 2 --timeout 3600
355
+ ```
356
+
357
+ ### 8. Enable Detailed Logging
358
+
359
+ For troubleshooting:
360
+
361
+ ```bash
362
+ aws-cis-assess assess --log-level DEBUG --log-file debug.log
363
+ ```
364
+
365
+ ## Common Workflows
366
+
367
+ ### Initial Security Assessment
368
+
369
+ ```bash
370
+ # 1. Validate credentials
371
+ aws-cis-assess validate-credentials
372
+
373
+ # 2. Check available controls
374
+ aws-cis-assess list-controls
375
+
376
+ # 3. Preview assessment scope
377
+ aws-cis-assess show-stats
378
+
379
+ # 4. Run IG1 assessment
380
+ aws-cis-assess assess --implementation-groups IG1 --output-format html
381
+
382
+ # 5. Review results and plan improvements
383
+ ```
384
+
385
+ ### Regular Compliance Monitoring
386
+
387
+ ```bash
388
+ # Monthly comprehensive assessment
389
+ aws-cis-assess assess \
390
+ --output-format json,html \
391
+ --output-dir ./monthly-reports/ \
392
+ --log-file monthly-assessment.log
393
+
394
+ # Weekly IG1 check
395
+ aws-cis-assess assess \
396
+ --implementation-groups IG1 \
397
+ --quiet \
398
+ --output-format json \
399
+ --output-file weekly-ig1.json
400
+ ```
401
+
402
+ ### Focused Security Review
403
+
404
+ ```bash
405
+ # Focus on specific security areas
406
+ aws-cis-assess assess \
407
+ --controls 3.3,5.2,6.1,8.1 \
408
+ --regions us-east-1,us-west-2 \
409
+ --output-format html \
410
+ --output-file security-review.html
411
+ ```
412
+
413
+ ### Multi-Account Assessment
414
+
415
+ ```bash
416
+ # Account 1
417
+ aws-cis-assess assess \
418
+ --aws-profile account1-prod \
419
+ --output-file account1-results.json
420
+
421
+ # Account 2
422
+ aws-cis-assess assess \
423
+ --aws-profile account2-prod \
424
+ --output-file account2-results.json
425
+
426
+ # Account 3
427
+ aws-cis-assess assess \
428
+ --aws-profile account3-prod \
429
+ --output-file account3-results.json
430
+ ```
431
+
432
+ ### Troubleshooting Workflow
433
+
434
+ ```bash
435
+ # 1. Enable debug logging
436
+ aws-cis-assess assess \
437
+ --log-level DEBUG \
438
+ --log-file debug.log \
439
+ --verbose
440
+
441
+ # 2. Check specific regions
442
+ aws-cis-assess list-regions --aws-profile problematic-profile
443
+
444
+ # 3. Test credentials
445
+ aws-cis-assess validate-credentials --aws-profile problematic-profile
446
+
447
+ # 4. Validate configuration
448
+ aws-cis-assess validate-config
449
+
450
+ # 5. Run limited scope
451
+ aws-cis-assess assess \
452
+ --controls 1.1 \
453
+ --regions us-east-1 \
454
+ --verbose
455
+ ```
456
+
457
+ ## Understanding Results
458
+
459
+ ### Compliance Scores
460
+
461
+ - **Overall Compliance**: Weighted average across all Implementation Groups
462
+ - **IG1 Compliance**: Essential cyber hygiene controls
463
+ - **IG2 Compliance**: Enhanced security controls (includes IG1)
464
+ - **IG3 Compliance**: Advanced security controls (includes IG1+IG2)
465
+
466
+ ### Finding Status
467
+
468
+ - **COMPLIANT**: Resource meets the control requirements
469
+ - **NON_COMPLIANT**: Resource violates the control requirements
470
+ - **NOT_APPLICABLE**: Control doesn't apply to this resource
471
+ - **INSUFFICIENT_PERMISSIONS**: Cannot assess due to permission issues
472
+ - **ERROR**: Assessment failed due to technical issues
473
+
474
+ ### Remediation Guidance
475
+
476
+ Each non-compliant finding includes:
477
+ - Specific remediation steps
478
+ - AWS documentation links
479
+ - Priority level (HIGH, MEDIUM, LOW)
480
+ - Estimated effort
481
+
482
+ ## Next Steps
483
+
484
+ - **Configuration Guide**: Learn about customizing assessments
485
+ - **Troubleshooting Guide**: Resolve common issues
486
+ - **CLI Reference**: Complete command reference
487
+ - **Developer Guide**: Extend and customize the tool