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 角色 |
請參見如何查看RAM角色的ARN?擷取RAM角色ARN。 | |
相關操作
建立RAM角色後,該RAM角色預設沒有任何許可權。
如需通過OpenAPI建立自訂策略並授權,請參見CreatePolicy - 建立一個權限原則、AttachPolicyToRole - 為指定角色添加許可權。
如需通過Terraform建立自訂策略並授權,請參見通過Terraform建立RAM角色並授權。
當Worker RAM角色不再需要某些許可權時,請及時將這些許可權移除,請參見為RAM角色移除許可權。