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/installation.md ADDED
@@ -0,0 +1,299 @@
1
+ # Installation Guide
2
+
3
+ This guide covers the installation and initial setup of the AWS CIS Controls Compliance Assessment Framework - a production-ready, enterprise-grade solution for AWS security compliance assessment.
4
+
5
+ ## Production Status
6
+
7
+ **✅ Ready for Enterprise Deployment**
8
+ - Complete implementation with 136 AWS Config rules (131 CIS Controls + 5 bonus)
9
+ - 100% CIS Controls coverage across all Implementation Groups
10
+ - Production-tested architecture with comprehensive error handling
11
+ - Enterprise-grade performance and scalability
12
+
13
+ ## System Requirements
14
+
15
+ ### Python Requirements
16
+ - **Python 3.8 or higher** (Python 3.9+ recommended)
17
+ - **pip** package manager
18
+ - **Virtual environment** (recommended)
19
+
20
+ ### AWS Requirements
21
+ - **AWS Account** with appropriate permissions
22
+ - **AWS CLI** configured (optional but recommended)
23
+ - **Read-only access** to AWS services being assessed
24
+
25
+ ### Operating System Support
26
+ - **Linux** (Ubuntu 18.04+, CentOS 7+, Amazon Linux 2)
27
+ - **macOS** (10.14+)
28
+ - **Windows** (Windows 10, Windows Server 2016+)
29
+
30
+ ## Installation Methods
31
+
32
+ ### Method 1: Install from PyPI (Recommended)
33
+
34
+ ```bash
35
+ # Install the latest production version
36
+ pip install aws-cis-assessment
37
+
38
+ # Verify installation
39
+ aws-cis-assess --version
40
+ ```
41
+
42
+ ### Method 2: Install from Source
43
+
44
+ ```bash
45
+ # Clone the repository
46
+ git clone https://github.com/your-org/aws-cis-assessment.git
47
+ cd aws-cis-assessment
48
+
49
+ # Create virtual environment (recommended)
50
+ python -m venv venv
51
+ source venv/bin/activate # On Windows: venv\Scripts\activate
52
+
53
+ # Install dependencies
54
+ pip install -r requirements.txt
55
+
56
+ # Install in development mode
57
+ pip install -e .
58
+
59
+ # Verify installation
60
+ aws-cis-assess --version
61
+ ```
62
+
63
+
64
+
65
+ ## AWS Credentials Setup
66
+
67
+ The tool supports multiple methods for AWS credential configuration:
68
+
69
+ ### Method 1: AWS CLI Configuration (Recommended)
70
+
71
+ ```bash
72
+ # Install AWS CLI if not already installed
73
+ pip install awscli
74
+
75
+ # Configure credentials
76
+ aws configure
77
+ ```
78
+
79
+ This creates `~/.aws/credentials` and `~/.aws/config` files.
80
+
81
+ ### Method 2: Environment Variables
82
+
83
+ ```bash
84
+ export AWS_ACCESS_KEY_ID=your_access_key
85
+ export AWS_SECRET_ACCESS_KEY=your_secret_key
86
+ export AWS_DEFAULT_REGION=us-east-1
87
+ ```
88
+
89
+ ### Method 3: IAM Roles (EC2/ECS/Lambda)
90
+
91
+ When running on AWS services, the tool automatically uses IAM roles attached to the service.
92
+
93
+ ### Method 4: AWS SSO
94
+
95
+ ```bash
96
+ # Configure AWS SSO
97
+ aws configure sso
98
+
99
+ # Use SSO profile
100
+ aws-cis-assess assess --aws-profile my-sso-profile
101
+ ```
102
+
103
+ ## Required IAM Permissions
104
+
105
+ The tool requires read-only permissions for various AWS services. Here's a comprehensive IAM policy:
106
+
107
+ ```json
108
+ {
109
+ "Version": "2012-10-17",
110
+ "Statement": [
111
+ {
112
+ "Effect": "Allow",
113
+ "Action": [
114
+ "ec2:Describe*",
115
+ "iam:Get*",
116
+ "iam:List*",
117
+ "s3:GetBucket*",
118
+ "s3:GetObject*",
119
+ "s3:ListBucket*",
120
+ "rds:Describe*",
121
+ "cloudtrail:Describe*",
122
+ "cloudtrail:GetTrailStatus",
123
+ "cloudtrail:LookupEvents",
124
+ "cloudwatch:Describe*",
125
+ "cloudwatch:Get*",
126
+ "cloudwatch:List*",
127
+ "logs:Describe*",
128
+ "guardduty:Get*",
129
+ "guardduty:List*",
130
+ "config:Describe*",
131
+ "config:Get*",
132
+ "config:List*",
133
+ "kms:Describe*",
134
+ "kms:Get*",
135
+ "kms:List*",
136
+ "secretsmanager:Describe*",
137
+ "secretsmanager:List*",
138
+ "ssm:Describe*",
139
+ "ssm:Get*",
140
+ "ssm:List*",
141
+ "organizations:Describe*",
142
+ "organizations:List*",
143
+ "backup:Describe*",
144
+ "backup:Get*",
145
+ "backup:List*",
146
+ "dynamodb:Describe*",
147
+ "dynamodb:List*",
148
+ "elasticloadbalancing:Describe*",
149
+ "apigateway:GET",
150
+ "redshift:Describe*",
151
+ "ecr:Describe*",
152
+ "ecr:Get*",
153
+ "ecr:List*",
154
+ "wafv2:Get*",
155
+ "wafv2:List*",
156
+ "waf:Get*",
157
+ "waf:List*"
158
+ ],
159
+ "Resource": "*"
160
+ }
161
+ ]
162
+ }
163
+ ```
164
+
165
+ ### Minimal Permissions for Testing
166
+
167
+ For initial testing, you can use the AWS managed `ReadOnlyAccess` policy:
168
+
169
+ ```json
170
+ {
171
+ "Version": "2012-10-17",
172
+ "Statement": [
173
+ {
174
+ "Effect": "Allow",
175
+ "Action": [
176
+ "ReadOnlyAccess"
177
+ ],
178
+ "Resource": "*"
179
+ }
180
+ ]
181
+ }
182
+ ```
183
+
184
+ ## Verification
185
+
186
+ ### Test Installation
187
+
188
+ ```bash
189
+ # Check version
190
+ aws-cis-assess --version
191
+
192
+ # List available commands
193
+ aws-cis-assess --help
194
+
195
+ # Test AWS credentials
196
+ aws-cis-assess validate-credentials
197
+
198
+ # List available regions
199
+ aws-cis-assess list-regions
200
+
201
+ # Show assessment statistics
202
+ aws-cis-assess show-stats
203
+ ```
204
+
205
+ ### Run Sample Assessment
206
+
207
+ ```bash
208
+ # Run a quick IG1 assessment
209
+ aws-cis-assess assess --implementation-groups IG1 --regions us-east-1
210
+
211
+ # Run dry run to validate configuration
212
+ aws-cis-assess assess --dry-run
213
+ ```
214
+
215
+
216
+ ## Troubleshooting Installation
217
+
218
+ ### Common Issues
219
+
220
+ #### Python Version Issues
221
+ ```bash
222
+ # Check Python version
223
+ python --version
224
+
225
+ # Use specific Python version
226
+ python3.9 -m pip install aws-cis-assessment
227
+ ```
228
+
229
+ #### Permission Issues
230
+ ```bash
231
+ # Install for current user only
232
+ pip install --user aws-cis-assessment
233
+
234
+ # Use virtual environment
235
+ python -m venv aws-cis-env
236
+ source aws-cis-env/bin/activate
237
+ pip install aws-cis-assessment
238
+ ```
239
+
240
+ #### AWS Credential Issues
241
+ ```bash
242
+ # Test AWS credentials
243
+ aws sts get-caller-identity
244
+
245
+ # Validate with the tool
246
+ aws-cis-assess validate-credentials --verbose
247
+ ```
248
+
249
+ #### Network/Proxy Issues
250
+ ```bash
251
+ # Install with proxy
252
+ pip install --proxy http://proxy.company.com:8080 aws-cis-assessment
253
+
254
+ # Configure AWS CLI with proxy
255
+ aws configure set proxy.http http://proxy.company.com:8080
256
+ aws configure set proxy.https https://proxy.company.com:8080
257
+ ```
258
+
259
+ ### Getting Help
260
+
261
+ If you encounter issues during installation:
262
+
263
+ 1. **Check the troubleshooting guide**: `docs/troubleshooting.md`
264
+ 2. **Enable verbose logging**: Add `--verbose` to commands
265
+ 3. **Check system requirements**: Ensure Python 3.8+ and proper AWS access
266
+ 4. **Review AWS permissions**: Verify IAM permissions are sufficient
267
+ 5. **Report issues**: Create an issue on GitHub with detailed error information
268
+
269
+ ## Next Steps
270
+
271
+ After successful installation:
272
+
273
+ 1. **Read the User Guide**: `docs/user-guide.md`
274
+ 2. **Review Configuration Options**: `docs/configuration.md`
275
+ 3. **Run Your First Assessment**: Follow the quick start in the user guide
276
+ 4. **Explore CLI Commands**: `docs/cli-reference.md`
277
+
278
+ ## Upgrading
279
+
280
+ ### Upgrade from PyPI
281
+ ```bash
282
+ pip install --upgrade aws-cis-assessment
283
+ ```
284
+
285
+ ### Upgrade from Source
286
+ ```bash
287
+ cd aws-cis-assessment
288
+ git pull origin main
289
+ pip install -e .
290
+ ```
291
+
292
+ ### Check for Updates
293
+ ```bash
294
+ # Check current version
295
+ aws-cis-assess --version
296
+
297
+ # Check for available updates
298
+ pip list --outdated | grep aws-cis-assessment
299
+ ```