全部產品
Search
文件中心

Container Compute Service:自訂RAM授權策略

更新時間:Jan 08, 2025

本文以授予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提供的系統授權策略的授權粒度比較粗,如果這種粗粒度授權策略不能滿足您的需要,那麼您可以建立自訂授權策略。例如,您想控制對某個具體的叢集的操作許可權,您必須使用自訂授權策略才能滿足這種細粒度要求。

步驟一:建立自訂授權策略

  1. 使用Resource Access Management員登入RAM控制台

  2. 在左側導覽列,選擇許可權管理 > 權限原則

  3. 權限原則頁面,單擊建立權限原則

    image

  4. 建立權限原則頁面,單擊指令碼編輯頁簽,輸入您的權限原則內容。

    {
     "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": [
           "*"
       ]
  5. 編寫完成後單擊確定,在彈窗中填寫入權限策略名稱稱,然後再單擊確定完成建立。

  6. 返回權限原則頁面,在搜尋方塊中搜尋策略名稱或備忘,可以看到您授權的自訂策略。

步驟二:為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"
}