ezequieldlv/mysstic-cloud-iac

GitHub: ezequieldlv/mysstic-cloud-iac

该项目用 Terraform 在 AWS 上自动化交付多可用区零信任云基础设施,涵盖网络隔离、动态密钥、左移安全审计和无服务器告警。

Stars: 0 | Forks: 0

# ☁️ MyssTic Warden: 云基础设施 (IaC) ![状态](https://img.shields.io/badge/Status-Active-green?style=flat-square) ![Terraform](https://img.shields.io/badge/IaC-Terraform-5835CC?style=flat-square&logo=terraform) ![AWS](https://img.shields.io/badge/Cloud-AWS-FF9900?style=flat-square&logo=amazon-aws) ![PostgreSQL](https://img.shields.io/badge/Database-PostgreSQL-316192?style=flat-square&logo=postgresql) ![Ansible](https://img.shields.io/badge/Config-Ansible-EE0000?style=flat-square&logo=ansible) ![GitOps](https://img.shields.io/badge/Deployment-GitHub_Actions-2088FF?style=flat-square&logo=github-actions) ![ZeroTrust](https://img.shields.io/badge/Security-Zero_Trust-black?style=flat-square) 本仓库包含 **MyssTic Warden** 云环境的基础设施即代码 和配置管理供给,作为 AWS 骨干和生产环境。 ## 🏗️ 架构与安全 (Tier-3 零信任与左移安全) 基础设施经过严格的模块化设计(网络、计算、数据库、监控、DNS),并从零开始构建,具备严格的网络边界、动态密钥和自动化安全门控: * **左移安全与 OIDC:** CI/CD 流水线通过 **OpenID Connect (OIDC)** 对 AWS 进行身份验证,消除了静态凭证。每次推送在部署前都会经过 **Trufflehog**(密钥扫描)和 **Checkov**(IaC 合规性)的审计。 * **网络 (Multi-AZ):** 自定义 VPC (`10.0.0.0/16`) 划分为公共 DMZ (`10.0.1.0/24`) 和完全隔离的私有子网 (`10.0.2.0/24`, `10.0.3.0/24`)。DNS 通过 Amazon Route 53 进行原生管理。 * **计算与配置管理:** 运行在 ARM64 Graviton 实例 (t4g.micro) 上的 Debian Linux。配置完全通过 **Ansible 企业级角色** (Docker, Traefik, Apps) 自动化。 * **零信任 VPN 与部署:** EC2 不会向互联网暴露 SSH (端口 22)。GitHub Actions runner 使用临时的 AuthKey 动态加入 **Tailscale** 私有网络,并通过内部 Tailnet 安全地执行 Ansible playbook。 * **持久化:** Amazon RDS (PostgreSQL 16) 独家部署在私有区域。 * **零信任安全组:** 默认拒绝入站流量。EC2 仅允许 HTTP/HTTPS。RDS 数据库拒绝基于 IP 的连接,通过 EC2 的安全组身份进行加密身份验证。 * **动态密钥:** 密码和 token 绝不硬编码或在本地存储。Terraform 在运行时从 **AWS Secrets Manager** 动态提取密钥。 * **事件驱动的可观测性:** 自动化的混沌/故障检测。**Amazon CloudWatch** 监控 EC2 指标并触发 **Amazon SNS** 主题。**AWS Lambda** 函数将实时关键警报推送到 Telegram 机器人。 * **状态管理:** Terraform 状态 (`.tfstate`) 通过使用 **Amazon S3** (AES-256 加密) 和 **DynamoDB** 进行并发状态锁定的 **Remote Backend** 进行严格管理。 * **GitOps 拉取自动化:** EC2 实例被授予 IAM 实例配置文件,以便在没有静态密钥的情况下安全地向 ECR 进行身份验证。本地的 Watchtower agent 自主轮询注册表,并为应用程序容器编排零停机的滚动更新。 ## 🗺️ 云拓扑 ``` graph TD classDef aws fill:#FF9900,stroke:#fff,stroke-width:2px,color:#000,font-weight:bold classDef tf fill:#5835CC,stroke:#fff,stroke-width:2px,color:#fff,font-weight:bold classDef cicd fill:#1a1b26,stroke:#e0af68,stroke-width:2px,color:#c0caf5 classDef net fill:#292e42,stroke:#7aa2f7,stroke-width:2px,color:#c0caf5 classDef compute fill:#16161e,stroke:#9ece6a,stroke-width:2px,color:#c0caf5 classDef db fill:#336791,stroke:#fff,stroke-width:2px,color:#fff,font-weight:bold classDef sec fill:#cc2222,stroke:#fff,stroke-width:2px,color:#fff,font-weight:bold classDef serverless fill:#D18B00,stroke:#fff,stroke-width:2px,color:#fff,font-weight:bold GitHub((🐙 GitHub Actions)):::cicd -->|1. OIDC Auth| IAM[AWS IAM Role]:::sec GitHub -->|2. Shift-Left| SecGates[Trufflehog & Checkov]:::sec SecGates -->|3. CD Pipeline| TF[🟪 Terraform CLI]:::tf SecGates -->|4. Push App| ECR[(🐳 AWS ECR)]:::aws subgraph "Terraform Remote Backend" TF -.->|State Lock Mutex| Dynamo[(⚡ DynamoDB Table)]:::aws TF -.->|State Read/Write| S3[(🪣 S3 Bucket Encrypted)]:::aws end TF -->|Provisions via API| VPC[☁️ AWS Custom VPC 10.0.0.0/16]:::net TF -->|Grants IAM Auth| EC2 subgraph "AWS us-east-2 Ohio" Route53((🌐 Route 53)):::aws --> IGW VPC --> IGW[🚪 Internet Gateway]:::net subgraph "Public Zone (DMZ)" IGW --> PubSub[🌐 Public Subnet 10.0.1.0/24]:::net PubSub --> EC2[🖥️ t4g.micro Graviton + Watchtower]:::compute PubSub --> SG1[🛡️ SG: HTTP/HTTPS]:::net end subgraph "Private Zone (The Vault)" EC2 -->|Port 5432 / SG Auth| RDS[(🐘 RDS PostgreSQL)]:::db SG2[🛡️ SG: EC2 Identity Only]:::net -.-> RDS end end EC2 -.->|Autonomously Pulls| ECR Lambda -->|API POST| Telegram((📱 Telegram Bot)):::cicd ``` ## 🛠️ 技术栈 * **供给:** Terraform (HashiCorp) - 模块化架构 * **配置管理:** Ansible (角色结构) * **云提供商:** AWS (us-east-2) * **数据库:** Amazon RDS (PostgreSQL) * **Serverless:** AWS Lambda, Amazon SNS, CloudWatch * **安全:** AWS Secrets Manager, IAM OIDC, Tailscale VPN, Checkov, Trufflehog * **状态后端:** AWS S3 + DynamoDB * **CI/CD:** GitHub Actions * **操作系统:** Debian Linux ## 🚀 部署工作流 (持续部署) 本仓库强制执行严格的 GitOps 工作流。不推荐使用本地变量手动执行 `terraform apply`。 1. **安全门控:** 任何推送/PR 都会触发 Trufflehog(密钥扫描)和 Checkov(IaC 静态分析)。 2. **零信任身份验证:** 流水线通过 OpenID Connect (OIDC) 安全地向 AWS 进行身份验证,并担任临时的 IAM 角色。 3. **不可变供给:** Terraform 初始化远程后端,从 AWS Secrets Manager 中在内存中获取动态密钥,并应用基础设施更改。 4. **配置交付:** 供给完成后,GitHub Runner 使用临时的 AuthKey 加入私有 Tailnet,并通过 SSH 安全地执行 Ansible playbook,而无需暴露端口 22。 *由 MyssTic Warden 云运营团队维护。*
标签:Ansible, AWS, DPI, ECS, GitOps, Terraform, 测试用例, 漏洞利用检测, 系统提示词, 请求拦截, 零信任网络