IBM Cloud Docs
針對 IBM Cloud Kubernetes Service 使用 Terraform 來指派叢集存取權

針對 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 資源。

  1. 遵循 Terraform on IBM Cloud® 入門指導教學,以安裝 Terraform CLI 並配置 Terraform 的 IBM Cloud® 提供者外掛程式。 外掛程式會將用來佈建、更新或刪除 Kubernetes Service 服務實例及資源的 IBM Cloud® API 抽象化。

  2. 遵循指導教學以 使用 Terraform 建立單一及多區域叢集

  3. 選用: 使用 Terraform 來配置 Kubernetes Service 叢集 的 IAM 使用者存取原則。

指派 IAM 使用者對 Kubernetes Service 叢集的存取權

您可以使用 Terraform 來指派 IBM Cloud 帳戶中 Kubernetes Service 叢集的 IAM 使用者存取權。 如需搭配使用 Terraform 與 IAM 原則的相關資訊,請參閱 IBM Cloud 提供者 Terraform 文件

  1. 在 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"
        }
    }
    
  2. 起始設定 Terraform CLI。

    terraform init
    
  3. 建立 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.
    
  4. 套用配置檔以建立存取原則。 可能需要幾秒鐘才能完成。 在輸出中,請在使用者的 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]
    
  5. 執行指令並搜尋您先前記下的原則 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