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截图, 上游代理, 可观察性, 子域名突变, 容器安全, 开源项目, 成本优化, 技术教程, 漏洞探索, 生产环境模拟, 网络安全, 自动笔记, 隐私保护