為 Secrets Manager 設定 Terraform
IBM Cloud 上的 Terraform 可讓您以可預測且一致的方式建立 IBM Cloud 服務,因此您可以遵循 Infrastructure as Code ( IaC ) 原則,快速建立複雜的多層雲端環境。 與使用 IBM Cloud CLI 或 API 和 SDK 相似,您可以使用 HashiCorp Configuration Language (HCL) 自動建立、更新和刪除 Secrets Manager 實例。
正在尋找受管理的 Terraform on IBM Cloud 解決方案? 嘗試 IBM Cloud® Schematics. 透過 Schematics,您可以使用熟悉的 Terraform 指令碼語言。 但您不需要擔心設定和維護 Terraform 指令行和 IBM Cloud Provider 外掛程式。Schematics 也提供預先定義的 Terraform 模版,您可以從 IBM Cloud 目錄中輕鬆安裝。
安裝 Terraform 並配置 Secrets Manager 的資源
在您可以使用 Terraform 建立授權之前,請確定您已完成下列步驟:
- 確保您具有 必要存取權,以建立並使用 Secrets Manager 資源。
- 安裝 Terraform CLI 並配置 Terraform 的 IBM Cloud 提供者外掛程式。 如需相關資訊,請參閱 在 IBM Cloud上開始使用 Terraform 的指導教學。 外掛程式會將用來完成此作業的 IBM Cloud API 抽象化。
- 建立一個名為
main.tf的 Terraform 配置檔案。 在此檔案中,您可以使用 HashiCorp 配置語言來定義資源。 如需相關資訊,請參閱 Terraform 文件。
-
完成建置配置檔之後,請起始設定 Terraform CLI。 如需相關資訊,請參閱 起始設定工作目錄。
terraform init -
透過使用
main.tf檔案中的ibm_resource_instance資源引數,建立 Secrets Manager 實例。- 下列範例中的 Secrets Manager 實例名為
secrets-manager-london,並使用eu-gb地區中的試行計劃建立。 在 IAM 存取原則中,user@ibm.com獲指派「管理者」角色。 如需其他支援的地區,請參閱 地區及端點。 計劃選項包括trial和standard。
resource "ibm_resource_instance" "sm_instance" { name = "Secrets Manager-London" service = "secrets-manager" plan = "trial" location = "eu-gb" timeouts { create = "60m" delete = "2h" }, }若要檢視受支援屬性的完整清單,請參閱
ibm_resource_instance。您可以選擇性地建立資料來源,透過執行下列指令,從 IBM Cloud擷取現有 Secrets Manager 實例的相關資訊。
data "ibm_resource_instance" "sm_resource_instance" { name = "Secrets Manager-London" location = "eu-gb" service = "secrets-manager" }如需受支援屬性的完整清單,請參閱
ibm_resource_instance。 - 下列範例中的 Secrets Manager 實例名為
-
從
main.tf檔案供應資源。 如需相關資訊,請參閱 使用 Terraform 佈建基礎架構。- 執行
terraform plan以產生 Terraform 執行計劃來預覽提出的動作。
terraform plan- 執行
terraform apply,以建立計劃中定義的資源。
terraform apply - 執行
-
定義要在建立資源時使用 Secrets Manager 實例的本端值。
locals { instance_id = data.ibm_resource_instance.sm_resource_instance.guid region = data.ibm_resource_instance.sm_resource_instance.location } -
從使用者介面中的 IBM Cloud 資源清單,選取您建立的 Secrets Manager 實例,並記下實例 ID。
-
驗證已順利指派存取原則。 如需相關資訊,請參閱 在主控台中檢閱指派的存取權。
管理資源漂移
使用 Terraform,您可以安全且可預測地使用宣告式配置檔來管理基礎架構的生命週期。 當您將基礎架構當作程式碼來管理時,存在一個挑戰是漂移。 在套用 Terraform 配置變更之外新增、刪除或修改資源時,會發生漂移。 例如,當密鑰到期或輪替時。 為了避免漂移,請一律使用 Terraform 來管理最初使用 Terraform 建立的資源。
Terraform 狀態檔是 Terraform 管理的所有資源的記錄。 您不得對 Terraform 所控制的資源進行手動變更,因為這樣做,狀態檔會從實際基礎架構變成不同步或「漂移」。 如果您的狀態及配置不符合您的基礎架構,則 Terraform 會嘗試核對基礎架構,這可能會無意中毀損或重建資源。
當您使用 Secrets Manager Terraform 提供者時,可能會發生漂移,例如:
- 密鑰有效期限
- 密鑰自動旋轉
- 由 Terraform 控制之 Secret Manager 資源的外部變更
當您設計 Terraform 專案時,請遵循 Terraform 最佳實務管理漂移和生命週期變更,以避免無意間破壞或重現 Secrets Manager 資源。
下一步為何?
既然您已順利在 IBM Cloud上使用 Terraform 建立第一個 Secrets Manager 服務實例,您可以檢閱 Terraform 登錄中的 Secrets Manager 資源及資料來源。 您也可以遵循「如何做」小節中包含的 Terraform 步驟,來檢閱如何管理 Secrets Manager 資源。 例如,您可以遵循如何使用 Terraform 來建立 任意密鑰 的指示。
對於生產部署,請考慮 IBM Cloud® Secrets Manager 提供企業就緒的組態。 瞭解 Terraform IBM 模組。