iamwillsoto/aws-security-governance-sentinel

GitHub: iamwillsoto/aws-security-governance-sentinel

基于 CloudTrail 和 EventBridge 的事件驱动 AWS 安全治理平台,自动检测并修复 S3 公开访问违规,提供加密审计追踪与实时告警能力。

Stars: 0 | Forks: 0

# Operation Sentinel:AWS 安全治理平台 一个事件驱动的 AWS 安全治理系统,用于检测有风险的 S3 公开访问更改并自动进行修复。 ## 问题 云环境的演进速度远超人工安全审查。一次简单的 `DeleteBucketPublicAccessBlock` 调用就可能在人工察觉之前暴露敏感存储。对于受监管的环境,延迟修复会带来运营风险、审计风险以及潜在的合规失败。 ## 解决方案 Operation Sentinel 通过自动化的控制闭环弥补了这一差距:检测 → 修复 → 审计 → 告警 → 验证。 该系统检测有风险的 S3 公开访问更改,恢复所需的存储防护机制,记录结构化的审计证据,发送 SMS 告警,并通过 CloudWatch 提供运营可见性。基础架构通过 Terraform 部署,并在发布前通过 CI 安全检查进行验证。 ## 架构 ![Operation Sentinel 架构](https://raw.githubusercontent.com/iamwillsoto/aws-security-governance-sentinel/main/architecture/operation-sentinel-architecture.png) ``` Risky S3 API call → CloudTrail captures the event → EventBridge matches the S3 risk pattern → Lambda restores S3 Block Public Access → DynamoDB records audit evidence → SNS sends an SMS alert → CloudWatch provides logs, alarms, and dashboard visibility ``` ## 技术栈 | 层级 | 服务 | |---|---| | 检测 | AWS CloudTrail, Amazon EventBridge | | 修复 | AWS Lambda | | 存储治理 | Amazon S3 Block Public Access | | 审计 | Amazon DynamoDB | | 告警 | Amazon SNS SMS | | 可观测性 | Amazon CloudWatch Logs, Dashboard, Alarms | | 弹性 | Amazon SQS DLQs, EventBridge retry policy, Lambda async failure destination | | 加密 | AWS KMS customer-managed key | | 治理 | Terraform, GitHub Actions, Trivy | ## 检测 CloudTrail 捕获管理平面的 API 活动。EventBridge 匹配安全相关的 S3 事件: - `DeleteBucketPublicAccessBlock` *(主要验证触发器)* - Bucket 策略修改 - ACL 更改 启用 CloudTrail 日志文件验证,以支持底层日志流的审计完整性和防篡改检测。 ## 修复 Lambda 响应器从 CloudTrail 事件中提取受影响的 bucket,并重新应用所有四个 S3 Block Public Access 控制: ``` BlockPublicAcls = True IgnorePublicAcls = True BlockPublicPolicy = True RestrictPublicBuckets = True ``` 执行角色被限定为仅具有以下权限:修复受监控的 bucket、写入审计记录、发布告警、使用客户托管的 KMS 密钥以及记录执行日志。 该函数还包含一个自触发防护机制,以降低在日后扩展事件模式时发生修复循环的风险。 ## 可观测性 - **CloudWatch Logs** — 每次修复事件的 KMS 加密结构化执行输出 - **DynamoDB** — KMS 加密的审计记录,包含事件 ID、时间戳、bucket 名称、事件名称和修复结果 - **SNS SMS** — 触发修复时立即发送安全通知 - **CloudWatch Dashboard** — 集中查看修复活动 - **CloudWatch Alarms** — 监控 Lambda 错误、Lambda 限流和 DLQ 活动 ## 弹性 Operation Sentinel 包含故障处理控制,确保修复事件不会无声无息地丢失。 - Lambda 异步失败目标将失败的修复事件路由到 SQS DLQ - EventBridge 目标包含重试行为和专用的 SQS DLQ - SQS DLQs 使用客户托管的 KMS 加密 - DynamoDB 时间点恢复保护修复审计记录 - 账户级别的 S3 Block Public Access 在受监控的 bucket 之外提供了预防性防护机制 ## 加密治理 Operation Sentinel 使用客户托管的 AWS KMS 密钥来保护平台上的安全遥测数据和审计数据。 该 KMS 密钥用于: - CloudTrail 日志加密 - S3 bucket 加密 - SNS 告警加密 - SQS DLQ 加密 - DynamoDB 审计表加密 - CloudWatch 日志组加密 这为系统的审计跟踪、告警路径、故障处理路径和修复证据提供了集中的加密治理。 ## 治理 整个平台通过 Terraform 定义。GitHub Actions CI 工作流通过以下方式验证基础架构代码: 1. `terraform fmt` — 格式验证 2. `terraform init` + `terraform validate` — 配置完整性验证 3. `trivy` — 通过 `policies/trivy.yaml` 进行基础设施即代码安全扫描 Trivy 是 CI 工作流中活跃的基础设施即代码扫描器。 ## 验证 通过在受监控的 bucket 上有意调用 `DeleteBucketPublicAccessBlock` 来验证修复工作流。 **结果:** ``` remediation_status = success ``` EventBridge 匹配到了 CloudTrail 事件,Lambda 恢复了所有四个 S3 Block Public Access 设置,DynamoDB 记录了结构化的审计条目,SNS 投递了 SMS 通知,CloudWatch 展示了修复活动。 加固后的验证证实,在添加了审计完整性、故障处理、客户托管的 KMS 加密、账户级别的 S3 防护机制和运营告警之后,该平台仍能继续成功进行修复。 ## 安全设计原则 - 事件驱动检测 — 无轮询或计划检查 - 自动化修复 — 已知的违规行为无需人工干预即可纠正 - IAM 最小权限 — 为修复、审计、告警、日志记录和 KMS 使用设定严格的权限范围 - 结构化审计证据 — DynamoDB 记录保留修复结果 - 客户托管加密 — KMS 保护 CloudTrail 日志、S3 存储、SNS 告警、SQS DLQs、DynamoDB 审计记录和 CloudWatch 日志 - 审计完整性 — 启用 CloudTrail 日志文件验证 - 预防性防护机制 — 账户级别的 S3 Block Public Access - 故障处理 — Lambda 异步失败目标和 EventBridge DLQ - 运营监控 — 针对修复健康状况的 CloudWatch 告警 - 纯 IaC 基础架构 — 无手动控制台配置 - CI/CD 安全验证 — 发布前的 Terraform 验证和 Trivy 扫描 ## 范围和局限性 此实现针对单个 AWS 账户和一个受监控的 S3 bucket。其范围被有意设定为一个专注的、可演示的安全控制,而不是全面的组织级推广。 此实现使用客户托管的 AWS KMS 密钥来加密 CloudTrail、S3、SNS、SQS、DynamoDB 和 CloudWatch Logs 中的安全遥测数据和审计数据。 Lambda 预留并发已被评估为一种运行时安全控制,但由于账户级别的并发配额限制而未能启用。在完成配额验证或提升配额之后,它仍然是一个推荐的生产环境增强项。 生产环境扩展路径包括 AWS Config 自定义规则、Security Hub 集成、IAM 权限提升检测、通过 AWS Organizations 进行的多账户部署、集中式日志归档账户以及组织级别的 SCP 防护机制。 ## 仓库结构 ``` aws-security-governance-sentinel/ ├── .github/ │ └── workflows/ │ └── security-iac.yaml ├── architecture/ │ └── operation-sentinel-architecture.png ├── infra/ │ ├── cloudtrail.tf │ ├── cloudwatch.tf │ ├── dynamodb.tf │ ├── eventbridge.tf │ ├── iam.tf │ ├── kms.tf │ ├── lambda.tf │ ├── outputs.tf │ ├── providers.tf │ ├── s3.tf │ ├── sns.tf │ ├── sqs.tf │ ├── terraform.tfvars.example │ └── variables.tf ├── lambda/ │ └── sentinel_remediator.py ├── policies/ │ │ └── terraform-security.rego │ └── trivy.yaml ├── validation-screenshots/ ├── .gitignore ├── .trivyignore └── README.md ``` ## 项目成果 Operation Sentinel 展示了一种使用原生云服务和基础设施即代码的强化 AWS 安全治理模式。 该项目验证了在以下方面的实践经验: - 基于 CloudTrail 的安全事件检测 - EventBridge 驱动的自动化 - 基于 Lambda 的修复 - S3 公开访问治理 - IAM 最小权限 - 客户托管的 KMS 加密 - DynamoDB 审计日志记录和时间点恢复 - SNS SMS 告警 - KMS 加密的 SQS 死信队列 - CloudWatch 可观测性和告警 - Terraform 基础架构部署 - GitHub Actions CI 验证 - Trivy IaC 扫描
标签:AMSI绕过, AWS, CI/CD安全, CISA项目, CloudTrail, CloudWatch, DPI, DynamoDB, ECS, EventBridge, GitHub Actions, IaC扫描, KMS加密, Lambda, Llama, S3安全, SNS, Terraform, 事件驱动架构, 威胁检测, 安全合规, 安全治理, 操作审计, 日志告警, 网络代理, 自动修复, 自动笔记, 运维监控, 逆向工具, 防御绕过检测, 风险控制