Sakshats993/AWS-Security-Baseline-using-Terraform
GitHub: Sakshats993/AWS-Security-Baseline-using-Terraform
该项目使用 Terraform 模块化地自动化部署 AWS 原生安全服务,解决新云环境默认安全控制薄弱、缺乏集中监控与合规治理的问题。
Stars: 1 | Forks: 1
# 🔐 使用 Terraform 的 AWS-Security-Baseline
[](https://www.terraform.io/)
[](https://aws.amazon.com/)
[](https://aws.amazon.com/security/)
[](https://developer.hashicorp.com/terraform)
[](LICENSE)
# 📌 概述
AWS 账户在部署时通常带有较弱的默认安全控制,从而导致:
* 缺乏集中式日志记录
* IAM 治理薄弱
* 没有自动化的威胁检测
* 对可疑活动的可见性差
* 加密标准薄弱
* 合规监控有限
* 权限提升的风险增加
本项目使用 Terraform 和 AWS 原生安全服务实现了一种企业级的 AWS 基线安全架构。
目标是模拟组织如何使用以下内容建立安全的云基础:
* 基础设施即代码
* 安全自动化
* 集中式监控
* 威胁检测
* 治理控制
* 云合规原则
* DevSecOps 实践
该架构遵循:
* AWS Well-Architected 安全支柱
* CIS AWS Foundations Benchmark
* AWS 安全参考架构
* 最小权限访问控制
* 纵深防御安全原则
# 🚀 核心功能
## 🔐 IAM 与治理
* 强大的 IAM 密码策略
* Security Administrator 角色
* Security Auditor 角色
* BreakGlass 紧急管理员角色
* IAM Access Analyzer 集成
* 最小权限 IAM 权限
* 显式拒绝防护机制
* Root 账户强化指南
## 📜 日志记录与监控
* 多区域 CloudTrail
* CloudTrail 日志验证
* CloudWatch 日志集成
* 安全指标过滤器
* CloudWatch 警报
* SNS 警报通知
* 安全仪表板
* 集中式审计日志记录
## 🛡️ 威胁检测与合规
* 可选的 Amazon GuardDuty 集成
* 可选的 AWS Security Hub 集成
* 可选的 AWS Config 托管规则
* 可选的 Amazon Inspector 集成
## 🔒 加密与数据保护
* 客户托管的 KMS 密钥
* KMS 密钥策略
* S3 加密强制执行
* 版本化日志存储
* S3 公共访问阻止
* 安全日志归档
## 🌐 网络安全
* 自定义 VPC 架构
* 公有/私有子网隔离
* VPC Flow Logs
* 安全组
* 网络 ACL
* 安全的网络分段
## 💰 成本治理
* AWS Budgets 集成
* 预算阈值警报
* 成本感知部署实践
* 针对计费服务的可选部署控制
# 🏗️ 安全架构
```
┌─────────────────────┐
│ IAM Security │
│ Roles + Policies │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ CloudTrail Logs │
│ Multi-Region Audit │
└──────────┬──────────┘
│
┌──────────────────┴──────────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ S3 Log Bucket │ │ CloudWatch Logs │
│ KMS Encrypted │ │ Metric Filters │
└────────┬─────────┘ └────────┬─────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ Security Hub │◄────────────────│ Security Alarms │
└────────┬─────────┘ └────────┬─────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ GuardDuty │ │ SNS Alerts │
└────────┬─────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ Inspector │
└──────────────────┘
```
# 🧠 真实用例
本项目模拟在企业环境中保护新配置的 AWS 环境。
该架构侧重于:
* 提升云可见性
* 检测可疑活动
* 保护审计日志
* 执行治理控制
* 减少攻击面
* 改善运营安全态势
* 集中安全监控
本项目可用作:
* Terraform 作品集项目
* 云安全学习项目
* DevSecOps 实践环境
* 基础 AWS 安全架构参考
# 🛠️ 使用的技术
| 技术 | 用途 |
| ---------------- | ---------------------------- |
| Terraform | 基础设施即代码 (IaC) |
| AWS IAM | 身份与访问管理 |
| AWS CloudTrail | 审计日志记录 |
| AWS CloudWatch | 监控与警报 |
| AWS KMS | 加密管理 |
| AWS Config | 合规监控 |
| AWS Security Hub | 安全态势管理 |
| Amazon GuardDuty | 威胁检测 |
| Amazon Inspector | 漏洞扫描 |
| AWS Budgets | 成本治理 |
| SNS | 警报通知 |
| S3 | 安全日志归档 |
# 📂 项目结构
```
AWS-Security-Baseline-using-Terraform/
│
├── README.md
├── LICENSE
├── .gitignore
│
├── screenshots/
│ ├── terraform-init.png
│ ├── terraform-validate.png
│ └── terraform-plan.png
│
├── policies/
│ ├── admin-role-policy.json
│ ├── audit-role-policy.json
│ ├── kms-key-policy.json
│ └── scp-guardrails.json
│
├── scripts/
│ └── deploy.sh
│
└── terraform/
├── main.tf
├── providers.tf
├── variables.tf
├── outputs.tf
├── terraform.tfvars.example
├── .terraform.lock.hcl
│
└── modules/
├── budgets/
├── cloudtrail/
├── cloudwatch/
├── iam/
├── kms/
├── s3/
├── vpc/
├── config/
├── guardduty/
├── inspector/
└── securityhub/
```
# ⚙️ 部署工作流
## 初始化 Terraform
```
terraform init
```
## 验证配置
```
terraform validate
```
## 预览基础设施变更
```
terraform plan
```
## 部署基础设施(请谨慎操作)
```
terraform apply
```
# 为了实现零成本学习与验证:
- 在部署前使用 `terraform validate` 和 `terraform plan`
- 保持禁用 NAT Gateway
- 将 GuardDuty、Security Hub、Inspector 和 AWS Config 模块注释掉
- 使用 AWS Budgets 警报监控意外费用
- 测试期间仅部署基础模块
# 📋 前置条件
在部署之前,请确保:
* 已安装 AWS CLI
* 已安装 Terraform >= 1.5
* 已配置 AWS 凭证
* 具有足够部署权限的 IAM 用户或角色
* Root 账户已启用 MFA
验证凭证:
```
aws sts get-caller-identity
```
# 🔒 已实施的安全控制
| 类别 | 控制措施 |
| ----------------- | ------------------------------------- |
| IAM | 角色、密码策略、最小权限 |
| 日志记录 | CloudTrail、Flow Logs、CloudWatch |
| 监控 | 警报、仪表板、SNS 警报 |
| 加密 | KMS 托管加密 |
| 合规性 | AWS Config 规则 |
| 治理 | SCP 防护机制 |
| 威胁检测 | GuardDuty + Security Hub |
| 漏洞管理 | Inspector |
| 成本控制 | 预算和警报 |
# 📊 关键安全特性
| 特性 | 用途 |
| ------------------- | ------------------------- |
| CloudTrail | 审计日志记录和 API 监控 |
| GuardDuty | 威胁检测 |
| Security Hub | 集中式安全调查结果 |
| CloudWatch | 监控和警报 |
| AWS Config | 合规监控 |
| KMS | 加密和密钥管理 |
| IAM Access Analyzer | 权限可见性 |
| SNS | 警报通知 |
# 💸 成本意识
本项目包含可能在 AWS 免费套餐之外产生费用的 AWS 服务。
## 潜在的计费服务
| 服务 | 备注 |
| ----------- | ---------------------------------------- |
| Security Hub | 标准评估可能会产生费用 |
| GuardDuty | 免费试用期后会产生费用 |
| Inspector | 漏洞扫描会产生费用 |
| AWS Config | 按记录的配置项收费 |
| NAT Gateway | 如果启用,费用较高 |
## 推荐的低成本部署
出于学习目的:
* 将高级安全模块注释掉以进行零成本测试
* 禁用 NAT Gateway
* 避免长期使用 GuardDuty
* 避免长期使用 Inspector
* 在执行 `terraform apply` 之前使用 `terraform plan`
* 配置 AWS Budgets 警报
# 🧠 展示的技能
* AWS 云安全
* Terraform 与基础设施即代码
* DevSecOps 实践
* IAM 治理
* 安全监控
* 威胁检测
* 加密架构
* 合规监控
* 云日志记录与警报
* 安全自动化
# 🏆 简历亮点
* 使用 Terraform 和 AWS 原生安全服务设计并实现了企业级 AWS 基线安全架构。
* 自动化了 IAM 治理、集中式日志记录、加密、威胁检测和合规监控。
* 实施了 CloudTrail、GuardDuty、Security Hub、AWS Config 和基于 KMS 的加密工作流。
* 使用可重用的 Terraform 模块构建了模块化的基础设施即代码架构。
* 开发了安全防护机制、最小权限 IAM 策略和监控仪表板。
# 🚧 未来增强功能
未来的潜在改进:
* 多账户 AWS Organizations 部署
* CI/CD 流水线集成
* 基于 Lambda 的自动修复
| SIEM 集成
* WAF 集成
* 跨账户日志记录
* 自动化漂移检测
* EKS/ECS 安全控制
# ⭐ 最终说明
构建此项目旨在演示如何将基础设施即代码与 AWS 原生服务相结合,利用真实的云安全原则建立安全的云基础。
重点不仅在于部署自动化,还在于:
* 安全可见性
* 治理
* 威胁监控
* 合规意识
* 运营韧性
* 安全的云工程实践
如果您觉得这个项目有用,欢迎在 GitHub 上给它点个 ⭐。
标签:AWS, DevSecOps, DPI, ECS, Terraform, 上游代理, 合规治理, 漏洞探索, 系统加固