rafatyazdani/cloud-security-governance
GitHub: rafatyazdani/cloud-security-governance
基于 Terraform 的 AWS 云安全治理工具包,以风险削减为核心目标部署 IAM 防护栏、日志基线和威胁检测,同时自然产出 NIST 800-53 与 ISO 27001 合规映射。
Stars: 0 | Forks: 0
# 云安全治理即代码
[](LICENSE)
[](https://www.terraform.io/)
[](https://registry.terraform.io/providers/hashicorp/aws/latest)
[]()
## “合规优先”安全策略的问题
大多数云治理实施方案都是“合规优先”的——它们实施控制措施仅仅是因为标准框架有规定,而不是因为它们真正理解这些措施能降低什么风险。
本工具包采取了截然相反的方法:**每一项控制措施都有据可依,旨在切断攻击路径**、填补检测盲区,或限制爆炸半径。合规性映射只是这一过程的自然产物,而非最终目的。
## 包含内容
```
cloud-security-governance/
├── modules/
│ ├── iam-guardrails/ # IAM password policy, SCPs, least-privilege roles
│ ├── logging-baseline/ # CloudTrail, AWS Config, VPC Flow Logs
│ └── security-hub/ # Security Hub standards, GuardDuty, alerting
├── environments/
│ └── example/ # Wires all modules together — copy to deploy
├── controls/
│ ├── nist-mapping.md # NIST SP 800-53 Rev 5 control mapping
│ └── iso-mapping.md # ISO/IEC 27001:2022 Annex A mapping
└── README.md
```
## 模块
### IAM 防护栏
**控制措施:** AC-2, AC-3, AC-6, IA-5, IA-8 | A.5.18, A.8.2
- 账户密码策略(最少 14 个字符,90 天轮换,保留 12 次密码历史)
- SCP:拒绝在所有成员账户中使用 root 账户
- SCP:拒绝禁用或删除 CloudTrail(防止入侵后篡改日志)
- SCP:拒绝禁用 S3 公共访问阻止功能(防止配置错误导致数据泄露)
- SCP:拒绝离开 AWS Organization(防止绕过治理管控)
- 遵循最小权限原则的安全只读角色,并在 assume-role 条件中强制要求 MFA
### 日志记录基线
**控制措施:** AU-2, AU-3, AU-6, AU-9, AU-12, SI-4 | A.8.15, A.8.16
- CloudTrail:多区域支持,启用日志文件验证,记录管理事件 + 数据事件
- CloudTrail S3 存储桶:KMS 加密,版本控制,仅限 HTTPS 访问策略,禁止公共访问
- AWS Config:全资源记录器与交付通道
- VPC Flow Logs:将所有流量记录到 CloudWatch,支持自定义保留期
### Security Hub + GuardDuty
**控制措施:** CA-7, IR-4, RA-5, SI-4 | A.8.8, A.8.16
- Security Hub 启用三大标准:CIS、AWS Foundational Security Best Practices、NIST 800-53
- GuardDuty 启用 S3 保护,可选启用 Kubernetes 和恶意软件保护
- EventBridge 规则:将 CRITICAL/HIGH 级别的发现路由到加密的 SNS 主题
- 可随时对接 PagerDuty、Slack 或 SIEM
## 快速开始
### 前置条件
- Terraform >= 1.5
- 具有组织级权限的 AWS 凭证(用于配置 SCP)
- 一个现有的 AWS Organization
### 部署
```
git clone https://github.com/rafatyazdani/cloud-security-governance.git
cd cloud-security-governance/environments/example
# 创建你的 tfvars
cat > terraform.tfvars < B[SCPs\nIAM Guardrails]
A --> C[Member Accounts]
C --> D[CloudTrail\nMulti-region]
C --> E[AWS Config\nAll resources]
C --> F[VPC Flow Logs]
D --> G[S3\nEncrypted logs]
E --> G
C --> H[Security Hub\nCIS + NIST + AWS]
C --> I[GuardDuty\nML threat detection]
H --> J[EventBridge]
I --> J
J --> K[SNS Topic\nCRITICAL/HIGH alerts]
K --> L[PagerDuty / Slack / SIEM]
```
## 设计原则
**风险优先,合规为副产品**
选择每一项控制措施,都是因为它能切断真实的攻击路径。合规映射是从这些安全决策中推导出来的,而不是反过来。
**不可变的审计追踪**
通过 SCP 策略,任何主体(包括管理员)都无法禁用日志记录或离开组织。如果安全管控能被受管辖的人随意绕过,那它就形同虚设。
**默认最小权限**
杜绝宽泛的权限分配。本工具包中的每一个 IAM 资源都被严格限制在刚好满足需求的权限范围内,并在特权角色的 assume-role 路径上配置了 MFA 条件。
**设计即可视化**
关键发现会自动路由到 SNS。如果在凌晨 2 点没有告警通知,那么所谓的安全检测就等于形同虚设。
## 项目组合中的相关工件
- **云原生 CRQ** — 这些控制措施所输出的财务风险暴露建模层位于 [`cyber-risk-quantification`](https://github.com/rafatyazdani/cyber-risk-quantification)。
- **成熟度评分** — 评估这些控制措施所支撑的安全计划成熟度的引擎位于 [`maturity-scoring-engine`](https://github.com/rafatyazdani/maturity-scoring-engine)。
- **AI 治理覆盖** — 针对云上部署的 AI 系统的安全治理工具位于 [`ai-governance-toolkit`](https://github.com/rafatyazdani/ai-governance-toolkit)。
## 许可证
Apache 2.0 — 在注明出处的前提下,可免费用于商业环境中的使用、改编和部署。
**作者:Rafat Yazdani** — CPA · CISSP · CISA · CCSK · AWS Certified
安全战略与网络风险量化 — Accenture Security
标签:AWS, DPI, ECS, Terraform, 合规治理, 安全基线, 教学环境, 漏洞利用检测