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.
- aws_cis_assessment/__init__.py +11 -0
- aws_cis_assessment/cli/__init__.py +3 -0
- aws_cis_assessment/cli/examples.py +274 -0
- aws_cis_assessment/cli/main.py +1259 -0
- aws_cis_assessment/cli/utils.py +356 -0
- aws_cis_assessment/config/__init__.py +1 -0
- aws_cis_assessment/config/config_loader.py +328 -0
- aws_cis_assessment/config/rules/cis_controls_ig1.yaml +590 -0
- aws_cis_assessment/config/rules/cis_controls_ig2.yaml +412 -0
- aws_cis_assessment/config/rules/cis_controls_ig3.yaml +100 -0
- aws_cis_assessment/controls/__init__.py +1 -0
- aws_cis_assessment/controls/base_control.py +400 -0
- aws_cis_assessment/controls/ig1/__init__.py +239 -0
- aws_cis_assessment/controls/ig1/control_1_1.py +586 -0
- aws_cis_assessment/controls/ig1/control_2_2.py +231 -0
- aws_cis_assessment/controls/ig1/control_3_3.py +718 -0
- aws_cis_assessment/controls/ig1/control_3_4.py +235 -0
- aws_cis_assessment/controls/ig1/control_4_1.py +461 -0
- aws_cis_assessment/controls/ig1/control_access_keys.py +310 -0
- aws_cis_assessment/controls/ig1/control_advanced_security.py +512 -0
- aws_cis_assessment/controls/ig1/control_backup_recovery.py +510 -0
- aws_cis_assessment/controls/ig1/control_cloudtrail_logging.py +197 -0
- aws_cis_assessment/controls/ig1/control_critical_security.py +422 -0
- aws_cis_assessment/controls/ig1/control_data_protection.py +898 -0
- aws_cis_assessment/controls/ig1/control_iam_advanced.py +573 -0
- aws_cis_assessment/controls/ig1/control_iam_governance.py +493 -0
- aws_cis_assessment/controls/ig1/control_iam_policies.py +383 -0
- aws_cis_assessment/controls/ig1/control_instance_optimization.py +100 -0
- aws_cis_assessment/controls/ig1/control_network_enhancements.py +203 -0
- aws_cis_assessment/controls/ig1/control_network_security.py +672 -0
- aws_cis_assessment/controls/ig1/control_s3_enhancements.py +173 -0
- aws_cis_assessment/controls/ig1/control_s3_security.py +422 -0
- aws_cis_assessment/controls/ig1/control_vpc_security.py +235 -0
- aws_cis_assessment/controls/ig2/__init__.py +172 -0
- aws_cis_assessment/controls/ig2/control_3_10.py +698 -0
- aws_cis_assessment/controls/ig2/control_3_11.py +1330 -0
- aws_cis_assessment/controls/ig2/control_5_2.py +393 -0
- aws_cis_assessment/controls/ig2/control_advanced_encryption.py +355 -0
- aws_cis_assessment/controls/ig2/control_codebuild_security.py +263 -0
- aws_cis_assessment/controls/ig2/control_encryption_rest.py +382 -0
- aws_cis_assessment/controls/ig2/control_encryption_transit.py +382 -0
- aws_cis_assessment/controls/ig2/control_network_ha.py +467 -0
- aws_cis_assessment/controls/ig2/control_remaining_encryption.py +426 -0
- aws_cis_assessment/controls/ig2/control_remaining_rules.py +363 -0
- aws_cis_assessment/controls/ig2/control_service_logging.py +402 -0
- aws_cis_assessment/controls/ig3/__init__.py +49 -0
- aws_cis_assessment/controls/ig3/control_12_8.py +395 -0
- aws_cis_assessment/controls/ig3/control_13_1.py +467 -0
- aws_cis_assessment/controls/ig3/control_3_14.py +523 -0
- aws_cis_assessment/controls/ig3/control_7_1.py +359 -0
- aws_cis_assessment/core/__init__.py +1 -0
- aws_cis_assessment/core/accuracy_validator.py +425 -0
- aws_cis_assessment/core/assessment_engine.py +1266 -0
- aws_cis_assessment/core/audit_trail.py +491 -0
- aws_cis_assessment/core/aws_client_factory.py +313 -0
- aws_cis_assessment/core/error_handler.py +607 -0
- aws_cis_assessment/core/models.py +166 -0
- aws_cis_assessment/core/scoring_engine.py +459 -0
- aws_cis_assessment/reporters/__init__.py +8 -0
- aws_cis_assessment/reporters/base_reporter.py +454 -0
- aws_cis_assessment/reporters/csv_reporter.py +835 -0
- aws_cis_assessment/reporters/html_reporter.py +2162 -0
- aws_cis_assessment/reporters/json_reporter.py +561 -0
- aws_cis_controls_assessment-1.0.3.dist-info/METADATA +248 -0
- aws_cis_controls_assessment-1.0.3.dist-info/RECORD +77 -0
- aws_cis_controls_assessment-1.0.3.dist-info/WHEEL +5 -0
- aws_cis_controls_assessment-1.0.3.dist-info/entry_points.txt +2 -0
- aws_cis_controls_assessment-1.0.3.dist-info/licenses/LICENSE +21 -0
- aws_cis_controls_assessment-1.0.3.dist-info/top_level.txt +2 -0
- docs/README.md +94 -0
- docs/assessment-logic.md +766 -0
- docs/cli-reference.md +698 -0
- docs/config-rule-mappings.md +393 -0
- docs/developer-guide.md +858 -0
- docs/installation.md +299 -0
- docs/troubleshooting.md +634 -0
- docs/user-guide.md +487 -0
docs/troubleshooting.md
ADDED
|
@@ -0,0 +1,634 @@
|
|
|
1
|
+
# Troubleshooting Guide
|
|
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.
|
|
4
|
+
|
|
5
|
+
## Production Framework Status
|
|
6
|
+
|
|
7
|
+
**✅ Enterprise-Ready Solution**
|
|
8
|
+
- Complete implementation with 100% CIS Controls coverage
|
|
9
|
+
- Production-tested with comprehensive error handling
|
|
10
|
+
- Optimized for large-scale enterprise deployments
|
|
11
|
+
- Robust error recovery and retry mechanisms
|
|
12
|
+
|
|
13
|
+
## Table of Contents
|
|
14
|
+
|
|
15
|
+
1. [General Troubleshooting Steps](#general-troubleshooting-steps)
|
|
16
|
+
2. [AWS Credential Issues](#aws-credential-issues)
|
|
17
|
+
3. [IAM Permission Issues](#iam-permission-issues)
|
|
18
|
+
4. [Configuration Issues](#configuration-issues)
|
|
19
|
+
5. [Network and API Issues](#network-and-api-issues)
|
|
20
|
+
6. [Assessment Scope Issues](#assessment-scope-issues)
|
|
21
|
+
7. [Output and Reporting Issues](#output-and-reporting-issues)
|
|
22
|
+
8. [Performance Issues](#performance-issues)
|
|
23
|
+
9. [Error Codes Reference](#error-codes-reference)
|
|
24
|
+
10. [Getting Additional Help](#getting-additional-help)
|
|
25
|
+
|
|
26
|
+
## General Troubleshooting Steps
|
|
27
|
+
|
|
28
|
+
### 1. Enable Verbose Logging
|
|
29
|
+
|
|
30
|
+
Always start with verbose logging to get detailed information:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
aws-cis-assess assess --verbose --log-level DEBUG --log-file debug.log
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. Validate Your Setup
|
|
37
|
+
|
|
38
|
+
Run basic validation commands:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Check tool version
|
|
42
|
+
aws-cis-assess --version
|
|
43
|
+
|
|
44
|
+
# Validate AWS credentials
|
|
45
|
+
aws-cis-assess validate-credentials --verbose
|
|
46
|
+
|
|
47
|
+
# Validate configuration
|
|
48
|
+
aws-cis-assess validate-config --verbose
|
|
49
|
+
|
|
50
|
+
# Test with dry run
|
|
51
|
+
aws-cis-assess assess --dry-run --verbose
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 3. Start with Minimal Scope
|
|
55
|
+
|
|
56
|
+
Reduce scope to isolate issues:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Single control, single region
|
|
60
|
+
aws-cis-assess assess --controls 1.1 --regions us-east-1 --verbose
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Check System Resources
|
|
64
|
+
|
|
65
|
+
Ensure adequate system resources:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Check available memory
|
|
69
|
+
free -h
|
|
70
|
+
|
|
71
|
+
# Check disk space
|
|
72
|
+
df -h
|
|
73
|
+
|
|
74
|
+
# Check Python version
|
|
75
|
+
python --version
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## AWS Credential Issues
|
|
79
|
+
|
|
80
|
+
### Problem: NoCredentialsError
|
|
81
|
+
|
|
82
|
+
**Error Message:**
|
|
83
|
+
```
|
|
84
|
+
NoCredentialsError: Unable to locate credentials
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**Solutions:**
|
|
88
|
+
|
|
89
|
+
1. **Configure AWS CLI:**
|
|
90
|
+
```bash
|
|
91
|
+
aws configure
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
2. **Set environment variables:**
|
|
95
|
+
```bash
|
|
96
|
+
export AWS_ACCESS_KEY_ID=your_access_key
|
|
97
|
+
export AWS_SECRET_ACCESS_KEY=your_secret_key
|
|
98
|
+
export AWS_DEFAULT_REGION=us-east-1
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
3. **Use specific profile:**
|
|
102
|
+
```bash
|
|
103
|
+
aws-cis-assess assess --aws-profile your-profile
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
4. **Verify credentials:**
|
|
107
|
+
```bash
|
|
108
|
+
aws sts get-caller-identity
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Problem: InvalidUserID.NotFound
|
|
112
|
+
|
|
113
|
+
**Error Message:**
|
|
114
|
+
```
|
|
115
|
+
InvalidUserID.NotFound: The user ID does not exist
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Solutions:**
|
|
119
|
+
|
|
120
|
+
1. **Check user/role exists:**
|
|
121
|
+
```bash
|
|
122
|
+
aws iam get-user
|
|
123
|
+
# or
|
|
124
|
+
aws sts get-caller-identity
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
2. **Verify profile configuration:**
|
|
128
|
+
```bash
|
|
129
|
+
cat ~/.aws/credentials
|
|
130
|
+
cat ~/.aws/config
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
3. **Test with different profile:**
|
|
134
|
+
```bash
|
|
135
|
+
aws-cis-assess validate-credentials --aws-profile different-profile
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Problem: Token Expired
|
|
139
|
+
|
|
140
|
+
**Error Message:**
|
|
141
|
+
```
|
|
142
|
+
TokenRefreshError: The AWS Access Token has expired
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Solutions:**
|
|
146
|
+
|
|
147
|
+
1. **Refresh SSO token:**
|
|
148
|
+
```bash
|
|
149
|
+
aws sso login --profile your-sso-profile
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
2. **Re-authenticate:**
|
|
153
|
+
```bash
|
|
154
|
+
aws configure sso
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
3. **Use long-term credentials for automation:**
|
|
158
|
+
```bash
|
|
159
|
+
# Create service account with access keys
|
|
160
|
+
aws iam create-access-key --user-name service-account
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## IAM Permission Issues
|
|
164
|
+
|
|
165
|
+
### Problem: AccessDenied Errors
|
|
166
|
+
|
|
167
|
+
**Error Message:**
|
|
168
|
+
```
|
|
169
|
+
AccessDenied: User: arn:aws:iam::123456789012:user/username is not authorized to perform: ec2:DescribeInstances
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Solutions:**
|
|
173
|
+
|
|
174
|
+
1. **Use ReadOnlyAccess policy:**
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"Version": "2012-10-17",
|
|
178
|
+
"Statement": [
|
|
179
|
+
{
|
|
180
|
+
"Effect": "Allow",
|
|
181
|
+
"Action": "ReadOnlyAccess",
|
|
182
|
+
"Resource": "*"
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
2. **Add specific permissions:**
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"Version": "2012-10-17",
|
|
192
|
+
"Statement": [
|
|
193
|
+
{
|
|
194
|
+
"Effect": "Allow",
|
|
195
|
+
"Action": [
|
|
196
|
+
"ec2:Describe*",
|
|
197
|
+
"iam:Get*",
|
|
198
|
+
"iam:List*",
|
|
199
|
+
"s3:GetBucket*",
|
|
200
|
+
"s3:ListBucket*"
|
|
201
|
+
],
|
|
202
|
+
"Resource": "*"
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
3. **Check current permissions:**
|
|
209
|
+
```bash
|
|
210
|
+
aws iam simulate-principal-policy \
|
|
211
|
+
--policy-source-arn arn:aws:iam::123456789012:user/username \
|
|
212
|
+
--action-names ec2:DescribeInstances \
|
|
213
|
+
--resource-arns "*"
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Problem: Partial Assessment Results
|
|
217
|
+
|
|
218
|
+
**Symptoms:**
|
|
219
|
+
- Some controls show "INSUFFICIENT_PERMISSIONS"
|
|
220
|
+
- Assessment completes but with many errors
|
|
221
|
+
- Missing results for certain services
|
|
222
|
+
|
|
223
|
+
**Solutions:**
|
|
224
|
+
|
|
225
|
+
1. **Review permission errors:**
|
|
226
|
+
```bash
|
|
227
|
+
aws-cis-assess assess --verbose 2>&1 | grep -i "access.*denied"
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
2. **Add missing service permissions:**
|
|
231
|
+
```bash
|
|
232
|
+
# Example: Add CloudTrail permissions
|
|
233
|
+
aws iam attach-user-policy \
|
|
234
|
+
--user-name your-user \
|
|
235
|
+
--policy-arn arn:aws:iam::aws:policy/CloudTrailReadOnlyAccess
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
3. **Use broader permissions for comprehensive assessment:**
|
|
239
|
+
```bash
|
|
240
|
+
aws iam attach-user-policy \
|
|
241
|
+
--user-name your-user \
|
|
242
|
+
--policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
## Configuration Issues
|
|
246
|
+
|
|
247
|
+
### Problem: Configuration Validation Failed
|
|
248
|
+
|
|
249
|
+
**Error Message:**
|
|
250
|
+
```
|
|
251
|
+
Configuration validation failed:
|
|
252
|
+
• Missing required field 'resource_types' in control 1.1
|
|
253
|
+
• Invalid YAML syntax in cis_controls_ig1.yaml
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
**Solutions:**
|
|
257
|
+
|
|
258
|
+
1. **Use default configuration:**
|
|
259
|
+
```bash
|
|
260
|
+
aws-cis-assess assess # Uses built-in configuration
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
2. **Validate custom configuration:**
|
|
264
|
+
```bash
|
|
265
|
+
aws-cis-assess validate-config --config-path ./custom-config/
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
3. **Check YAML syntax:**
|
|
269
|
+
```bash
|
|
270
|
+
python -c "import yaml; yaml.safe_load(open('config.yaml'))"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
4. **Reset to defaults:**
|
|
274
|
+
```bash
|
|
275
|
+
# Remove custom config to use defaults
|
|
276
|
+
rm -rf ~/.aws-cis-assessment/config/
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Problem: Controls Not Found
|
|
280
|
+
|
|
281
|
+
**Error Message:**
|
|
282
|
+
```
|
|
283
|
+
Control '1.1' not found in configuration
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**Solutions:**
|
|
287
|
+
|
|
288
|
+
1. **List available controls:**
|
|
289
|
+
```bash
|
|
290
|
+
aws-cis-assess list-controls
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
2. **Check control ID format:**
|
|
294
|
+
```bash
|
|
295
|
+
# Correct format
|
|
296
|
+
aws-cis-assess assess --controls 1.1,3.3,4.1
|
|
297
|
+
|
|
298
|
+
# Incorrect format
|
|
299
|
+
aws-cis-assess assess --controls 1-1,3-3,4-1
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
3. **Verify Implementation Group:**
|
|
303
|
+
```bash
|
|
304
|
+
aws-cis-assess list-controls | grep "1.1"
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Network and API Issues
|
|
308
|
+
|
|
309
|
+
### Problem: Connection Timeouts
|
|
310
|
+
|
|
311
|
+
**Error Message:**
|
|
312
|
+
```
|
|
313
|
+
ConnectTimeoutError: Connect timeout on endpoint URL
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
**Solutions:**
|
|
317
|
+
|
|
318
|
+
1. **Check internet connectivity:**
|
|
319
|
+
```bash
|
|
320
|
+
ping aws.amazon.com
|
|
321
|
+
curl -I https://ec2.us-east-1.amazonaws.com
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
2. **Configure proxy settings:**
|
|
325
|
+
```bash
|
|
326
|
+
export HTTP_PROXY=http://proxy.company.com:8080
|
|
327
|
+
export HTTPS_PROXY=https://proxy.company.com:8080
|
|
328
|
+
|
|
329
|
+
# Or in AWS CLI config
|
|
330
|
+
aws configure set proxy.http http://proxy.company.com:8080
|
|
331
|
+
aws configure set proxy.https https://proxy.company.com:8080
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
3. **Increase timeout:**
|
|
335
|
+
```bash
|
|
336
|
+
aws-cis-assess assess --timeout 3600 # 1 hour
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Problem: API Throttling
|
|
340
|
+
|
|
341
|
+
**Error Message:**
|
|
342
|
+
```
|
|
343
|
+
ThrottlingException: Rate exceeded
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**Solutions:**
|
|
347
|
+
|
|
348
|
+
1. **Reduce parallel workers:**
|
|
349
|
+
```bash
|
|
350
|
+
aws-cis-assess assess --max-workers 1
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
2. **Add delays between calls:**
|
|
354
|
+
```bash
|
|
355
|
+
# The tool automatically implements exponential backoff
|
|
356
|
+
# Just retry the assessment
|
|
357
|
+
aws-cis-assess assess --verbose
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
3. **Assess fewer regions:**
|
|
361
|
+
```bash
|
|
362
|
+
aws-cis-assess assess --regions us-east-1,us-west-2
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Problem: Service Unavailable
|
|
366
|
+
|
|
367
|
+
**Error Message:**
|
|
368
|
+
```
|
|
369
|
+
ServiceUnavailableException: Service is temporarily unavailable
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
**Solutions:**
|
|
373
|
+
|
|
374
|
+
1. **Check AWS service status:**
|
|
375
|
+
- Visit https://status.aws.amazon.com/
|
|
376
|
+
- Check specific service status
|
|
377
|
+
|
|
378
|
+
2. **Retry after delay:**
|
|
379
|
+
```bash
|
|
380
|
+
sleep 300 # Wait 5 minutes
|
|
381
|
+
aws-cis-assess assess --verbose
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
3. **Exclude problematic regions:**
|
|
385
|
+
```bash
|
|
386
|
+
aws-cis-assess assess --exclude-regions us-west-1
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
## Assessment Scope Issues
|
|
390
|
+
|
|
391
|
+
### Problem: Too Many Resources
|
|
392
|
+
|
|
393
|
+
**Symptoms:**
|
|
394
|
+
- Assessment runs out of memory
|
|
395
|
+
- Assessment takes too long
|
|
396
|
+
- System becomes unresponsive
|
|
397
|
+
|
|
398
|
+
**Solutions:**
|
|
399
|
+
|
|
400
|
+
1. **Limit scope:**
|
|
401
|
+
```bash
|
|
402
|
+
# Assess only IG1
|
|
403
|
+
aws-cis-assess assess --implementation-groups IG1
|
|
404
|
+
|
|
405
|
+
# Assess specific controls
|
|
406
|
+
aws-cis-assess assess --controls 1.1,3.3
|
|
407
|
+
|
|
408
|
+
# Limit regions
|
|
409
|
+
aws-cis-assess assess --regions us-east-1
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
2. **Reduce workers:**
|
|
413
|
+
```bash
|
|
414
|
+
aws-cis-assess assess --max-workers 1
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
3. **Preview scope:**
|
|
418
|
+
```bash
|
|
419
|
+
aws-cis-assess show-stats --implementation-groups IG1,IG2
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Problem: Unexpected Controls Being Assessed
|
|
423
|
+
|
|
424
|
+
**Solutions:**
|
|
425
|
+
|
|
426
|
+
1. **Check Implementation Group hierarchy:**
|
|
427
|
+
- IG2 includes all IG1 controls
|
|
428
|
+
- IG3 includes all IG1 and IG2 controls
|
|
429
|
+
|
|
430
|
+
2. **Use specific controls:**
|
|
431
|
+
```bash
|
|
432
|
+
aws-cis-assess assess --controls 1.1,3.3 # Only these controls
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
3. **Exclude unwanted controls:**
|
|
436
|
+
```bash
|
|
437
|
+
aws-cis-assess assess --exclude-controls 7.1,12.8
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
## Output and Reporting Issues
|
|
441
|
+
|
|
442
|
+
### Problem: Reports Not Generated
|
|
443
|
+
|
|
444
|
+
**Error Message:**
|
|
445
|
+
```
|
|
446
|
+
Permission denied: cannot write to /path/to/output.html
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
**Solutions:**
|
|
450
|
+
|
|
451
|
+
1. **Check write permissions:**
|
|
452
|
+
```bash
|
|
453
|
+
ls -la /path/to/output/directory/
|
|
454
|
+
chmod 755 /path/to/output/directory/
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
2. **Use different output directory:**
|
|
458
|
+
```bash
|
|
459
|
+
aws-cis-assess assess --output-dir ~/reports/
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
3. **Use absolute paths:**
|
|
463
|
+
```bash
|
|
464
|
+
aws-cis-assess assess --output-file /home/user/reports/assessment.html
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
### Problem: Corrupted or Empty Reports
|
|
468
|
+
|
|
469
|
+
**Solutions:**
|
|
470
|
+
|
|
471
|
+
1. **Check disk space:**
|
|
472
|
+
```bash
|
|
473
|
+
df -h
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
2. **Verify assessment completed:**
|
|
477
|
+
```bash
|
|
478
|
+
aws-cis-assess assess --verbose 2>&1 | tail -20
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
3. **Try different format:**
|
|
482
|
+
```bash
|
|
483
|
+
aws-cis-assess assess --output-format json # Simpler format
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### Problem: Log Files Not Created
|
|
487
|
+
|
|
488
|
+
**Solutions:**
|
|
489
|
+
|
|
490
|
+
1. **Check log file permissions:**
|
|
491
|
+
```bash
|
|
492
|
+
touch /path/to/logfile.log
|
|
493
|
+
ls -la /path/to/logfile.log
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
2. **Use relative path:**
|
|
497
|
+
```bash
|
|
498
|
+
aws-cis-assess assess --log-file ./assessment.log
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
3. **Check parent directory exists:**
|
|
502
|
+
```bash
|
|
503
|
+
mkdir -p /path/to/logs/
|
|
504
|
+
aws-cis-assess assess --log-file /path/to/logs/assessment.log
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
## Performance Issues
|
|
508
|
+
|
|
509
|
+
### Problem: Assessment Takes Too Long
|
|
510
|
+
|
|
511
|
+
**Solutions:**
|
|
512
|
+
|
|
513
|
+
1. **Reduce scope:**
|
|
514
|
+
```bash
|
|
515
|
+
# Start with IG1 only
|
|
516
|
+
aws-cis-assess assess --implementation-groups IG1
|
|
517
|
+
|
|
518
|
+
# Limit regions
|
|
519
|
+
aws-cis-assess assess --regions us-east-1,us-west-2
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
2. **Increase workers (if system can handle it):**
|
|
523
|
+
```bash
|
|
524
|
+
aws-cis-assess assess --max-workers 8
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
3. **Set reasonable timeout:**
|
|
528
|
+
```bash
|
|
529
|
+
aws-cis-assess assess --timeout 1800 # 30 minutes
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Problem: High Memory Usage
|
|
533
|
+
|
|
534
|
+
**Solutions:**
|
|
535
|
+
|
|
536
|
+
1. **Reduce workers:**
|
|
537
|
+
```bash
|
|
538
|
+
aws-cis-assess assess --max-workers 1
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
2. **Limit scope:**
|
|
542
|
+
```bash
|
|
543
|
+
aws-cis-assess assess --controls 1.1,3.3,4.1
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
3. **Monitor system resources:**
|
|
547
|
+
```bash
|
|
548
|
+
# Run in background and monitor
|
|
549
|
+
aws-cis-assess assess --quiet &
|
|
550
|
+
top -p $!
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
## Error Codes Reference
|
|
554
|
+
|
|
555
|
+
### Common Exit Codes
|
|
556
|
+
|
|
557
|
+
- **0**: Success
|
|
558
|
+
- **1**: General error
|
|
559
|
+
- **2**: Configuration error
|
|
560
|
+
- **3**: Credential error
|
|
561
|
+
- **4**: Permission error
|
|
562
|
+
- **5**: Network error
|
|
563
|
+
- **130**: Interrupted by user (Ctrl+C)
|
|
564
|
+
|
|
565
|
+
### AWS API Error Codes
|
|
566
|
+
|
|
567
|
+
- **AccessDenied**: Insufficient IAM permissions
|
|
568
|
+
- **InvalidUserID.NotFound**: User/role doesn't exist
|
|
569
|
+
- **TokenRefreshError**: Expired credentials
|
|
570
|
+
- **ThrottlingException**: API rate limit exceeded
|
|
571
|
+
- **ServiceUnavailableException**: AWS service temporarily unavailable
|
|
572
|
+
- **NoCredentialsError**: No AWS credentials found
|
|
573
|
+
|
|
574
|
+
## Getting Additional Help
|
|
575
|
+
|
|
576
|
+
### Enable Debug Mode
|
|
577
|
+
|
|
578
|
+
```bash
|
|
579
|
+
aws-cis-assess assess --debug --verbose --log-file full-debug.log
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
### Collect System Information
|
|
583
|
+
|
|
584
|
+
```bash
|
|
585
|
+
# System info
|
|
586
|
+
uname -a
|
|
587
|
+
python --version
|
|
588
|
+
pip list | grep aws
|
|
589
|
+
|
|
590
|
+
# AWS info
|
|
591
|
+
aws --version
|
|
592
|
+
aws sts get-caller-identity
|
|
593
|
+
aws configure list
|
|
594
|
+
|
|
595
|
+
# Tool info
|
|
596
|
+
aws-cis-assess --version
|
|
597
|
+
aws-cis-assess validate-credentials --verbose
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
### Create Minimal Reproduction
|
|
601
|
+
|
|
602
|
+
```bash
|
|
603
|
+
# Minimal command that reproduces the issue
|
|
604
|
+
aws-cis-assess assess \
|
|
605
|
+
--controls 1.1 \
|
|
606
|
+
--regions us-east-1 \
|
|
607
|
+
--verbose \
|
|
608
|
+
--log-file minimal-repro.log
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
### Report Issues
|
|
612
|
+
|
|
613
|
+
When reporting issues, include:
|
|
614
|
+
|
|
615
|
+
1. **Command used**: Full command line
|
|
616
|
+
2. **Error message**: Complete error output
|
|
617
|
+
3. **Log files**: Debug logs if available
|
|
618
|
+
4. **Environment**: OS, Python version, tool version
|
|
619
|
+
5. **AWS setup**: Region, account type, permissions
|
|
620
|
+
6. **Expected vs actual behavior**: What you expected vs what happened
|
|
621
|
+
|
|
622
|
+
### Community Resources
|
|
623
|
+
|
|
624
|
+
- **GitHub Issues**: Report bugs and request features
|
|
625
|
+
- **Documentation**: Check latest documentation
|
|
626
|
+
- **AWS Forums**: AWS-specific questions
|
|
627
|
+
- **Stack Overflow**: General troubleshooting
|
|
628
|
+
|
|
629
|
+
### Professional Support
|
|
630
|
+
|
|
631
|
+
For enterprise users:
|
|
632
|
+
- **AWS Support**: For AWS service-related issues
|
|
633
|
+
- **Professional Services**: For implementation assistance
|
|
634
|
+
- **Training**: For team education and best practices
|