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/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
|
+
```
|