默認情況下,RAM用戶或RAM角色沒有使用云服務OpenAPI的任何權限,您需要為RAM用戶或RAM角色授權才能使用容器服務ACK和容器計算服務ACS的OpenAPI,同時可以訪問容器計算服務ACS的控制臺查看集群。本文介紹如何為RAM用戶或RAM角色授予系統權限策略和自定義權限策略。
前提條件
在創建自定義授權策略時,您需要了解授權策略語言的基本結構和語法。更多信息,請參見權限策略基本元素。
系統策略授權
系統策略授權用于指定全局資源的讀寫訪問控制。當RAM用戶或RAM角色具有阿里云賬號下所有集群的運維管理權限時,建議使用系統策略進行快捷授權。
系統策略名稱 | 說明 |
AliyunCCFullAccess | 使RAM用戶或角色擁有容器計算服務產品所有OpenAPI的訪問權限。 |
AliyunCSFullAccess | 使RAM用戶或角色擁有容器服務產品所有OpenAPI的訪問權限。 說明 此系統策略僅包含針對ACK產品的RAM授權。如您需要對ACK集群中的應用進行運維,還需要進行RBAC授權,請參見自定義RBAC授權策略。可讀寫操作包括除ACS類型在內所有ACK集群的,請謹慎授權。 |
AliyunVPCReadOnlyAccess | 允許RAM用戶或角色在創建集群時可以選擇并指定VPC。 |
AliyunECSReadOnlyAccess | 允許RAM用戶或角色為集群查看節點詳細信息。 |
AliyunContainerRegistryFullAccess | 使RAM用戶或角色擁有管理阿里云賬號內的業務鏡像的權限。 |
AliyunLogReadOnlyAccess | 允許RAM用戶或角色在創建集群時選擇已有Log Project存儲審計日志,或查看指定集群的配置巡檢。 |
AliyunAHASReadOnlyAccess | 使RAM用戶或角色擁有查看集群拓撲功能的權限。 |
AliyunRAMFullAccess | 使RAM用戶或角色擁有阿里云賬號內的全局授權管理權限。 |
AliyunYundunSASReadOnlyAccess | 使RAM用戶或角色擁有查看指定集群的運行時安全監控的權限。 |
AliyunARMSReadOnlyAccess | 使RAM用戶或角色擁有查看集群阿里云Prometheus插件的監控狀態的權限。 |
AliyunKMSReadOnlyAccess | 允許RAM用戶或角色在創建Pro集群時可查看密鑰管理服務(KMS)中密鑰的權限。 |
AliyunESSReadOnlyAccess | 使RAM用戶或角色擁有查看節點池操作的權限。 |
為RAM用戶或RAM角色授予系統策略
阿里云賬號(主賬號)對賬號中的資源具有完全管理權限,您也可以在RAM中創建一個RAM用戶,授予AdministratorAccess權限,充當賬號管理員,該管理員可以對賬號下所有云資源進行管控操作。更多信息,請參見創建賬號管理員。
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇 。
在用戶頁面,單擊目標RAM用戶操作列的添加權限。
您也可以選中多個RAM用戶,單擊用戶列表下方的添加權限,為RAM用戶批量授權。
在新增授權面板,為RAM用戶添加權限。
選擇資源范圍。
賬號級別:權限在當前阿里云賬號內生效。
資源組級別:權限在指定的資源組內生效。
重要指定資源組授權生效的前提是該云服務及資源類型已支持資源組,詳情請參見支持資源組的云服務。資源組授權示例,請參見使用資源組限制RAM用戶管理指定的ECS實例。
選擇授權主體。
授權主體即需要添加權限的RAM用戶。系統會自動選擇當前的RAM用戶。
選擇需要授予的系統權限策略。
單擊確認新增授權。
單擊關閉。
自定義策略授權
容器服務ACK提供的系統授權策略的授權粒度比較粗,如果這種粗粒度授權策略不能滿足您的需要,那么您可以創建自定義授權策略。例如,您想控制對某個具體的集群的操作權限,您必須使用自定義授權策略才能滿足這種細粒度要求。
步驟一:創建自定義授權策略
使用RAM管理員登錄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。授予單集群權限
"Resource": [ "acs:cs:*:*:cluster/集群ID" ]
授予多個集群權限
"Resource": [ "acs:cs:*:*:cluster/集群ID", "acs:cs:*:*:cluster/集群ID" ]
授予所有集群的權限
"Resource": [ "*" ]
編寫完成后,單擊繼續編輯基本信息,填寫名稱,然后單擊確定。
返回權限策略頁面,在搜索框中搜索策略名或備注,可以看到您授權的自定義策略。
步驟二:為RAM用戶或RAM角色授予自定義授權策略
關于自定義授權的具體操作和系統策略授權操作方法一樣,在選擇權限策略時,需選擇您已創建的自定義策略。具體操作,請參見為RAM用戶或RAM角色授予系統策略。
使用示例
為RAM用戶或RAM角色授權不支持限制集群的OpenAPI的操作權限
部分OpenAPI不支持限制集群的授權(例如,DescribeEvents),若您需要給RAM用戶或RAM角色授權這些OpenAPI不支持限制集群的OpenAPI的操作權限,請勿在Resource中限定集群ID。
例如,當前RAM權限策略如下:
{
"Statement": [
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
若您需要授權不支持限制集群的OpenAPI DescribeEvents ,其對應的RAM action為cs:DescribeEvents
,修改后的RAM權限策略如下所示:
{
"Statement": [
{
"Action": [
"cs:DescribeEvents"
],
"Effect": "Allow",
"Resource": [
"*"
]
},
{
"Action": [
"cs:Get*",
"cs:List*",
"cs:Describe*"
],
"Effect": "Allow",
"Resource": [
"acs:cs:*:*:cluster/c2e63856bcd714197****"
]
}
],
"Version": "1"
}
后續操作
在完成RAM授權后,您需要繼續完成集群內Kubernetes資源訪問的RBAC授權,才能對集群內部資源進行操作。具體授權,請參見為RAM用戶或RAM角色授予RBAC權限。
在提交RBAC授權前,您需要確保目標集群已經被授予RAM只讀權限,策略參考如下。
{ "Statement": [ { "Action": [ "cs:Get*", "cs:List*", "cs:Describe*" ], "Effect": "Allow", "Resource": [ "acs:cs:*:*:cluster/<yourclusterID>" ] } ], "Version": "1" }