jason-victor1/aws-cloud-security-guardrails

GitHub: jason-victor1/aws-cloud-security-guardrails

一套以只读评估和验证优先为核心的 AWS 云安全护栏工具包,用于安全态势审查、发现结果标准化及修复报告生成。

Stars: 0 | Forks: 0

# AWS 云安全护栏 验证优先的 AWS 安全评估工具包,用于只读安全态势审查、发现结果标准化、修复报告、执行摘要以及 CI 强制的护栏验证。 ## 项目状态 | 领域 | 状态 | |---|---| | 达到作品集标准的 V1 | 已完成 | | 模拟演示工作流 | 已完成 | | 只读实验室验证 | 已完成 | | 本地评估编排器 | 已完成 | | 模拟编排器模式 | 已完成 | | CI 强制的模拟编排器验证 | 已完成 | | 自动化修复 | V1 不包含 | 本仓库旨在作为一个达到作品集标准的云安全、DevSecOps 和安全自动化项目。它侧重于安全评估、证据处理和可重复的报告,而不是生产环境的修复。 ## 项目功能 AWS 云安全护栏展示了识别和降低常见 AWS 安全风险的实用工作流: - 长期有效的 IAM 访问密钥 - 高风险的公开安全组入站规则 - 公共 S3 暴露路径 - 薄弱或不完整的 CloudTrail 覆盖范围 - 薄弱的 CI/CD 和代码库护栏 - 缺乏用于修复和审计就绪的证据追踪 该项目将评估结果转换为标准化的发现结果、修复待办工件、修复工单 JSON 和执行摘要。 ## 快速开始:模拟模式 模拟模式无需 AWS 凭证或实时 AWS API 调用即可验证下游工作流。 ``` scripts/run-guardrails-assessment.sh \ --mode synthetic \ --output-dir ~/aws-guardrails-lab-evidence/synthetic-orchestrator-test ``` 模拟模式使用来自 `samples/raw/` 的示例数据,将生成的工件写入到仓库之外,验证 JSON 输出,运行标准化并生成报告。 ## 实时实验室模式 实时模式专为受控的只读 AWS 实验室验证而设计。 ``` scripts/run-guardrails-assessment.sh \ --profile guardrails-readonly \ --output-dir ~/aws-guardrails-lab-evidence/orchestrated-run \ --region us-east-1 ``` 实时模式需要显式的 AWS profile,并将原始输出、标准化的发现结果和生成的报告写入到仓库之外。 ## 功能特性 | 功能 | 实现 | |---|---| | IAM 访问密钥时效审查 | `automation/iam-key-age-check.py` | | 安全组暴露审查 | `automation/security-group-risk-check.py` | | 公共 S3 安全态势审查 | `automation/public-s3-check.py` | | CloudTrail 覆盖范围审查 | `automation/cloudtrail-coverage-check.py` | | 发现结果标准化 | `automation/finding-normalizer.py` | | 修复待办事项生成 | `automation/remediation-ticket-generator.py` | | 执行摘要生成 | `automation/executive-summary-generator.py` | | 完整的本地编排 | `scripts/run-guardrails-assessment.sh` | | 模拟数据验证 | `samples/raw/` 以及模拟编排器模式 | | Terraform 护栏基线 | `terraform/` | | CI/CD 验证 | `.github/workflows/` | | 脱敏后的证据笔记 | `evidence/` | ## 验证与 CI 控制 主分支受必需的 GitHub Actions 检查保护: | 检查 | 目的 | |---|---| | Terraform fmt、validate 和 IaC 扫描 | 验证 Terraform 并使用 Checkov 扫描 IaC | | Gitleaks 密钥扫描 | 检测已提交的密钥 | | Python 自动化语法检查 | 编译自动化脚本 | | 示例 JSON 语法检查 | 验证示例 JSON 数据和生成的 JSON | | 模拟演示重新生成偏差检查 | 确认演示输出可以一致地重新生成 | | 本地工作流处理器测试 | 运行本地单元测试 | | 模拟编排器验证 | 在 CI 中运行完整的模拟编排器流水线 | ## 安全边界 本项目专注于评估。V1 版本不执行自动化修复。 请勿提交: - AWS 凭证 - AWS 账户 ID - 真实的 ARN - 来自真实账户的 IAM 名称 - 来自真实账户的 bucket 名称 - 安全组 ID - VPC 或子网 ID - CloudTrail ARN - 原始的实时实验室 JSON 输出 - 标准化的实时实验室发现结果 - 生成的实时实验室报告 - Terraform 状态 - AWS CLI 凭证文件 - `.env` 文件 ## 证据与文档 | 资源 | 目的 | |---|---| | [`docs/iam/read-only-assessment-policy.md`](docs/iam/read-only-assessment-policy.md) | 只读 IAM 策略指南 | | [`docs/iam/read-only-assessment-policy.json`](docs/iam/read-only-assessment-policy.json) | 只读评估策略示例 | | [`docs/workflows/live-aws-lab-validation.md`](docs/workflows/live-aws-lab-validation.md) | 实时实验室验证工作流 | | [`evidence/live-lab-validation/`](evidence/live-lab-validation/) | 脱敏后的实时实验室验证笔记 | | [`evidence/live-lab-reporting/`](evidence/live-lab-reporting/) | 脱敏后的实时实验室报告笔记 | | [`docs/runbooks/credential-exposure-response.md`](docs/runbooks/credential-exposure-response.md) | 凭证泄露响应操作手册 | ## 目标用例 本项目对应于实际的云安全和 DevSecOps 工作: - AWS 云安全加固 - IAM 和凭证风险审查 - 公共暴露面缩减 - 云日志记录和审计就绪性验证 - CI/CD 安全护栏 - 安全自动化报告 - 承包商/顾问证据包 ## 仓库结构 ``` aws-cloud-security-guardrails/ .github/workflows/ automation/ diagrams/ docs/ evidence/ samples/ scripts/ terraform/ tests/ README.md ``` ## 自动化 本项目包含仅用于检测的自动化脚本。 | 脚本 | 目的 | |---|---| | [automation/iam-key-age-check.py](automation/iam-key-age-check.py) | 审查 IAM 用户访问密钥的使用时限,并标记长期有效的密钥,且不会打印出秘密访问密钥的值。 | | [automation/security-group-risk-check.py](automation/security-group-risk-check.py) | 审查 AWS 安全组入站规则,并标记有风险的公共暴露模式,例如公共 SSH、RDP、数据库、Kubernetes API、Redis 以及过宽的端口范围。 | | [automation/public-s3-check.py](automation/public-s3-check.py) | 审查 S3 bucket 的公共暴露态势,包括账户级别和 bucket 级别的公共访问阻止 (Public Access Block)、公共 bucket 策略状态以及公共 ACL 授权。 | | [automation/cloudtrail-coverage-check.py](automation/cloudtrail-coverage-check.py) | 审查 AWS CloudTrail 日志记录覆盖范围,包括多区域状态、日志记录状态、日志文件验证、KMS 元数据、管理事件选择器以及近期事件历史记录查询的可用性。 | | [automation/finding-normalizer.py](automation/finding-normalizer.py) | 将来自自动化脚本的 JSON 输出标准化为一致的发现结果 schema,用于证据收集、报告、修复待办事项创建以及未来的工单生成。 | | [automation/remediation-ticket-generator.py](automation/remediation-ticket-generator.py) | 将标准化的发现结果转换为结构化的 Markdown 或 JSON 修复工单,用于待办事项创建和审计证据工作流。 | | [automation/executive-summary-generator.py](automation/executive-summary-generator.py) | 从标准化的发现结果生成客户风格的 Markdown 执行摘要,包括严重程度计数、主要风险、受影响的资源类型、修复主题以及建议的后续行动。 | ## 本地测试 本地工作流处理器测试可在 [tests/](tests/) 下找到。 运行: ``` python3 -m unittest discover -s tests -p "test_*.py" ``` ## 只读评估策略 提供了一个只读 IAM 评估策略示例,用于在无需管理员权限的情况下运行 AWS 安全态势审查脚本: - [docs/iam/read-only-assessment-policy.md](docs/iam/read-only-assessment-policy.md) - [docs/iam/read-only-assessment-policy.json](docs/iam/read-only-assessment-policy.json) 该策略旨在用于只读脚本的实验室和作品集验证。它不授予创建、修改、删除、部署或修复 AWS 资源的权限。 ## 操作手册 本项目包含将护栏检测与响应工作流相连接的运维操作手册。 | 操作手册 | 目的 | |---|---| | [docs/runbooks/credential-exposure-response.md](docs/runbooks/credential-exposure-response.md) | 定义针对疑似硬编码的机密、API 密钥、AWS 凭证、GitHub token 以及相关凭证泄露事件的响应工作流。 | ## 模拟演示工作流 本仓库包含模拟示例数据,演示了在无需 AWS 凭证或真实账户数据的情况下的端到端本地工作流。 ``` samples/raw/ → automation/finding-normalizer.py → samples/normalized/normalized-findings.json → automation/remediation-ticket-generator.py → samples/reports/remediation-backlog.md → automation/executive-summary-generator.py → samples/reports/executive-summary.md ``` 完整的模拟演示工作流可以通过以下命令重新生成: ``` ./scripts/regenerate-demo-outputs.sh ``` ## 本地评估编排器 提供了一个本地编排器,用于通过单个命令运行完整的 AWS 护栏评估流水线: - [scripts/run-guardrails-assessment.sh](scripts/run-guardrails-assessment.sh) 示例: ``` scripts/run-guardrails-assessment.sh \ --profile guardrails-readonly \ --output-dir ~/aws-guardrails-lab-evidence/orchestrated-run \ --region us-east-1 ``` ### 模拟编排器模式 本地评估编排器还支持模拟模式,用于在无需 AWS 凭证或 AWS API 调用的情况下验证下游工作流。 示例: ``` scripts/run-guardrails-assessment.sh \ --mode synthetic \ --output-dir ~/aws-guardrails-lab-evidence/synthetic-orchestrator-test ``` 模拟模式使用 `samples/raw/` 下的现有示例数据,将生成的工件写入到仓库之外,运行标准化和报告,并输出脱敏后的工作流级别摘要。 实时模式仍然可用于受控的只读 AWS 实验室验证: ``` scripts/run-guardrails-assessment.sh \ --profile guardrails-readonly \ --output-dir ~/aws-guardrails-lab-evidence/orchestrated-run \ --region us-east-1 ``` ## 项目阶段 ### 第 0 阶段:文档框架 创建项目章程、架构、威胁模型、控制矩阵、评估方法论和修复模板。 ### 第 1 阶段:Terraform 安全基线 为 CloudTrail、GuardDuty、Security Hub、AWS Config、S3 公共访问阻止、IAM 最小权限示例和预算/异常警报构建可重用的 AWS 护栏模块。 ### 第 2 阶段:CI/CD 安全检查 添加用于 Terraform 验证、IaC 扫描和机密扫描的 GitHub Actions 工作流。 ### 第 3 阶段:Python 评估脚本 为 IAM 密钥时效、公共 S3 暴露、有风险的安全组和标准化发现结果创建小型审查脚本。 ### 第 4 阶段:证据与报告 生成示例发现结果、修复待办事项、执行摘要和证据核对清单。 ## 作品集价值 本项目展示了从云安全发现结果推进到自动化护栏、修复证据和业务可读报告的能力。 ## 实时 AWS 实验室验证 提供了一个实时实验室验证指南,用于针对受控的 AWS 实验室账户安全地运行只读 AWS 安全态势审查脚本: - [`docs/workflows/live-aws-lab-validation.md`](docs/workflows/live-aws-lab-validation.md) 该指南涵盖了运行前的安全检查、只读 profile 验证、脚本执行顺序、原始输出处理、脱敏规则、脱敏后的证据以及无变更确认。
标签:AWS, Cutter, DevSecOps, DPI, 上游代理, 只读评估, 合规报告, 安全基线检查, 逆向工具