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, 上游代理, 多账户架构, 安全中心, 安全合规, 审计日志, 服务控制策略, 治理框架, 网络代理, 谱系追踪, 足迹分析, 逆向工具, 配置规则, 镜像管理