針對 IBM Cloud Kubernetes Service 使用 Terraform 來指派叢集存取權
IBM Cloud® 上的 Terraform 可對 IBM Cloud 服務啟用可預測且一致的佈建,以便您可以遵循「基礎架構即程式碼 (IaC)」原則快速建置複式多層雲端環境。 類似於使用 IBM Cloud CLI 或 API 及 SDK,您可以使用 HashiCorp 配置語言 (HCL) 來自動佈建、更新及刪除 IBM Cloud Kubernetes Service 資源。
在 IBM Cloud® 解決方案上尋找受管理 Terraform? 請試用 IBM Cloud® Schematics。 使用 Schematics,您可以使用您熟悉的 Terraform Scripting 語言,但不必擔心設定及維護 Terraform 指令行或 IBM Cloud® 提供者外掛程式。Schematics 也提供預先定義的 Terraform 範本,您可以從 IBM Cloud® 型錄輕鬆安裝這些範本。
使用 Terraform 建立 Kubernetes Service 叢集
在可以使用 Terraform 來指派叢集存取權之前,請遵循使用 Terraform 建立 Kubernetes Service 叢集的步驟。 如果您已有叢集,請參閱 指派 IAM 使用者存取權。
開始之前,請確定您具有 必要存取權,可建立及使用 IBM Cloud Kubernetes Service 資源。
-
遵循 Terraform on IBM Cloud® 入門指導教學,以安裝 Terraform CLI 並配置 Terraform 的 IBM Cloud® 提供者外掛程式。 外掛程式會將用來佈建、更新或刪除 Kubernetes Service 服務實例及資源的 IBM Cloud® API 抽象化。
-
遵循指導教學以 使用 Terraform 建立單一及多區域叢集。
-
選用: 使用 Terraform 來配置 Kubernetes Service 叢集 的 IAM 使用者存取原則。
指派 IAM 使用者對 Kubernetes Service 叢集的存取權
您可以使用 Terraform 來指派 IBM Cloud 帳戶中 Kubernetes Service 叢集的 IAM 使用者存取權。 如需搭配使用 Terraform 與 IAM 原則的相關資訊,請參閱 IBM Cloud 提供者 Terraform 文件。
-
在 Terraform 目錄中,建立名為
iam.tf
的配置檔。 在iam.tf
檔案中,使用 HashiCorp 配置語言 (HCL),新增配置參數以建立 Kubernetes Service 叢集的 IAM 使用者存取原則。 下列範例配置會建立ibm_iam_user_policy
,然後將原則指派給指定的叢集。 如需相關資訊,請參閱 Terraform 文件。resource "ibm_iam_user_policy" "cluster" { ibm_id = "<ibm_id>" roles = ["<access_role_1>, <access_role_2>"] resources { service = "containers-kubernetes" resource_instance_id = "<cluster_name>" } }
使用 Terraform 配置 IAM 存取原則 資源 說明 ibm_id
您要為其建立 IAM 存取原則之使用者的 IBM Cloud ID 或電子郵件位址。 roles
您要指派給使用者的存取角色清單 (以逗點區隔)。 service
套用存取原則的服務類型。 輸入 Kubernetes Service 叢集的 "containers-kubernetes"
。 如需適用服務類型的完整清單,請執行ibmcloud ks catalog service-marketplace
。resource_instance_id
叢集的 ID 或名稱。 配置檔範例:
resource "ibm_iam_user_policy" "test_policy" { ibm_id = "ibm_id@ibm.com" roles = ["Viewer", "Editor", "Administrator"] resources { service = "containers-kubernetes" resource_instance_id = "my-cluster" } }
-
起始設定 Terraform CLI。
terraform init
-
建立 Terraform 執行計劃並檢閱輸出。 Terraform 執行計劃彙總在帳戶中執行以建立 Kubernetes Service 叢集的所有動作。 請注意輸出的
Plan
區段。 範例輸出指出Plan: 1 to add, 0 to change, 0 to destroy
,因為配置檔會建立一個 IAM 使用者存取原則。Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_iam_user_policy.test_policy will be created + resource "ibm_iam_user_policy" "test_policy" { + account_management = false + ibm_id = "ibm_id@ibm.com" + id = (known after apply) + roles = [ + "Viewer", + "Editor", + "Administrator", ] + resources { + service = "containers-kubernetes" } } Plan: 1 to add, 0 to change, 0 to destroy.
-
套用配置檔以建立存取原則。 可能需要幾秒鐘才能完成。 在輸出中,請在使用者的 IBM 電子郵件之後記下原則 ID 號碼。
terraform apply
輸出範例:
ibm_iam_user_policy.test_policy: Creating... ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72]
-
執行指令並搜尋您先前記下的原則 ID,以驗證已順利建立 IAM 存取原則。
ibmcloud iam user-policies ibm_id@ibm.com
輸出範例:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster