Patriot7Six/aws-regulated-landing-zone

GitHub: Patriot7Six/aws-regulated-landing-zone

面向受监管工作负载的 AWS 多账户着陆区参考架构,使用 Terraform 构建五账户隔离基础架构,集成 DevSecOps 流水线和合规框架映射。

Stars: 0 | Forks: 0

# AWS 受监管登陆区 一个用于受监管工作负载的多账户 AWS 基础架构,使用 Terraform 构建。包含五个账户(管理、日志归档、安全、网络、工作负载)、集中且不可变的日志记录、委托的安全服务,以及一个无需长期 AWS 凭证即可进行部署的 GitHub Actions pipeline。 这是一个参考架构和作品集项目,而非经过认证或可用于生产环境的产品。在将其指向真实账户之前,请参阅底部的免责声明。 ## 包含内容 ``` aws-regulated-landing-zone/ ├── ARCHITECTURE.md # account layout, data flow, design rationale ├── THREAT_MODEL.md # STRIDE analysis of the landing zone ├── COMPLIANCE_MAPPING.md # HIPAA / NIST 800-53 / PCI-DSS control mapping ├── docs/ │ ├── decision-records/ # ADRs — why, not just what │ ├── runbooks/ # incident response, access review │ └── diagrams/ # Mermaid source + rendering notes ├── terraform/ │ ├── modules/ # org-baseline, logging, security, network, workload, github-oidc │ ├── environments/dev, prod/ # environment wiring — provider aliases per account │ └── examples/minimal/ # bootstrap OIDC alone, before the rest exists └── .github/workflows/ # tflint, tfsec, Checkov, plan, apply ``` ## 设计亮点 - 五账户分离(管理、日志归档、安全、网络、工作负载),确保一个账户遭到入侵不会牵连其他账户。参见 [ADR-0001](docs/decision-records/0001-multi-account-strategy.md)。 - 将 CloudTrail 组织追踪放入专用的日志归档账户,S3 Object Lock 处于合规模式,使用 SSE-KMS。参见 [ADR-0004](docs/decision-records/0004-centralized-logging-account.md)。 - GuardDuty、Security Hub、Detective 和 IAM Access Analyzer 委托给专用的安全账户,而不是在每个工作负载中分别运行。 - 采用 Transit Gateway 星型网络,并在共享 VPC 上使用 Route 53 Resolver DNS Firewall。 - 在 OU 级别设置 SCP(拒绝离开组织、拒绝除 MFA 设置外的 root 用户操作、拒绝未加密的 S3 上传),作为 IAM 之上的补偿性控制。 - GitHub Actions 通过 OIDC 联合身份验证连接到 AWS,而不是使用 IAM 访问密钥。参见 [ADR-0003](docs/decision-records/0003-github-oidc-federation.md)。 - 在每个 pull request 上运行 tflint、tfsec 和 Checkov;`terraform apply` 需要通过受保护的 GitHub Environment 进行手动审批。 - 针对 HIPAA §164.312、NIST 800-53 Rev. 5 和 PCI-DSS v4.0 的控制项到服务映射 — 参见 [COMPLIANCE_MAPPING.md](COMPLIANCE_MAPPING.md)。 ## 快速入门 ``` git clone git@github.com:Patriot7Six/aws-regulated-landing-zone.git cd aws-regulated-landing-zone/terraform/environments/dev cp terraform.tfvars.example terraform.tfvars # 填写真实的 account ID terraform init terraform plan ``` 要求:Terraform >= 1.6.0,AWS CLI v2,一个至少包含五个账户的 AWS Organization(或愿意创建它们),以及来自 `terraform/modules/github-oidc` 的 GitHub OIDC 角色(如果您希望 CI 自动应用更改,而不是手动操作)。 ## 为什么采用这种设计 如果您想了解背后的推理过程而不仅仅是结果,请按顺序阅读这些 ADR: 1. [多账户策略](docs/decision-records/0001-multi-account-strategy.md) 2. [选择 Terraform 而非 CloudFormation](docs/decision-records/0002-terraform-over-cloudformation.md) 3. [选择 GitHub OIDC 联合身份验证而非 IAM 用户](docs/decision-records/0003-github-oidc-federation.md) 4. [集中式日志归档账户](docs/decision-records/0004-centralized-logging-account.md) 5. [CI 部署角色 — 权限范围与限制](docs/decision-records/0005-ci-deploy-role-scope.md) ## 实际部署与设计的对比 Terraform 模块和 CI 已就位,并通过了手动代码审查。它们尚未在真实的 AWS 账户中实际应用——本 README 中没有 `terraform plan` 的输出或截图,因为目前还没有针对真实基础设施生成过这些内容。这是下一步工作,已作为 Package B 进行跟踪。在此状态改变之前,请将此仓库视为设计和自动化参考。 ## 免责声明 本仓库是一个参考架构和作品集项目。在未经独立审查每个 SCP、IAM 策略和合规性映射是否符合您所在组织的评估人员的解释之前,请勿将其中的任何内容部署到生产环境的 AWS Organization 中。示例 `.tfvars` 文件中的账户 ID 均为占位符(例如 111111111111)——在运行任何操作之前,请先替换它们。 ## 许可证 MIT。参见 [LICENSE](LICENSE)。
标签:AWS, DevSecOps, DPI, ECS, GitHub Actions, Terraform, 上游代理, 合规与治理, 漏洞利用检测, 自动笔记