Sakshats993/AWS-Security-Baseline-using-Terraform

GitHub: Sakshats993/AWS-Security-Baseline-using-Terraform

该项目使用 Terraform 模块化地自动化部署 AWS 原生安全服务,解决新云环境默认安全控制薄弱、缺乏集中监控与合规治理的问题。

Stars: 1 | Forks: 1

# 🔐 使用 Terraform 的 AWS-Security-Baseline [![Terraform](https://img.shields.io/badge/Terraform-v1.0+-623CE4?style=for-the-badge\&logo=terraform)](https://www.terraform.io/) [![AWS](https://img.shields.io/badge/AWS-Cloud_Security-FF9900?style=for-the-badge\&logo=amazonaws)](https://aws.amazon.com/) [![Security](https://img.shields.io/badge/Security-DevSecOps-red?style=for-the-badge)](https://aws.amazon.com/security/) [![Infrastructure as Code](https://img.shields.io/badge/IaC-Terraform-blue?style=for-the-badge)](https://developer.hashicorp.com/terraform) [![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](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, 上游代理, 合规治理, 漏洞探索, 系统加固