SBordier44/eks-devsecops-lab-infra

GitHub: SBordier44/eks-devsecops-lab-infra

一个基于Terraform和Terragrunt的AWS EKS DevSecOps实验室基础设施代码库,专注于构建可重现、安全且成本优化的生产级Kubernetes平台。

Stars: 0 | Forks: 0

# eks-devsecops-lab-infra **EKS DevSecOps Lab** 的基础设施代码库。 本项目旨在构建一个**基于 AWS 的生产级 Kubernetes 平台**,同时应用 **DevSecOps 最佳实践**, 重点关注可重现性、安全性和成本控制。 本代码库包含用于配置实验室所需云基础设施的 **Infrastructure as Code (IaC)**。 # 项目目标 本实验室的目标是设计并运维一个类似于真实企业环境部署的**安全 Kubernetes 平台**。 主要目标: - 构建一个**生产级 AWS EKS 平台** - 应用 **DevSecOps 最佳实践** - 确保基础设施的**完全可重现性** - 实施**安全供应链原则** - 保持基础设施的**成本效益** - 将该项目作为**公开技术作品集** # 代码库范围 本代码库负责配置和管理 **AWS 基础设施层**。 管理的资源包括: - VPC 和网络 - Amazon EKS 集群 - 托管节点组 - Amazon ECR 仓库 - IAM 角色和策略 - 用于 GitHub Actions 的 OIDC 联合身份 - Terraform 远程状态 (S3 + DynamoDB) **此处不处理**应用程序部署。 应用程序通过专用代码库使用 **GitOps** 进行部署: eks-devsecops-lab-gitops # 架构(第一阶段) 初始基础设施设计侧重于简单性、安全性和成本优化。 组件: - AWS VPC - 跨多个可用区的私有子网 - Amazon EKS 集群 - 托管节点组 - Amazon ECR 仓库 - Terraform 远程状态后端 后续阶段将引入: - ArgoCD(GitOps 部署) - Kyverno 策略 - RBAC 设计 - NetworkPolicies - External Secrets - 供应链安全 (SBOM, 镜像签名) # 成本控制策略 由于本项目运行在**有限的 AWS 赠金**之上,成本优化是一个关键要求。 实施的措施: - 初始阶段没有 NAT Gateway - 最小化的节点组规模 - 不使用时销毁资源 - 对所有资源进行强制标签标记 - 仅在需要时创建基础设施 预估成本目标: < $2/天 # 安全原则 本项目遵循多项 **DevSecOps 原则**: - 代码库中不存储长期有效的 AWS 凭证 - 通过 **OIDC 联合身份**从 CI 进行身份验证 - 仅通过 **Terraform / Terragrunt** 管理基础设施 - 最小权限 IAM 策略 - 加密的 Terraform 状态 - 使用 DynamoDB 锁定 Terraform 状态 - 公开代码库且**不含任何机密** # 代码库结构 eks-devsecops-lab-infra/ modules/ Terraform 模块 live/ dev/ terragrunt.hcl vpc/terragrunt.hcl eks/terragrunt.hcl ecr/terragrunt.hcl 该代码库遵循 **Terragrunt 环境结构**,以保持基础设施的模块化和可维护性。 # 前置条件 所需工具: - AWS CLI - Terraform 或 OpenTofu - Terragrunt - kubectl(后续阶段) - Git # 如何使用 初始化项目: terragrunt run --all init 预览基础设施变更: terragrunt run --all plan 应用基础设施: terragrunt run --all apply 销毁基础设施: terragrunt run --all destroy # 命名约定 所有资源遵循相同的命名约定: project-env-resource 示例: eks-devsecops-lab-dev-vpc eks-devsecops-lab-dev-eks eks-devsecops-lab-dev-ecr # AWS 资源标签 所有资源均使用以下结构进行标记: Project = eks-devsecops-lab Env = dev Owner = sylvain ManagedBy = terraform # 相关代码库 基础设施只是实验室的一部分。 应用程序代码库: eks-devsecops-lab-app 包含: - 演示应用程序 (Go) - Dockerfile - CI 流水线 - 安全扫描 - SBOM 生成 - 镜像签名 GitOps 代码库: eks-devsecops-lab-gitops 包含: - Kubernetes 清单 - Kustomize 配置 - ArgoCD 应用程序 - Kyverno 策略 - RBAC 配置 - Network policies 文档代码库: eks-devsecops-lab-docs 包含: - 架构图 - 架构决策记录 (ADR) - 安全设计文档 - 故障模拟 # 路线图 第一阶段 — 基础设施引导 - Terraform 状态后端 - VPC - EKS 集群 - 节点组 - ECR 第二阶段 — GitOps - ArgoCD 安装 - GitOps 部署模型 第三阶段 — 供应链安全 - Trivy 扫描 - SBOM 生成 - 使用 Cosign 进行镜像签名 第四阶段 — Kubernetes 安全 - Kyverno 策略 - RBAC 设计 - NetworkPolicies - Secret 管理 # 免责声明 本项目是一个用于实验、学习和作品集展示的**个人 DevSecOps 实验室**。 其旨在模拟**真实世界的咨询场景**和平台工程实践。
标签:ArgoCD, AWS, DevSecOps, DNS解析, DPI, EC2, ECR, ECS, EKS, GitHub Actions, GitOps, IaC, IAM, Network Policies, OIDC, RBAC, Terraform, Terragrunt, VPC, Web截图, 上游代理, 可观察性, 子域名突变, 容器安全, 开源项目, 成本优化, 技术教程, 漏洞探索, 生产环境模拟, 网络安全, 自动笔记, 隐私保护