pasindubalasooriya/wso2-is-aws

GitHub: pasindubalasooriya/wso2-is-aws

该项目提供了一套完整的 Terraform 模块,用于在 AWS 跨双可用区部署高可用 WSO2 Identity Server 7.3 集群,涵盖网络、数据库、安全加固及可观测性。

Stars: 0 | Forks: 0

# AWS 上的 WSO2 Identity Server 7.3 - 参考架构 在 AWS 跨 2 个可用区构建的高可用 **WSO2 Identity Server 7.3**,完全使用 Terraform 定义,专为在 **AWS 免费计划(基于额度)** 上运行而构建,自掏腰包花费 `$0`。 阅读相关博客 [点击这里](https://medium.com/@pasindudilshanbalasooriya/how-i-ran-a-real-identity-server-on-aws-without-spending-a-cent-f7c304478129?postPublishedType=repub) ## 已验证(经实时验证) - ✅ 跨 2 个可用区的 2 节点 WSO2 IS 集群位于 HTTPS ALB 之后,两个目标均健康,组成单一的 Hazelcast 集群 - ✅ 真实的 OIDC 登录从 IdP 签发了有效的 token - ✅ 能够在节点被杀死后存活 - 登录在幸存节点上继续进行,ASG 自动替换死去的节点 - ✅ 具备自我防御能力 - 账户锁定 + CloudWatch 登录失败告警(邮件) + WAF 速率限制(拦截了 121 个请求)共同捕获了一场撞库攻击 - ✅ 管理控制台对公共互联网返回 403,对管理员 IP 返回 200 ## 构建内容 - 跨 2 个可用区的 VPC(公有 / 私有应用 / 私有数据库子网层),单一 NAT,免费的 S3 网关终端节点 - 2× EC2 WSO2 IS 7.3 节点(每个可用区一个),组成集群,前端由 HTTPS ALB 负载均衡 - RDS MySQL 8(默认为单可用区,可通过 `multi_az` 切换以进行故障转移测试) - CloudWatch 日志/指标/告警,Secrets Manager,可选的 WAF - 管理控制台对公共互联网进行了访问限制 ## 目录结构 ``` bootstrap/ one-time: S3 state bucket, artifacts bucket, budget alarms (local state) terraform/ the stack - root config + modules/ (built phase by phase) config/ deployment.toml template, CloudWatch agent config, systemd unit scripts/ EC2 bootstrap, DB init, demo attack script apps/ demo OIDC SPA (Demo B) docs/ architecture, ADRs, demo writeups, screenshots ``` ## 成本控制 该环境是**临时性的**:每次工作会话执行 `terraform apply`,在每次会话结束时执行 `terraform destroy`。请参阅计划的 §0 和 §12。 ## 快速开始 1. 设置账户和防护机制。 2. `cd bootstrap && terraform init && terraform apply` - 创建状态 + artifacts 存储桶和预算告警。 3. 将 IS 7.3 zip 包和 Corretto 21 暂存到 artifacts 存储桶中(脚本位于 `scripts/`)。 4. `cd ../terraform` 并使用您账户特定的状态存储桶进行初始化(后端使用部分配置,因此不会提交账户 ID): terraform init -backend-config="bucket=wso2is-tfstate-" 然后复制 `terraform.tfvars.example` → `terraform.tfvars`,填入您的值,并执行 `terraform apply`。 5. 后续阶段将构建 `terraform/modules/`。 ## 状态 | 阶段 | 状态 | |---|---| | 0 — 账户与防护机制 | ✅ | | 1 — 网络 | ✅ | | 2 — 数据库 | ✅ | | 3 — 单节点 | ✅ | | 4 — 高可用集群 | ✅ | | 5 — 可观测性 | ✅ | | 6 — 安全加固 | ✅ | | 7 — 演示应用 | ✅ | ## 模块 | 模块 | 用途 | |---|---| | `vpc` | VPC、6 个子网(3 层 × 2 个可用区)、IGW、单一 NAT、路由表、NACL、S3 网关终端节点、流日志 | | `security` | 安全组(ALB / IS 节点 / RDS)、最小权限出站规则 | | `rds` | MySQL 8、Secrets Manager 凭证、快照/恢复变量 | | `compute` | AL2023 启动模板(IMDSv2)、ASG、IAM 实例配置文件、通过 S3 交付的配置/脚本 | | `alb` | HTTPS ALB、自签名 ACM 证书、目标组(会话保持 + 健康检查)、控制台访问限制规则 | | `observability` | 日志组、指标过滤器、告警、SNS 邮件、仪表板 | | `waf` | WAFv2 Web ACL(托管规则 + 速率限制),受 `enable_waf` 控制 |
标签:AWS, DPI, ECS, Terraform, WSO2 Identity Server, 漏洞利用检测, 运维部署, 高可用架构