全部產品
Search
文件中心

Container Service for Kubernetes:使用RAM授予叢集及雲資源許可權

更新時間:Oct 24, 2024

預設情況下,RAM使用者或RAM角色沒有使用雲端服務OpenAPI的任何許可權,您需要為RAM使用者或RAM角色授予系統策略許可權或自訂權限原則許可權後,才能使用Container ServiceACK的OpenAPI。本文介紹如何為RAM使用者或RAM角色進行叢集以及雲資源維度授權。

使用系統策略授權

系統策略授權用於指定全域資源的讀寫存取控制。當RAM使用者或RAM角色需要阿里雲帳號下所有叢集的營運系統管理權限時,建議使用系統策略進行快捷授權。Container ServiceACK的常用系統策略如下表所示:

重要

系統策略中Full層級的許可權為高風險許可權,請謹慎授予,以免造成安全風險。

展開查看Container ServiceACK常用系統策略

系統策略名稱稱

說明

AliyunCSFullAccess

當RAM使用者或RAM角色需要Container Service產品所有OpenAPI的存取權限。

說明

此系統策略僅包含針對ACK產品的RAM授權。如您需要對ACK叢集中的應用進行營運,還需要進行RBAC授權,請參見RBAC授權

AliyunVPCReadOnlyAccess

當RAM使用者或RAM角色在建立叢集時選擇指定VPC。

AliyunECSReadOnlyAccess

當RAM使用者或RAM角色為叢集添加已有節點或查看節點詳細資料。

AliyunContainerRegistryFullAccess

當RAM使用者或RAM角色需要全域管理阿里雲帳號內的業務鏡像。

AliyunLogReadOnlyAccess

當RAM使用者或RAM角色在建立叢集時選擇已有Log Project儲存審計日誌,或查看指定叢集的配置巡檢。

AliyunAHASReadOnlyAccess

當RAM使用者或RAM角色需要使用叢集拓撲功能。

AliyunRAMFullAccess

當RAM使用者或RAM角色需要負責阿里雲帳號內的全域授權管理。

AliyunYundunSASReadOnlyAccess

當RAM使用者或RAM角色需要查看指定叢集的運行時安全監控。

AliyunARMSReadOnlyAccess

當RAM使用者或RAM角色需要查看叢集阿里雲Prometheus外掛程式的監控狀態。

AliyunKMSReadOnlyAccess

當RAM使用者或RAM角色在建立Pro叢集時啟用Secret落盤加密能力。

AliyunESSReadOnlyAccess

當RAM使用者或RAM角色需要執行節點池的相關操作,例如查看、編輯和擴縮容等。

說明

阿里雲帳號(主帳號)對帳號中的資源具有完全系統管理權限,您也可以在RAM中建立一個RAM使用者,授予AdministratorAccess許可權,充當帳號管理員,該管理員可以對帳號下所有雲資源進行管控操作。更多資訊,請參見建立RAM使用者作為帳號管理員

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

  2. 在左側導覽列,選擇身份管理 > 使用者

  3. 使用者頁面,單擊目標RAM使用者操作列的添加許可權

    image

    您也可以選中多個RAM使用者,單擊使用者列表下方的添加許可權,為RAM使用者大量授權。

  4. 新增授權面板,為RAM使用者添加許可權。

    1. 選擇資源範圍。

    2. 選擇授權主體。

      授權主體即需要添加許可權的RAM使用者。系統會自動選擇當前的RAM使用者。

    3. 選擇需要授予的系統權限原則。

    4. 單擊確認新增授權

  5. 單擊關閉

使用自訂策略授權

自訂策略授權用於對目標RAM使用者或RAM角色實現細粒度的雲資源存取控制。不同的雲資源可能存在不同的安全性和存取控制要求,如果您需要對使用者進行精細化的雲資源存取控制,例如,限制某使用者對某個具體叢集的操作許可權,您可以建立自訂授權策略滿足這種細粒度要求。另外,如果目標RAM使用者或RAM角色有基於SDK的二次開發需求,還可實現API層級的許可權控制。關於RAM支援的授權項,請參見授權資訊

說明

在建立自訂授權策略時,您需要瞭解授權策略語言的基本結構和文法。更多資訊,請參見權限原則基本元素

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

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

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

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

  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。

    • 授予單叢集許可權

      "Resource": [
           "acs:cs:*:*:cluster/叢集ID"
       ]
    • 授予多個叢集許可權

      "Resource": [
           "acs:cs:*:*:cluster/叢集ID",
           "acs:cs:*:*:cluster/叢集ID"
       ]
    • 授予所有叢集的許可權

      "Resource": [
           "*"
       ]
  5. 編寫完成後,單擊繼續編輯基本資料,填寫名稱,然後單擊確定

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

步驟二:為RAM使用者或RAM角色授予自訂權限原則

關於自訂授權的具體操作和系統策略授權操作方法一樣,當選擇權限原則時,需選擇您已建立的自訂策略。具體操作,請參見使用系統策略授權

自訂策略授權樣本

樣本1:授予指定叢集的唯讀許可權

{
  "Statement": [
    {
      "Action": [
        "cs:Get*",
        "cs:List*",
        "cs:Describe*"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:cs:*:*:cluster/<yourclusterID>" # 目的地組群ID。
      ]
    }
  ],
  "Version": "1"
}

樣本2:授予指定OSS Bucket的讀取許可權

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                      "oss:ListBuckets",
                      "oss:GetBucketStat",
                      "oss:GetBucketInfo",
                      "oss:GetBucketTagging",
                      "oss:GetBucketAcl" 
                      ],    
            "Resource": "acs:oss:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:ListObjects",
                "oss:GetBucketAcl"
            ],
            "Resource": "acs:oss:*:*:myphotos"
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:GetObjectAcl"
            ],
            "Resource": "acs:oss:*:*:myphotos/*"
        }
    ]
}

樣本3:授權不支援限制叢集的OpenAPI的操作許可權

部分OpenAPI不支援限制叢集的授權(例如,DescribeEvents),如果您需要給RAM使用者或RAM角色授權這些OpenAPI不支援限制叢集的OpenAPI的操作許可權,請勿在Resource中限定叢集ID。修改前後的RAM權限原則對比如下:

修改前RAM權限原則

修改後RAM權限原則

{
    "Statement": [
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}
{
    "Statement": [
        {
            "Action": [
                "cs:DescribeEvents"
            ],
            "Effect": "Allow",
            "Resource": [
              "*"
            ]
        },
        {
            "Action": [
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:cs:*:*:cluster/c2e63856bcd714197****"
            ]
        }
    ],
    "Version": "1"
}

後續操作