針對 Red Hat OpenShift on IBM Cloud 使用 Terraform 來指派叢集存取權

IBM Cloud® 上的 Terraform 可實現 IBM Cloud 服務的可預測性和一致性配置,因此您可以按照基於基礎設施即代碼 ( IaC ) 的原則快速建立複雜的多層雲環境。 與使用 IBM Cloud CLI 或 API 和 SDK 相似,您可以使用 HashiCorp Configuration Language (HCL) 自動配置、更新和刪除 Red Hat OpenShift on IBM Cloud 資源。

正在尋找受管理的 Terraform on IBM Cloud® 解決方案? 嘗試 IBM Cloud® Schematics. 透過 Schematics,您可以使用熟悉的 Terraform 指令碼語言,但不必擔心設定和維護 Terraform 指令行或 IBM Cloud® Provider 外掛程式。Schematics 也提供預先定義的 Terraform 模版,您可以從 IBM Cloud® 目錄中輕鬆安裝。

使用 Terraform 建立 Red Hat OpenShift 叢集

在使用 Terraform 指派群集存取權之前,請遵循步驟使用 Terraform 建立 Red Hat OpenShift 群集。 如果您已有叢集,請參閱 指派 IAM 使用者存取權

開始之前,請確定您具有 必要存取權,以建立並使用 Red Hat OpenShift on IBM Cloud 資源。

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

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

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

將 IAM 使用者存取權指派給 Red Hat OpenShift 叢集

您可以使用 Terraform 為 IBM Cloud 帳戶中的 Red Hat OpenShift 集群指定 IAM 使用者存取權限。 有關在 IAM 策略中使用 Terraform 的詳細資訊,請參閱 IBM Cloud 提供者 Terraform 文件

  1. 在 Terraform 目錄中,建立名為 iam.tf 的配置檔。 在 iam.tf 檔案中,使用 HashiCorp 配置語言 (HCL),新增配置參數以建立 Red Hat OpenShift 叢集的 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 存取政策適用的服務類型。 針對 Red Hat OpenShift 叢集輸入 "openshift"。 如需適用服務類型的完整清單,請執行 ibmcloud oc 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 執行計劃彙總執行以在帳戶中建立 Red Hat OpenShift 叢集的所有動作。 請注意輸出的 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