全部產品
Search
文件中心

Container Service for Kubernetes:使用自訂Worker RAM角色實現節點池精微調權限控制

更新時間:Jul 08, 2025

ACK託管叢集會自動建立一個所有節點共用的預設Worker RAM角色。當您通過預設的Worker RAM角色授權時,許可權將會共用給叢集內所有的節點,可能會存在非預期的許可權擴散的風險。您可以在建立節點池時為其指定一個自訂的Worker RAM角色,通過為不同的節點池分配特定的角色,可以將每個節點池的許可權隔離開,降低叢集內所有節點共用相同許可權的風險。

前提條件

建立ACK託管叢集,且叢集為1.22及以上版本。

步驟一:建立RAM角色

您可以通過控制台、OpenAPI或Terraform等方式建立一個Worker RAM角色。

重要
  • RAM角色的名稱不能以KubernetesMasterRole-KubernetesWorkerRole-開頭。

  • RAM角色的受信服務必須是雲端服務

通過控制台建立RAM角色

通過控制台建立RAM角色的具體操作,請參見建立普通服務角色

通過OpenAPI或Terraform建立RAM角色

通過OpenAPI或Terraform建立RAM角色,請確保指定的角色信任策略已配置如下內容。如需修改RAM角色信任策略,請參見修改RAM角色的信任策略

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ecs.aliyuncs.com"
        ]
      }
    }
  ],
  "Version": "1"
}

步驟二:為建立節點池指定Worker RAM角色

重要

您只能在建立叢集或建立節點池時使用自訂的Worker RAM角色。節點池建立後,已有的Worker RAM角色不支援修改。

Container Service管理主控台建立叢集或節點池時,您可以在節點池的進階選項配置中,將Worker RAM 角色選擇為步驟一:建立RAM角色所建立的自訂角色。

具體操作,請參見建立叢集時節點池進階選項建立節點池時進階配置

授予RAM 使用者或 RAM 角色所需的許可權

當您通過 RAM 使用者或 RAM 角色使用本功能時,還需額外被授予ram:PassRole權限原則,以授權該使用者或角色可以使用指定的 RAM 角色作為 Worker RAM 角色。具體操作,請參見建立自訂權限原則為RAM使用者授權為RAM角色授權

說明

如果 RAM 使用者或 RAM 角色已被授予 AliyunCSFullAccess 許可權,則無需額外進行ram:PassRole授權。

RAM 權限原則樣本如下:

授權使用特定的 RAM 角色

授權使用所有 RAM 角色

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ram:PassRole",
      "Resource": [
        "<role_arn>"  // 替換為 RAM 角色的 ARN。
      ],
      "Condition": {
        "StringEquals": {
          "acs:Service": [
            "cs.aliyuncs.com"
          ]
        }
      }
    }
  ]
}
請參見如何查看RAM角色的ARN?擷取RAM角色ARN。
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ram:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:Service": [
            "cs.aliyuncs.com"
          ]
        }
      }
    }
  ]
}

相關操作

建立RAM角色後,該RAM角色預設沒有任何許可權。

當Worker RAM角色不再需要某些許可權時,請及時將這些許可權移除,請參見為RAM角色移除許可權