建立存取群組的動態規則

您可以建立動態規則,以根據特定的身分屬性,自動將聯合使用者新增至存取群組。 當您的使用者使用聯邦 ID 登入時,身分提供者 ( IdP ) 的資料會根據您設定的規則,將您的使用者動態對應到存取群組。

使用者已有貴公司網域內特定的身分資訊,當他們使用聯合 ID 登入時,可以使用 SAML 主張來傳遞此資料。 在 IdP 內設定的 SAML 斷言或屬性語句提供用來建立每條規則的資料。 例如,您可能會有 true 或 false 屬性陳述式,將使用者定義為管理員。 此資訊可以用來將身為管理員的所有使用者都新增至特定的管理員存取群組,此群組是您在 IBM Cloud® 帳戶中所建立。 如需詳細資訊,請參閱如何 控制雲端資源存取的教學以及 範例規則

只有已受邀加入帳戶的使用者才能使用動態規則對映至存取群組。

使用主控台設定規則

動態規則是透過設定條件來建立,這些條件必須與 IdP 內設定的資料相匹配,並在登入時與使用者的聯合 ID 一起傳入。 您可以為一個規則新增多個條件。 規則中設定的所有條件都必須符合,使用者才會新增至存取群組。

若要建立規則,請遵循下列步驟:

  1. 在 IBM Cloud 主控台中,按一下管理 > 存取 (IAM),然後選擇存取群組
  2. 選取您要建立規則的存取群組名稱。 此動作會開啟群組詳細資料頁面。
  3. 選取動態規則
  4. 按一下新增規則
  5. 輸入 IdP 中的資訊,這些資訊會在新增規則頁面上動態提供給您。 下列清單提供每個必要欄位的詳細資料。

您可以將存取群組規則視為一個 key:value 對。 關鍵是您在 Add users when 欄位中加入的內容,而值則是您在 Values 欄位中輸入的內容。

關於用於建立動態規則的欄位的詳細資訊,請參閱 IAM 條件屬性

使用 Terraform 設定規則

在使用 Terraform 設定規則之前,請確認您已完成下列事項:

  • 安裝 Terraform CLI 並為 Terraform 配置 IBM Cloud Provider 外掛程式。 如需詳細資訊,請參閱 IBM Cloud® 上的 Terraform 入門 教學。 外掛程式抽象出 IBM Cloud API,用來完成這項任務。
  • 建立名為 main.tf 的 Terraform 配置檔案。 在此檔案中,您使用 HashiCorp Configuration Language 定義資源。 如需詳細資訊,請參閱 Terraform 文件

動態規則是透過設定條件來建立,這些條件必須與 IdP 內設定的資料相匹配,並在登入時與使用者的聯合 ID 一起傳入。 您可以為一個規則新增多個條件。 規則中設定的所有條件都必須符合,使用者才會新增至存取群組。

若要使用 Terraform 建立規則,請遵循下列步驟:

  1. main.tf 檔案中建立一個參數。 以下範例使用 ibm_iam_access_group_dynamic_rule 資源為存取群組建立新的動態規則,其中 name 是識別動態規則的唯一名稱。

     resource "ibm_iam_access_group_dynamic_rule" "rule1" {
       name              = "newrule"
       access_group_id   = "AccessGroupId-dsnd4bvsaf"
       expiration        = 4
       identity_provider = "test-idp.com"
       conditions {
         claim    = "blueGroups"
         operator = "CONTAINS"
         value    = "\"test-bluegroup-saml\""
       }
     }
    

    如需詳細資訊,請參閱 Terraform 文件 頁面中的參數參考細節。

使用聯邦使用者管理的 IAM 存取群組模組,自動化動態會員資格。 瞭解 Terraform IBM 模組

以下範例示範使用 Terraform IBM 模組 (TIM) 建立具有動態規則的存取群組:

module "access_group" {
  source  = "terraform-ibm-modules/iam-access-group/ibm"
  version = "X.X.X" # Replace with the latest version

  access_group_name        = "federated-managers"
  access_group_description = "Access group for federated managers"

  dynamic_rules = [
    {
      name              = "manager-rule"
      expiration        = 12
      identity_provider = "https://idp.example.org/SAML2"
      conditions = [
        {
          claim    = "isManager"
          operator = "EQUALS"
          value    = "true"
        }
      ]
    }
  ]
}

如需更多組態選項和範例,請參閱 IAM 存取群組模組文件

  1. 完成建立組態檔案後,初始化 Terraform CLI。 如需詳細資訊,請參閱 初始化工作目錄

    terraform init
    
  2. main.tf 檔案提供資源。 如需詳細資訊,請參閱 使用 Terraform 佈建基礎結構

    1. 執行 terraform plan 以產生 Terraform 執行計畫,預覽建議的動作。

      terraform plan
      
    2. 執行 terraform apply 以建立計劃中定義的資源。

      terraform apply
      

關於用於建立動態規則的欄位的詳細資訊,請參閱 IAM 條件屬性

檢視存取群組的動態成員

您可以檢視使用動態規則加入存取群組的使用者。 若要檢視存取群組的動態成員,請移至 IBM Cloud 主控台中的管理 > 存取 (IAM) > 存取群組。 選取存取群組,然後按一下使用者。 動態新增的使用者會以類型 Dynamic 表示。

下列使用者將不會出現在表格中:

  • 動態新增尚未登入的使用者。
  • 動態新增會話過期的使用者。

已登出但會話仍然有效的動態使用者會繼續出現在表中,直到其會話過期為止。

您無法手動移除動態使用者。 若要移除動態使用者,請調整您的動態規則。

檢視使用者的動態會員資格

您也可以透過完成下列步驟,檢視使用者根據動態規則加入的存取群組清單:

  1. 移至 IBM Cloud 主控台中的管理 > 存取 (IAM) > 使用者
  2. 按一下使用者。
  3. 按一下存取
  4. 使用者是動態成員的存取群組,會以 Dynamic 的型態顯示。

範例規則

以下範例包含動態規則每個欄位的值。 在此規則中,在聯合 IdP 中被識別為經理的使用者會對應到 IBM Cloud 存取群組,該群組具有僅經理才能存取的特定設定。

存取群組動態規則範例
欄位
名稱 管理員群組規則
身分提供者 https://idp.example.org/SAML2
有效期限(小時) 12
新增使用者,當:(屬性名稱) isManager
比較運算子 等於