技能 terraform-aws-modules
📦

terraform-aws-modules

安全

建立生產就緒的 Terraform AWS 模組

建立可重複使用的 Terraform 基礎設施既複雜又容易出錯。此技能提供關於模組設計、狀態管理和 AWS 生產 HCL 模式的專業指導。

支援: Claude Codex Code(CC)
📊 71 充足
1

下載技能 ZIP

2

在 Claude 中上傳

前往 設定 → 功能 → 技能 → 上傳技能

3

開啟並開始使用

測試它

正在使用「terraform-aws-modules」。 建立具有適當變數定義的可重複使用 EKS 叢集模組

預期結果:

提供完整的模組結構,其中 variables.tf 定義 cluster_name、node_count 和 instance_type 並帶有驗證規則,main.tf 包含使用 for_each 管理 node groups 的 aws_eks_cluster 和 aws_eks_node_group 資源,outputs.tf 匯出叢集端點和 node group ARN,versions.tf 將 aws 提供者固定為 >= 4.0

正在使用「terraform-aws-modules」。 為生產環境配置狀態鎖定

預期結果:

返回 S3 後端配置,包含 bucket terraform-state-prod、金鑰 env/prod/terraform.tfstate、區域 us-east-1、DynamoDB 資料表 tf-state-lock、啟用加密,以及初始狀態匯入和團隊存取政策的指示

安全審計

安全
v1 • 2/25/2026

Static analysis detected 25 patterns but all are false positives. External command references are Terraform CLI documentation examples (terraform fmt, validate, plan, force-unlock), not executable code. The CIDR block 10.0.0.0/16 is standard RFC1918 private networking for VPC configuration. This is documentation-only content with no executable code.

1
已掃描檔案
80
分析行數
0
發現項
1
審計總數
未發現安全問題
審計者: claude

品質評分

38
架構
100
可維護性
87
內容
31
社群
100
安全
91
規範符合性

你能建構什麼

建立 VPC 模組的 DevOps 工程師

建立具有適當變數定義、輸出和標籤策略的可重複使用 VPC 模組,用於跨環境的一致網路部署。

設定狀態管理的平台團隊

為生產環境 Terraform 狀態配置具有 DynamoDB 鎖定的 S3 後端,確保安全的並發操作和狀態加密。

從 CloudFormation 遷移的開發者

將現有的 CloudFormation 範本轉換為 Terraform HCL,從一開始就具備適當的模組結構和狀態管理。

試試這些提示

建立基本模組結構
建立一個具有版本控制功能的 AWS S3 bucket Terraform 模組結構。包含 variables.tf(用於 bucket 名稱和版本控制旗標)、main.tf(含資源)、outputs.tf(用於 bucket ARN 和名稱),以及 versions.tf(固定 AWS 提供者版本)。
審查模組最佳實踐
審查此 Terraform 模組的最佳實踐和安全問題。檢查適當的變數驗證、敏感輸出標記、提供者版本固定,以及一致的標籤策略。
設計遠端狀態策略
為具有 dev、staging 和 production 環境的團隊設計遠端狀態後端配置。使用 S3 進行儲存並搭配 DynamoDB 鎖定。包含每個環境的獨立狀態金鑰並啟用加密。
從 Count 遷移到 For_Each
重構此 Terraform 配置以使用 for_each 而非 count 來管理多個子網路。目前程式碼使用帶有清單索引的 count,在移除中間元素時會造成問題。保留所有現有屬性。

最佳實務

  • 在 versions.tf 中固定提供者和模組版本,以防止更新時發生破壞性變更
  • 當資源識別必須在多次 apply 間保持穩定時,使用 for_each 而非 count
  • 將遠端狀態儲存在 S3 中,啟用 DynamoDB 鎖定並開啟伺服器端加密

避免

  • 對可能移除中間元素的資源使用 count,導致不必要的重新建立
  • 將 .tfstate 檔案提交至版本控制,暴露敏感的資源資料
  • 未使用 terraform_remote_state 資料來源就從其他配置引用狀態

常見問題

如何處理 Terraform apply 失敗後的狀態鎖定錯誤?
首先確認沒有其他操作正在執行。然後使用 terraform force-unlock 搭配錯誤訊息中的鎖定 ID。在強制解鎖前,務必確認先前的操作確實已失敗。
應該使用一個狀態檔案還是每個環境分開的狀態?
每個環境(dev、staging、prod)使用獨立的狀態檔案,在同一個 S3 bucket 中使用不同的金鑰。這提供隔離性,同時保持狀態管理簡單,並使每個環境能夠獨立生命週期管理。
如何在 Terraform 變數中管理機密資訊?
在 variables.tf 中將敏感變數標記為 sensitive = true。將實際值儲存在 AWS Secrets Manager 或 SSM Parameter Store 中,並透過資料來源引用。切勿將包含機密的變數值提交至版本控制。
Terraform 中 count 和 for_each 的差異是什麼?
count 使用數值索引,當移除元素時索引會移位,導致資源重新建立。for_each 使用穩定的字串或物件金鑰,在其他元素變更時保留資源識別。在大多數使用情境中優先使用 for_each。
如何將現有的 AWS 資源匯入 Terraform 狀態?
首先在 HCL 中定義資源,然後使用 terraform import 搭配資源位址和 AWS 資源 ID 執行匯入。對於複雜的匯入,可考慮使用 terraform import 搭配 -generate-config 自動產生配置。
我可以將此技能用於 Azure 或 GCP 基礎設施嗎?
此技能專門針對 AWS 提供者模式。雖然一般的 Terraform 概念適用於 Azure 和 GCP,但提供者特定的資源和最佳實踐有所不同。非 AWS 基礎設施請使用提供者特定的指導。

開發者詳情

檔案結構

📄 SKILL.md