aws-samples/sample-ami-lineage-governance
GitHub: aws-samples/sample-ami-lineage-governance
基于Neptune图数据库的AWS多账户AMI血缘追踪与安全治理解决方案
Stars: 0 | Forks: 0
# AMI 血缘治理框架
该综合解决方案利用 Neptune 图数据库、Lambda 函数、AWS Config、Security Hub 和 Service Control Policies,在 AWS Organizations 中实现 AMI 血缘追踪与治理。
## 架构概述
该解决方案采用多账户架构模式:
- **组织管理账户**:管理 SCP 和组织范围的 EventBridge 规则
- **安全工具账户**:托管 Neptune 数据库、Lambda 函数、API Gateway 和 Security Hub
- **成员账户**:部署 Config 规则、本地 EventBridge 规则和 IAM 角色
## 核心组件
### 核心基础设施
- **Neptune 图数据库**:存储 AMI 关系和元数据
- **Lambda 函数**:处理事件、处理 API 请求、评估合规性
- **API Gateway**:提供用于血缘查询和安全上下文的 REST API
- **EventBridge**:跨账户和区域捕获 AMI 事件
### 治理与合规
- **Service Control Policies**:对 AMI 使用实施预防性控制
- **AWS Config 规则**:持续合规性监控
- **Security Hub**:集中管理安全发现和合规仪表板
- **SNS**:针对不合规 AMI 的通知和警报
### 安全特性
- **跨账户 IAM 角色**:账户间的安全访问
- **VPC 隔离**:Neptune 数据库位于私有子网中
- **加密**:所有数据的静态和传输加密
- **审计日志**:通过 CloudTrail 记录完整的审计追踪
## 部署结构
```
Organization Account
├── Service Control Policies (SCPs)
├── Organization-wide EventBridge Rules
└── Cross-account IAM Trust Policies
Security Tooling Account
├── Neptune Graph Database
├── Lambda Functions
├── API Gateway
├── Security Hub Custom Insights
├── SNS Topics
└── VPC Infrastructure
Child Accounts (Member Accounts)
├── AWS Config Rules
├── Local EventBridge Rules
├── Cross-account IAM Roles
└── CloudTrail Integration
```
## 快速入门
### 前置条件
- 已启用所有功能的 AWS Organizations
- 配置了适当权限的 AWS CLI
- 用于 Lambda 函数的 Python 3.9+
- CloudFormation 部署能力
### 部署顺序
1. **组织管理账户设置**
cd deployment-scripts/organization
./deploy-organization-resources.sh
2. **安全工具账户设置**
cd deployment-scripts/shared
./deploy-shared-resources.sh
3. **成员账户设置**
cd deployment-scripts/child-account
./deploy-child-account-resources.sh
## 配置指南
### 组织管理账户配置
- 为 AMI 治理部署 Service Control Policies
- 设置组织范围的 EventBridge 规则
- 配置跨账户信任关系
### 成员账户配置
- 部署 AWS Config 规则以进行合规性监控
- 设置本地 EventBridge 规则以捕获 AMI 事件
- 配置 IAM 角色以进行跨账户访问
### 安全工具账户配置
- 部署具有适当安全设置的 Neptune 数据库
- 设置用于事件处理的 Lambda 函数
- 配置 API Gateway 用于外部访问
- 与 Security Hub 集成以处理发现结果
## API 使用示例
### 检查 AMI 安全上下文
```
curl -X GET "https://api.example.com/v1/ami/ami-1234567890abcdef0/security-context" \
-H "Authorization: Bearer "
```
### 评估安全影响
```
curl -X POST "https://api.example.com/v1/security-impact" \
-H "Content-Type: application/json" \
-d '{
"ami_id": "ami-1234567890abcdef0",
"finding_type": "CVE",
"finding_id": "CVE-2024-XXXX",
"severity": "CRITICAL"
}'
```
### 合规性评估
```
curl -X POST "https://api.example.com/v1/compliance-assessment" \
-H "Content-Type: application/json" \
-d '{
"rules": ["required_tags", "approved_source_validation"],
"scope": "ORGANIZATION"
}'
```
## 监控与警报
- **CloudWatch 仪表板**:监控系统健康状况和性能
- **SNS 通知**:合规性违规的实时警报
- **Security Hub 发现**:集中管理安全态势
- **Config 合规性**:持续合规性监控
## 安全考量
- 所有数据进行静态和传输加密
- IAM 权限最小化原则
- 敏感组件的 VPC 隔离
- 全面的审计日志
- 定期的安全评估
### 测试与生产部署
**⚠️ 重要:请先在低级环境中测试**
在生产环境中部署此解决方案之前,我们强烈建议:
1. **在开发/测试环境中部署**:在非生产 AWS 组织或隔离账户中测试完整解决方案,以验证功能和安全控制
2. **验证安全控制**:验证 Service Control Policies、Config 规则和 Lambda 函数是否按预期工作,且不影响生产工作负载
3. **测试合规场景**:模拟各种 AMI 合规场景,以确保解决方案行为正确
4. **性能测试**:根据预期的 AMI 规模,验证 Neptune 数据库性能和 Lambda 函数执行时间
**生产环境定制要求**
此解决方案提供了一个基础框架,您应根据具体需求进行定制:
- **IAM 权限**:审查并调整 IAM 角色和策略,以符合组织的安全标准
- **合规规则**:修改 AWS Config 规则和合规性检查,以匹配您特定的治理要求
- **通知渠道**:根据您的操作流程配置 SNS 主题和通知端点
- **保留策略**:根据您的合规性需求,调整 Neptune 数据库和 CloudWatch 日志的数据保留期
- **网络配置**:定制 VPC 设置、安全组和网络 ACL 以适应您的网络架构
- **加密密钥**:将默认 KMS 密钥替换为组织管理的密钥
- **监控阈值**:根据您的环境调整 CloudWatch 警报和监控阈值
## 支持与故障排除
请参阅文档文件夹以获取:
- 详细的架构图
- 部署故障排除指南
- 操作手册
- API 参考文档
## 许可证
本解决方案基于 MIT 许可证提供。详情请参阅 LICENSE 文件。
标签:AMI, AWS, DevSecOps, DPI, EventBridge, IT 治理, Lambda, Neptune, 上游代理, 多账户架构, 安全中心, 安全合规, 审计日志, 服务控制策略, 治理框架, 网络代理, 谱系追踪, 足迹分析, 逆向工具, 配置规则, 镜像管理