這個 Terraform 專案用於在 AWS 上建立一個完整的 VPC 基礎設施,包含以下主要元件:
- VPC (CIDR: 10.0.0.0/16)
- Public Subnet (10.0.1.0/24) - 可用區域 A (ap-northeast-1a)
- Private Subnet A (10.0.2.0/24) - 可用區域 C (ap-northeast-1c)
- Private Subnet B (10.0.3.0/24) - 可用區域 D (ap-northeast-1d)
| Name | ID |
|---|---|
| Debian 12 (HVM), SSD Volume Type | ami-00a7d6f3b78d70c5a |
| Ubuntu Server 24.04 LTS (HVM), SSD Volume Type | ami-026c39f4021df9abe |
- CIDR 區塊: 10.0.0.0/16
- DNS 主機名稱: 啟用
- DNS 解析: 啟用
- 子網路 CIDR 區塊:
- Public Subnet: 10.0.1.0/24 (ap-northeast-1a)
- Private Subnet A: 10.0.2.0/24 (ap-northeast-1c)
- Private Subnet B: 10.0.3.0/24 (ap-northeast-1d)
ap-northeast-1 (東京區域)
+------------------------------------------+
| |
| +----------------+ +----------------+ |
| | Public Subnet| | Private Subnet | |
| | 10.0.1.0/24 | | A 10.0.2.0/24 | |
| | ap-northeast-1a| | ap-northeast-1c| |
| +----------------+ +----------------+ |
| |
| +----------------+ |
| | Private Subnet | |
| | B 10.0.3.0/24 | |
| | ap-northeast-1d| |
| +----------------+ |
| |
+------------------------------------------+
圖例:
- Public Subnet: 可從網際網路直接訪問
- Private Subnet: 僅可通過 NAT Gateway 訪問網際網路
- 所有子網路間可以互相通訊
- 入站規則:
- TCP 53 (DNS)
- UDP 53 (DNS)
- TCP 88 (Kerberos)
- UDP 88 (Kerberos)
- TCP 389 (LDAP)
- TCP 445 (SMB)
- TCP 636 (LDAPS)
- TCP 3268 (LDAP GC)
- TCP 3269 (LDAPS GC)
- TCP 3389 (RDP)
- TCP 9389 (AD Web Services)
- 出站規則:
- 允許所有流量 (0.0.0.0/0)
- 入站規則:
- TCP 22 (SSH)
- UDP 1194 (OpenVPN)
- TCP 443 (HTTPS)
- 出站規則:
- 允許所有流量 (0.0.0.0/0)
- 入站規則:
- TCP 22 (SSH)
- UDP 1812 (RADIUS Authentication)
- UDP 1813 (RADIUS Accounting)
- TCP 1812 (RADIUS Authentication)
- TCP 1813 (RADIUS Accounting)
- 出站規則:
- 允許所有流量 (0.0.0.0/0)
- Public Subnet:
- 本地路由 (10.0.0.0/16)
- 網際網路閘道 (0.0.0.0/0)
- Private Subnet A/B:
- 本地路由 (10.0.0.0/16)
- NAT 閘道 (0.0.0.0/0)
- Simple AD 目錄服務
- OpenVPN 伺服器
- FreeRADIUS 認證伺服器 (雙可用區域部署)
-
安裝必要工具
- Terraform (>= 1.0.0)
- AWS CLI
- 設定 AWS 認證
-
準備變數
- 建立
terraform.tfvars文件,設定以下必要變數:ad_admin_password = "your-ad-password" radius_secret = "your-radius-secret"
- 建立
set AWS_ACCESS_KEY_ID=
set AWS_SECRET_ACCESS_KEY=terraform initterraform planterraform applyterraform outputterraform destroy部署完成後,可以查看以下重要資訊:
- VPC ID
- VPC CIDR 區塊
- 子網路 ID (Public, Private A, Private B)
- Simple AD 安全群組 ID
- VPN 安全群組 ID
- FreeRADIUS 安全群組 ID (A, B)
- VPN 伺服器公有 IP
- VPN 伺服器私有 IP
- FreeRADIUS 伺服器私有 IP (A, B)
- 目錄服務 ID
- DNS IP 位址
- 管理介面 URL
-
安全性
- 請確保
ad_admin_password和radius_secret使用強密碼 - 建議定期更換密碼
- 請妥善保管
terraform.tfvars文件
- 請確保
-
成本考量
- Simple AD 會產生持續性費用
- NAT Gateway 會產生持續性費用
- EC2 實例會產生持續性費用
-
維護建議
- 定期更新 AMI
- 監控資源使用情況
- 定期備份重要配置
-
如果遇到 Simple AD 建立失敗:
- 確認 VPC 設定正確
- 確認子網路 CIDR 不重疊
- 檢查安全群組設定
-
如果 VPN 連線問題:
- 確認安全群組允許 UDP 1194
- 檢查 FreeRADIUS 服務狀態
- 確認 AD 整合設定
MIT License