本文以授予RAM使用者或RAM角色查詢、擴容和刪除叢集的許可權為例,介紹如何在Container Compute Service (ACS)中建立自訂授權策略。
前提條件
在建立自訂授權策略時,您需要瞭解授權策略語言的基本結構和文法。更多資訊,請參見權限原則基本元素。
背景資訊
容器計算服務ACS提供的系統授權策略的授權粒度比較粗,如果這種粗粒度授權策略不能滿足您的需要,那麼您可以建立自訂授權策略。例如,您想控制對某個具體的叢集的操作許可權,您必須使用自訂授權策略才能滿足這種細粒度要求。
在進行RAM使用者或RAM角色的叢集RBAC授權前,您需要完成對叢集管控能力的RAM授權。您可以根據需要授予RAM使用者或RAM角色對目的地組群的讀寫策略:
讀策略:用於查看叢集配置、kubeconfig等基本資料。
寫策略:包含叢集伸縮、升級、刪除等叢集管控能力。
在提交RBAC授權前,您需要確保目的地組群已經被授予RAM唯讀許可權,策略參考如下。
{
"Statement": [
{
"Action": [
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/叢集ID"
]
}
],
"Version": "1"
}當您完成RAM授權後,需要完成叢集內Kubernetes資源模型訪問的RBAC授權。
自訂授權策略
Container ServiceACK提供的系統授權策略的授權粒度比較粗,如果這種粗粒度授權策略不能滿足您的需要,那麼您可以建立自訂授權策略。例如,您想控制對某個具體的叢集的操作許可權,您必須使用自訂授權策略才能滿足這種細粒度要求。
步驟一:建立自訂授權策略
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在權限原則頁面,單擊建立權限原則。

在建立權限原則頁面,單擊指令碼編輯頁簽,輸入您的權限原則內容。
{ "Statement": [{ "Action": [ "cs:Get*", "cs:List*", "cs:Describe*", "cs:ScaleCluster", "cs:DeleteCluster" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/叢集ID" ] }], "Version": "1" }參數
說明
Action
所需授與權限,所有的Action均支援萬用字元。
Resource
有以下配置方式,其中
叢集ID需要替換為您的實際叢集ID,如cae93341766c843479ae986b3305xxxxx。授予單叢集許可權
"Resource": [ "acs:cs:*:*:cluster/叢集ID" ]授予多個叢集許可權
"Resource": [ "acs:cs:*:*:cluster/叢集ID", "acs:cs:*:*:cluster/叢集ID" ]授予所有叢集的許可權
"Resource": [ "*" ]
編寫完成後單擊確定,在彈窗中填寫入權限策略名稱稱,然後再單擊確定完成建立。
返回權限原則頁面,在搜尋方塊中搜尋策略名稱或備忘,可以看到您授權的自訂策略。
步驟二:為RAM使用者或RAM角色授予自訂授權策略
關於自訂授權的具體操作和系統策略授權操作方法一樣,在選擇權限原則時,需選擇您已建立的自訂策略。具體操作,請參見為RAM使用者或RAM角色授予系統策略。
相關參考
為RAM使用者或RAM角色授權不支援限制叢集的ACK OpenAPI的操作許可權
部分ACK OpenAPI不支援限制叢集的授權(例如,DescribeEvents),若您需要給RAM使用者或RAM角色授權這些不支援限制叢集的ACK OpenAPI的操作許可權,請勿在Resource中限定叢集ID。
例如,當前RAM權限原則如下:
{
"Statement": [
{
"Action": [
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/叢集ID"
]
}
],
"Version": "1"
}