runbooks 0.7.0__py3-none-any.whl → 0.7.6__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.
- runbooks/__init__.py +87 -37
- runbooks/cfat/README.md +300 -49
- runbooks/cfat/__init__.py +2 -2
- runbooks/finops/__init__.py +1 -1
- runbooks/finops/cli.py +1 -1
- runbooks/inventory/collectors/__init__.py +8 -0
- runbooks/inventory/collectors/aws_management.py +791 -0
- runbooks/inventory/collectors/aws_networking.py +3 -3
- runbooks/main.py +3389 -782
- runbooks/operate/__init__.py +207 -0
- runbooks/operate/base.py +311 -0
- runbooks/operate/cloudformation_operations.py +619 -0
- runbooks/operate/cloudwatch_operations.py +496 -0
- runbooks/operate/dynamodb_operations.py +812 -0
- runbooks/operate/ec2_operations.py +926 -0
- runbooks/operate/iam_operations.py +569 -0
- runbooks/operate/s3_operations.py +1211 -0
- runbooks/operate/tagging_operations.py +655 -0
- runbooks/remediation/CLAUDE.md +100 -0
- runbooks/remediation/DOME9.md +218 -0
- runbooks/remediation/README.md +26 -0
- runbooks/remediation/Tests/__init__.py +0 -0
- runbooks/remediation/Tests/update_policy.py +74 -0
- runbooks/remediation/__init__.py +95 -0
- runbooks/remediation/acm_cert_expired_unused.py +98 -0
- runbooks/remediation/acm_remediation.py +875 -0
- runbooks/remediation/api_gateway_list.py +167 -0
- runbooks/remediation/base.py +643 -0
- runbooks/remediation/cloudtrail_remediation.py +908 -0
- runbooks/remediation/cloudtrail_s3_modifications.py +296 -0
- runbooks/remediation/cognito_active_users.py +78 -0
- runbooks/remediation/cognito_remediation.py +856 -0
- runbooks/remediation/cognito_user_password_reset.py +163 -0
- runbooks/remediation/commons.py +455 -0
- runbooks/remediation/dynamodb_optimize.py +155 -0
- runbooks/remediation/dynamodb_remediation.py +744 -0
- runbooks/remediation/dynamodb_server_side_encryption.py +108 -0
- runbooks/remediation/ec2_public_ips.py +134 -0
- runbooks/remediation/ec2_remediation.py +892 -0
- runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py +72 -0
- runbooks/remediation/ec2_unattached_ebs_volumes.py +448 -0
- runbooks/remediation/ec2_unused_security_groups.py +202 -0
- runbooks/remediation/kms_enable_key_rotation.py +651 -0
- runbooks/remediation/kms_remediation.py +717 -0
- runbooks/remediation/lambda_list.py +243 -0
- runbooks/remediation/lambda_remediation.py +971 -0
- runbooks/remediation/multi_account.py +569 -0
- runbooks/remediation/rds_instance_list.py +199 -0
- runbooks/remediation/rds_remediation.py +873 -0
- runbooks/remediation/rds_snapshot_list.py +192 -0
- runbooks/remediation/requirements.txt +118 -0
- runbooks/remediation/s3_block_public_access.py +159 -0
- runbooks/remediation/s3_bucket_public_access.py +143 -0
- runbooks/remediation/s3_disable_static_website_hosting.py +74 -0
- runbooks/remediation/s3_downloader.py +215 -0
- runbooks/remediation/s3_enable_access_logging.py +562 -0
- runbooks/remediation/s3_encryption.py +526 -0
- runbooks/remediation/s3_force_ssl_secure_policy.py +143 -0
- runbooks/remediation/s3_list.py +141 -0
- runbooks/remediation/s3_object_search.py +201 -0
- runbooks/remediation/s3_remediation.py +816 -0
- runbooks/remediation/scan_for_phrase.py +425 -0
- runbooks/remediation/workspaces_list.py +220 -0
- runbooks/security/__init__.py +9 -10
- runbooks/security/security_baseline_tester.py +4 -2
- runbooks-0.7.6.dist-info/METADATA +608 -0
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/RECORD +84 -76
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/entry_points.txt +0 -1
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/top_level.txt +0 -1
- jupyter-agent/.env +0 -2
- jupyter-agent/.env.template +0 -2
- jupyter-agent/.gitattributes +0 -35
- jupyter-agent/.gradio/certificate.pem +0 -31
- jupyter-agent/README.md +0 -16
- jupyter-agent/__main__.log +0 -8
- jupyter-agent/app.py +0 -256
- jupyter-agent/cloudops-agent.png +0 -0
- jupyter-agent/ds-system-prompt.txt +0 -154
- jupyter-agent/jupyter-agent.png +0 -0
- jupyter-agent/llama3_template.jinja +0 -123
- jupyter-agent/requirements.txt +0 -9
- jupyter-agent/tmp/4ojbs8a02ir/jupyter-agent.ipynb +0 -68
- jupyter-agent/tmp/cm5iasgpm3p/jupyter-agent.ipynb +0 -91
- jupyter-agent/tmp/crqbsseag5/jupyter-agent.ipynb +0 -91
- jupyter-agent/tmp/hohanq1u097/jupyter-agent.ipynb +0 -57
- jupyter-agent/tmp/jns1sam29wm/jupyter-agent.ipynb +0 -53
- jupyter-agent/tmp/jupyter-agent.ipynb +0 -27
- jupyter-agent/utils.py +0 -409
- runbooks/aws/__init__.py +0 -58
- runbooks/aws/dynamodb_operations.py +0 -231
- runbooks/aws/ec2_copy_image_cross-region.py +0 -195
- runbooks/aws/ec2_describe_instances.py +0 -202
- runbooks/aws/ec2_ebs_snapshots_delete.py +0 -186
- runbooks/aws/ec2_run_instances.py +0 -213
- runbooks/aws/ec2_start_stop_instances.py +0 -212
- runbooks/aws/ec2_terminate_instances.py +0 -143
- runbooks/aws/ec2_unused_eips.py +0 -196
- runbooks/aws/ec2_unused_volumes.py +0 -188
- runbooks/aws/s3_create_bucket.py +0 -142
- runbooks/aws/s3_list_buckets.py +0 -152
- runbooks/aws/s3_list_objects.py +0 -156
- runbooks/aws/s3_object_operations.py +0 -183
- runbooks/aws/tagging_lambda_handler.py +0 -183
- runbooks/inventory/FAILED_SCRIPTS_TROUBLESHOOTING.md +0 -619
- runbooks/inventory/PASSED_SCRIPTS_GUIDE.md +0 -738
- runbooks/inventory/aws_organization.png +0 -0
- runbooks/inventory/cfn_move_stack_instances.py +0 -1526
- runbooks/inventory/delete_s3_buckets_objects.py +0 -169
- runbooks/inventory/lockdown_cfn_stackset_role.py +0 -224
- runbooks/inventory/update_aws_actions.py +0 -173
- runbooks/inventory/update_cfn_stacksets.py +0 -1215
- runbooks/inventory/update_cloudwatch_logs_retention_policy.py +0 -294
- runbooks/inventory/update_iam_roles_cross_accounts.py +0 -478
- runbooks/inventory/update_s3_public_access_block.py +0 -539
- runbooks/organizations/__init__.py +0 -12
- runbooks/organizations/manager.py +0 -374
- runbooks-0.7.0.dist-info/METADATA +0 -375
- /runbooks/inventory/{tests → Tests}/common_test_data.py +0 -0
- /runbooks/inventory/{tests → Tests}/common_test_functions.py +0 -0
- /runbooks/inventory/{tests → Tests}/script_test_data.py +0 -0
- /runbooks/inventory/{tests → Tests}/setup.py +0 -0
- /runbooks/inventory/{tests → Tests}/src.py +0 -0
- /runbooks/inventory/{tests/test_inventory_modules.py → Tests/test_Inventory_Modules.py} +0 -0
- /runbooks/inventory/{tests → Tests}/test_cfn_describe_stacks.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_ec2_describe_instances.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_lambda_list_functions.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_moto_integration_example.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_org_list_accounts.py +0 -0
- /runbooks/inventory/{Inventory_Modules.py → inventory_modules.py} +0 -0
- /runbooks/{aws → operate}/tags.json +0 -0
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/WHEEL +0 -0
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/licenses/LICENSE +0 -0
runbooks/__init__.py
CHANGED
@@ -1,13 +1,62 @@
|
|
1
1
|
"""
|
2
|
-
CloudOps Runbooks - Enterprise
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
-
|
2
|
+
CloudOps Runbooks - Enterprise AWS Automation & Cloud Foundations Toolkit
|
3
|
+
|
4
|
+
A comprehensive enterprise-grade automation platform for AWS cloud operations,
|
5
|
+
designed for CloudOps, DevOps, and SRE teams managing multi-account environments.
|
6
|
+
|
7
|
+
## Core Capabilities
|
8
|
+
|
9
|
+
### 🔍 Discovery & Assessment
|
10
|
+
- **Cloud Foundations Assessment Tool (CFAT)**: Automated AWS environment discovery
|
11
|
+
and best practices assessment with actionable remediation guidance
|
12
|
+
- **Multi-Account Inventory**: Comprehensive resource discovery across AWS Organizations
|
13
|
+
- **Security Baseline Assessment**: Automated security posture evaluation
|
14
|
+
- **Cost & Financial Operations**: Resource utilization and cost optimization analysis
|
15
|
+
|
16
|
+
### ⚙️ Operations & Automation
|
17
|
+
- **AWS Resource Operations**: Enterprise-grade EC2, S3, DynamoDB management
|
18
|
+
- **Organization Management**: AWS Organizations structure and account automation
|
19
|
+
- **Identity & Access Management**: Cross-account IAM role and policy management
|
20
|
+
- **Infrastructure Automation**: CloudFormation, networking, and compliance operations
|
21
|
+
|
22
|
+
### 🏛️ Enterprise Features
|
23
|
+
- **Multi-Deployment Support**: CLI, Docker, AWS Lambda, Kubernetes ready
|
24
|
+
- **Environment Configuration**: Comprehensive environment variable support
|
25
|
+
- **Monitoring & Notifications**: SNS integration and operational awareness
|
26
|
+
- **KISS Architecture**: Simple, maintainable, no-legacy-complexity design
|
27
|
+
|
28
|
+
## Documentation
|
29
|
+
|
30
|
+
For comprehensive documentation, examples, and best practices:
|
31
|
+
https://cloudops.oceansoft.io/cloud-foundation/cfat-assessment-tool.html
|
32
|
+
|
33
|
+
## Quick Start
|
34
|
+
|
35
|
+
```python
|
36
|
+
# Assessment and Discovery
|
37
|
+
from runbooks.cfat import AssessmentRunner
|
38
|
+
from runbooks.inventory import InventoryCollector
|
39
|
+
from runbooks.security import SecurityBaselineTester
|
40
|
+
|
41
|
+
# Operations and Automation
|
42
|
+
from runbooks.operate import EC2Operations, S3Operations, DynamoDBOperations
|
43
|
+
|
44
|
+
# Assessment
|
45
|
+
runner = AssessmentRunner()
|
46
|
+
results = runner.run_assessment()
|
47
|
+
|
48
|
+
# Resource Operations
|
49
|
+
ec2_ops = EC2Operations()
|
50
|
+
s3_ops = S3Operations()
|
51
|
+
```
|
52
|
+
|
53
|
+
## Target Audience
|
54
|
+
|
55
|
+
- **CloudOps Engineers**: Multi-account AWS environment management
|
56
|
+
- **DevOps Teams**: Infrastructure automation and CI/CD integration
|
57
|
+
- **Site Reliability Engineers (SRE)**: Operational excellence and monitoring
|
58
|
+
- **Security Engineers**: Compliance assessment and remediation
|
59
|
+
- **FinOps Practitioners**: Cost optimization and resource governance
|
11
60
|
"""
|
12
61
|
|
13
62
|
from importlib.metadata import PackageNotFoundError
|
@@ -18,58 +67,59 @@ try:
|
|
18
67
|
__version__ = _pkg_version("runbooks")
|
19
68
|
except Exception:
|
20
69
|
# Fallback if metadata is unavailable during editable installs
|
21
|
-
__version__ = "0.6
|
70
|
+
__version__ = "0.7.6"
|
22
71
|
|
23
72
|
# Core module exports
|
24
73
|
from runbooks.config import RunbooksConfig, load_config, save_config
|
25
74
|
from runbooks.utils import ensure_directory, setup_logging, validate_aws_profile
|
26
75
|
|
27
|
-
#
|
76
|
+
# Enterprise module exports with graceful degradation
|
28
77
|
try:
|
78
|
+
# Assessment and Discovery
|
29
79
|
from runbooks.cfat.runner import AssessmentRunner
|
80
|
+
from runbooks.inventory.collectors.aws_management import OrganizationsManager
|
30
81
|
from runbooks.inventory.core.collector import InventoryCollector
|
31
|
-
from runbooks.
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
82
|
+
from runbooks.operate.cloudformation_operations import CloudFormationOperations
|
83
|
+
from runbooks.operate.cloudwatch_operations import CloudWatchOperations
|
84
|
+
from runbooks.operate.dynamodb_operations import DynamoDBOperations
|
85
|
+
|
86
|
+
# Operations and Automation
|
87
|
+
from runbooks.operate.ec2_operations import EC2Operations
|
88
|
+
from runbooks.operate.iam_operations import IAMOperations
|
89
|
+
from runbooks.operate.s3_operations import S3Operations
|
90
|
+
from runbooks.security.security_baseline_tester import SecurityBaselineTester
|
91
|
+
|
92
|
+
_enterprise_exports = [
|
39
93
|
"AssessmentRunner",
|
40
94
|
"InventoryCollector",
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
95
|
+
"OrganizationsManager",
|
96
|
+
"SecurityBaselineTester",
|
97
|
+
"EC2Operations",
|
98
|
+
"S3Operations",
|
99
|
+
"DynamoDBOperations",
|
100
|
+
"CloudFormationOperations",
|
101
|
+
"IAMOperations",
|
102
|
+
"CloudWatchOperations",
|
44
103
|
]
|
45
104
|
except ImportError as e:
|
46
|
-
# Graceful degradation if dependencies aren't available
|
47
|
-
|
48
|
-
"__version__",
|
49
|
-
"setup_logging",
|
50
|
-
"load_config",
|
51
|
-
"save_config",
|
52
|
-
"RunbooksConfig",
|
53
|
-
"ensure_directory",
|
54
|
-
"validate_aws_profile",
|
55
|
-
]
|
105
|
+
# Graceful degradation if enterprise dependencies aren't available
|
106
|
+
_enterprise_exports = []
|
56
107
|
|
57
108
|
# FinOps exports
|
58
109
|
from runbooks.finops import get_cost_data, get_trend, run_dashboard
|
59
110
|
|
111
|
+
# Consolidated exports for enterprise CloudOps platform
|
60
112
|
__all__ = [
|
113
|
+
# Core utilities
|
61
114
|
"__version__",
|
62
115
|
"setup_logging",
|
63
116
|
"load_config",
|
64
117
|
"save_config",
|
65
118
|
"RunbooksConfig",
|
66
|
-
"AssessmentRunner",
|
67
|
-
"InventoryCollector",
|
68
|
-
"OUManager",
|
69
119
|
"ensure_directory",
|
70
120
|
"validate_aws_profile",
|
71
|
-
# FinOps
|
121
|
+
# FinOps capabilities
|
72
122
|
"run_dashboard",
|
73
123
|
"get_cost_data",
|
74
124
|
"get_trend",
|
75
|
-
]
|
125
|
+
] + _enterprise_exports
|
runbooks/cfat/README.md
CHANGED
@@ -1,49 +1,300 @@
|
|
1
|
-
# Cloud
|
2
|
-
|
3
|
-
CFAT is an open-source solution designed to provide automated discovery of
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
1
|
+
# Cloud Foundations Assessment Tool (CFAT)
|
2
|
+
|
3
|
+
**CFAT** is an enterprise-grade, open-source solution designed to provide automated discovery and assessment of AWS environments and multi-account architectures. **Fully integrated with the CloudOps Runbooks CLI**, CFAT offers comprehensive evaluation against Cloud Foundations best practices with advanced enterprise features.
|
4
|
+
|
5
|
+
CFAT reviews your environment, checking for common configurations and security best practices across your AWS Organization. The tool produces actionable findings with detailed remediation guidance, exportable to popular project management platforms.
|
6
|
+
|
7
|
+
**Key Enterprise Features:**
|
8
|
+
- 🚀 **Integrated CLI Experience**: Seamlessly integrated with `runbooks cfat` commands
|
9
|
+
- 📊 **Multi-Format Reporting**: HTML, CSV, JSON, Markdown, and interactive web reports
|
10
|
+
- ⚡ **Parallel Execution**: Configurable worker pools for fast assessment
|
11
|
+
- 🎯 **Compliance Frameworks**: SOC2, PCI-DSS, HIPAA alignment support
|
12
|
+
- 🔗 **Project Management Integration**: Direct export to Jira, Asana, ServiceNow
|
13
|
+
- 🌐 **Interactive Web Reports**: Built-in web server for live report viewing
|
14
|
+
- 🎚️ **Advanced Configuration**: Category filtering, severity thresholds, check customization
|
15
|
+
|
16
|
+
>**Note:** CFAT operates with `READONLY` permissions to ensure security and compliance. The tool does not make any changes to your AWS environment - all outputs are generated locally for your analysis.
|
17
|
+
|
18
|
+
## 🚀 Quick Start
|
19
|
+
|
20
|
+
> **⚡ Enterprise Installation**: `pip install runbooks && runbooks cfat assess`
|
21
|
+
|
22
|
+
### **Option 1: Install via PyPI (Recommended)**
|
23
|
+
|
24
|
+
1. **Install the Package**:
|
25
|
+
```bash
|
26
|
+
pip install runbooks
|
27
|
+
```
|
28
|
+
|
29
|
+
2. **Run Cloud Foundations Assessment**:
|
30
|
+
```bash
|
31
|
+
# Basic comprehensive assessment
|
32
|
+
runbooks cfat assess
|
33
|
+
|
34
|
+
# Assessment with HTML report
|
35
|
+
runbooks cfat assess --output html --output-file cfat_report.html
|
36
|
+
|
37
|
+
# Target specific categories with critical severity
|
38
|
+
runbooks cfat assess --categories iam,cloudtrail --severity CRITICAL
|
39
|
+
```
|
40
|
+
|
41
|
+
3. **Advanced Usage Examples**:
|
42
|
+
```bash
|
43
|
+
# Parallel execution with multiple output formats
|
44
|
+
runbooks cfat assess --parallel --max-workers 8 --output all
|
45
|
+
|
46
|
+
# Compliance framework assessment
|
47
|
+
runbooks cfat assess --compliance-framework SOC2 --output json
|
48
|
+
|
49
|
+
# Export to project management tools
|
50
|
+
runbooks cfat assess --export-jira findings.csv --export-asana tasks.csv
|
51
|
+
|
52
|
+
# Interactive web report
|
53
|
+
runbooks cfat assess --serve-web --web-port 8080
|
54
|
+
```
|
55
|
+
|
56
|
+
---
|
57
|
+
|
58
|
+
### **Option 2: Development Installation**
|
59
|
+
|
60
|
+
1. **Clone and Setup**:
|
61
|
+
```bash
|
62
|
+
git clone https://github.com/1xOps/CloudOps-Runbooks.git
|
63
|
+
cd CloudOps-Runbooks
|
64
|
+
|
65
|
+
# Install with UV (Rust-based package manager)
|
66
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
67
|
+
uv sync --all-extras
|
68
|
+
```
|
69
|
+
|
70
|
+
2. **Run Assessment**:
|
71
|
+
```bash
|
72
|
+
uv run python -m runbooks cfat assess --profile production
|
73
|
+
```
|
74
|
+
|
75
|
+
---
|
76
|
+
|
77
|
+
### **Option 3: AWS CloudShell (Zero Setup)**
|
78
|
+
|
79
|
+
1. **Open AWS CloudShell** in your Management Account
|
80
|
+
2. **Install and Run**:
|
81
|
+
```bash
|
82
|
+
pip install runbooks
|
83
|
+
runbooks cfat assess --output html
|
84
|
+
```
|
85
|
+
3. **Download Results** using CloudShell's download feature
|
86
|
+
|
87
|
+
---
|
88
|
+
|
89
|
+
### **CLI Command Reference**
|
90
|
+
|
91
|
+
```bash
|
92
|
+
# Main CFAT commands
|
93
|
+
runbooks cfat --help # Show CFAT help
|
94
|
+
runbooks cfat assess # Run comprehensive assessment
|
95
|
+
runbooks cfat assess --output all # Generate all report formats
|
96
|
+
runbooks cfat assess --categories iam,vpc # Assess specific categories
|
97
|
+
runbooks cfat assess --severity CRITICAL # Show only critical findings
|
98
|
+
|
99
|
+
# Advanced features
|
100
|
+
runbooks cfat assess --parallel --max-workers 10 # Fast parallel execution
|
101
|
+
runbooks cfat assess --compliance-framework SOC2 # Compliance alignment
|
102
|
+
runbooks cfat assess --export-jira jira.csv # Export to Jira
|
103
|
+
runbooks cfat assess --serve-web --web-port 8080 # Interactive web report
|
104
|
+
```
|
105
|
+
|
106
|
+
### **Prerequisites**
|
107
|
+
|
108
|
+
For least privilege readonly access, leverage these IAM Managed Policies:
|
109
|
+
- `arn:aws:iam::aws:policy/ReadOnlyAccess`
|
110
|
+
- `arn:aws:iam::aws:policy/AWSCloudShellFullAccess` (if using CloudShell)
|
111
|
+
|
112
|
+
**Supported Authentication Methods:**
|
113
|
+
- AWS Profiles (recommended)
|
114
|
+
- IAM Roles
|
115
|
+
- AWS SSO
|
116
|
+
- Environment Variables
|
117
|
+
- Instance Profiles
|
118
|
+
- AWS CloudShell (automatic)
|
119
|
+
|
120
|
+
## 📊 Generated Reports and Artifacts
|
121
|
+
|
122
|
+
CFAT generates comprehensive, multi-format reports designed for different audiences and use cases. The modern integrated CLI provides multiple output options for maximum flexibility.
|
123
|
+
|
124
|
+
### **Output Formats**
|
125
|
+
|
126
|
+
1. **📋 HTML Reports** (Default)
|
127
|
+
- Interactive, styled reports with charts and filtering
|
128
|
+
- Remediation links directly to AWS documentation
|
129
|
+
- Executive summary with compliance scoring
|
130
|
+
- Technical details with step-by-step guidance
|
131
|
+
```bash
|
132
|
+
runbooks cfat assess --output html --output-file assessment_report.html
|
133
|
+
```
|
134
|
+
|
135
|
+
2. **📈 JSON Output** (Programmatic Integration)
|
136
|
+
- Structured data for CI/CD pipelines
|
137
|
+
- API integration and automation workflows
|
138
|
+
- Custom dashboard development
|
139
|
+
```bash
|
140
|
+
runbooks cfat assess --output json --output-file findings.json
|
141
|
+
```
|
142
|
+
|
143
|
+
3. **📊 CSV Export** (Data Analysis)
|
144
|
+
- Spreadsheet-compatible format
|
145
|
+
- Sorting and filtering capabilities
|
146
|
+
- Project tracking and progress monitoring
|
147
|
+
```bash
|
148
|
+
runbooks cfat assess --output csv --output-file assessment_data.csv
|
149
|
+
```
|
150
|
+
|
151
|
+
4. **📝 Markdown Reports** (Documentation)
|
152
|
+
- Documentation-friendly format
|
153
|
+
- GitHub/GitLab integration
|
154
|
+
- Wiki and knowledge base publishing
|
155
|
+
```bash
|
156
|
+
runbooks cfat assess --output markdown --output-file assessment.md
|
157
|
+
```
|
158
|
+
|
159
|
+
5. **🌐 Interactive Web Reports**
|
160
|
+
- Live web server with real-time filtering
|
161
|
+
- Collaborative review and discussion
|
162
|
+
- Professional presentation format
|
163
|
+
```bash
|
164
|
+
runbooks cfat assess --serve-web --web-port 8080
|
165
|
+
```
|
166
|
+
|
167
|
+
### **Project Management Integration**
|
168
|
+
|
169
|
+
**Direct Export to Popular Platforms:**
|
170
|
+
|
171
|
+
1. **Jira Integration**
|
172
|
+
```bash
|
173
|
+
runbooks cfat assess --export-jira jira_backlog.csv
|
174
|
+
```
|
175
|
+
- Pre-formatted for Jira import
|
176
|
+
- Issue types and priorities mapped
|
177
|
+
- Sprint planning ready
|
178
|
+
|
179
|
+
2. **Asana Integration**
|
180
|
+
```bash
|
181
|
+
runbooks cfat assess --export-asana asana_tasks.csv
|
182
|
+
```
|
183
|
+
- Task hierarchy and dependencies
|
184
|
+
- Team assignment capabilities
|
185
|
+
- Progress tracking features
|
186
|
+
|
187
|
+
3. **ServiceNow Integration**
|
188
|
+
```bash
|
189
|
+
runbooks cfat assess --export-servicenow snow_incidents.json
|
190
|
+
```
|
191
|
+
- Enterprise ITSM compatibility
|
192
|
+
- Incident and change management
|
193
|
+
- SLA and priority mapping
|
194
|
+
|
195
|
+
### **All-in-One Export**
|
196
|
+
|
197
|
+
Generate all formats simultaneously:
|
198
|
+
```bash
|
199
|
+
runbooks cfat assess --output all
|
200
|
+
```
|
201
|
+
|
202
|
+
This creates:
|
203
|
+
- `cfat_report_TIMESTAMP.html` - Interactive HTML report
|
204
|
+
- `cfat_report_TIMESTAMP.json` - Structured data export
|
205
|
+
- `cfat_report_TIMESTAMP.csv` - Spreadsheet-compatible data
|
206
|
+
- `cfat_report_TIMESTAMP.md` - Documentation format
|
207
|
+
|
208
|
+
## 🎯 Assessment Capabilities
|
209
|
+
|
210
|
+
### **Multi-Account Architecture Discovery**
|
211
|
+
- **Organization Mapping**: Automatic discovery of AWS Organizations structure
|
212
|
+
- **Account Inventory**: Comprehensive multi-account resource discovery
|
213
|
+
- **Cross-Account Analysis**: Consolidated findings across organizational units
|
214
|
+
- **Resource Relationships**: Dependency mapping and service interconnections
|
215
|
+
|
216
|
+
### **Security & Compliance Assessment**
|
217
|
+
- **Cloud Foundations Alignment**: AWS best practices validation
|
218
|
+
- **Security Posture Evaluation**: IAM, network, data protection analysis
|
219
|
+
- **Compliance Framework Support**: SOC2, PCI-DSS, HIPAA alignment
|
220
|
+
- **Risk Scoring**: Weighted risk assessment with remediation prioritization
|
221
|
+
|
222
|
+
### **Operational Excellence**
|
223
|
+
- **Configuration Drift Detection**: Identification of non-compliant configurations
|
224
|
+
- **Performance Optimization**: Resource utilization and cost efficiency analysis
|
225
|
+
- **Automation Readiness**: Infrastructure as Code (IaC) compatibility assessment
|
226
|
+
- **Monitoring Coverage**: CloudTrail, CloudWatch, and logging evaluation
|
227
|
+
|
228
|
+
### **Enterprise Integration**
|
229
|
+
- **CI/CD Pipeline Ready**: JSON output for automated workflows
|
230
|
+
- **Project Management Export**: Native integration with Jira, Asana, ServiceNow
|
231
|
+
- **Dashboard Compatible**: Structured data for custom visualization
|
232
|
+
- **API Integration**: Programmatic access for enterprise tooling
|
233
|
+
|
234
|
+
### **Modern Technology Stack**
|
235
|
+
- **Python & AWS SDK**: Built with latest boto3 and enterprise Python patterns
|
236
|
+
- **Parallel Processing**: Configurable worker pools for optimal performance
|
237
|
+
- **Pydantic Models**: Type-safe data validation and serialization
|
238
|
+
- **UV Package Management**: Rust-based dependency management for speed
|
239
|
+
- **Ruff Formatting**: Modern code quality and formatting standards
|
240
|
+
|
241
|
+
## 🔒 Security Considerations
|
242
|
+
|
243
|
+
### **Least Privilege Principle**
|
244
|
+
- **Read-Only Access**: CFAT operates exclusively with `ReadOnlyAccess` permissions
|
245
|
+
- **No Modifications**: Zero-write operations ensure your environment remains unchanged
|
246
|
+
- **Audit Compliance**: All activities are logged through standard AWS CloudTrail
|
247
|
+
- **Local Data Processing**: Assessment data is processed locally without external transmission
|
248
|
+
|
249
|
+
### **Authentication & Authorization**
|
250
|
+
- **Multiple Auth Methods**: Support for AWS profiles, IAM roles, SSO, CloudShell
|
251
|
+
- **MFA Compatible**: Full support for multi-factor authentication requirements
|
252
|
+
- **Cross-Account Roles**: Secure assessment across multiple AWS accounts
|
253
|
+
- **Session Management**: Automatic credential refresh and secure session handling
|
254
|
+
|
255
|
+
### **Data Protection**
|
256
|
+
- **Local Storage Only**: All reports generated and stored locally
|
257
|
+
- **No External Dependencies**: Assessment runs entirely within your AWS environment
|
258
|
+
- **Encryption in Transit**: All AWS API calls use HTTPS/TLS encryption
|
259
|
+
- **Temporary Credentials**: Support for temporary credential mechanisms
|
260
|
+
|
261
|
+
### **Enterprise Security Features**
|
262
|
+
- **Access Logging**: Comprehensive logging of all assessment activities
|
263
|
+
- **Configuration Validation**: Security configuration assessment without exposure
|
264
|
+
- **Compliance Reporting**: Security findings aligned with industry frameworks
|
265
|
+
- **Audit Trail**: Complete audit trail for security and compliance teams
|
266
|
+
|
267
|
+
### **Required IAM Permissions**
|
268
|
+
|
269
|
+
**Minimum Required Policy** (Read-Only):
|
270
|
+
```json
|
271
|
+
{
|
272
|
+
"Version": "2012-10-17",
|
273
|
+
"Statement": [
|
274
|
+
{
|
275
|
+
"Effect": "Allow",
|
276
|
+
"Action": [
|
277
|
+
"iam:Get*",
|
278
|
+
"iam:List*",
|
279
|
+
"iam:GenerateCredentialReport",
|
280
|
+
"organizations:List*",
|
281
|
+
"organizations:Describe*",
|
282
|
+
"cloudtrail:Get*",
|
283
|
+
"cloudtrail:Describe*",
|
284
|
+
"config:Get*",
|
285
|
+
"config:Describe*",
|
286
|
+
"ec2:Describe*",
|
287
|
+
"s3:GetBucket*",
|
288
|
+
"s3:ListAllMyBuckets",
|
289
|
+
"cloudwatch:Describe*",
|
290
|
+
"cloudwatch:Get*"
|
291
|
+
],
|
292
|
+
"Resource": "*"
|
293
|
+
}
|
294
|
+
]
|
295
|
+
}
|
296
|
+
```
|
297
|
+
|
298
|
+
**Recommended Managed Policies:**
|
299
|
+
- `arn:aws:iam::aws:policy/ReadOnlyAccess`
|
300
|
+
- `arn:aws:iam::aws:policy/AWSCloudShellFullAccess` (if using CloudShell)
|
runbooks/cfat/__init__.py
CHANGED
@@ -34,7 +34,7 @@ Example:
|
|
34
34
|
print(f"Critical Issues: {report.summary.critical_issues}")
|
35
35
|
```
|
36
36
|
|
37
|
-
Version: 0.
|
37
|
+
Version: 0.7.6 (Latest with enhanced CLI integration, rust tooling, and modern dependency stack)
|
38
38
|
"""
|
39
39
|
|
40
40
|
# Core assessment engine
|
@@ -53,7 +53,7 @@ from runbooks.cfat.models import (
|
|
53
53
|
from runbooks.cfat.runner import AssessmentRunner
|
54
54
|
|
55
55
|
# Version info
|
56
|
-
__version__ = "0.
|
56
|
+
__version__ = "0.7.6"
|
57
57
|
__author__ = "CloudOps Runbooks Team"
|
58
58
|
|
59
59
|
# Public API exports
|
runbooks/finops/__init__.py
CHANGED
@@ -12,7 +12,7 @@ This module provides terminal-based AWS cost monitoring with features including:
|
|
12
12
|
Integrated as a submodule of CloudOps Runbooks for enterprise FinOps automation.
|
13
13
|
"""
|
14
14
|
|
15
|
-
__version__ = "0.7.
|
15
|
+
__version__ = "0.7.6"
|
16
16
|
|
17
17
|
# Core components
|
18
18
|
# AWS client utilities
|
runbooks/finops/cli.py
CHANGED
@@ -13,8 +13,16 @@ Categories:
|
|
13
13
|
- aws_management: CloudFormation, Organizations, Control Tower, SSM
|
14
14
|
"""
|
15
15
|
|
16
|
+
from runbooks.inventory.collectors.aws_compute import ComputeResourceCollector
|
17
|
+
from runbooks.inventory.collectors.aws_management import ManagementResourceCollector, OrganizationsManager
|
18
|
+
from runbooks.inventory.collectors.aws_networking import SubnetCollector, VPCCollector
|
16
19
|
from runbooks.inventory.collectors.base import BaseResourceCollector
|
17
20
|
|
18
21
|
__all__ = [
|
19
22
|
"BaseResourceCollector",
|
23
|
+
"ComputeResourceCollector",
|
24
|
+
"VPCCollector",
|
25
|
+
"SubnetCollector",
|
26
|
+
"ManagementResourceCollector",
|
27
|
+
"OrganizationsManager",
|
20
28
|
]
|