本文介紹在RAM中與EDAS相關的授權許可權細分規則和權限原則。
權限原則中Resource的變數說明
權限原則聲明中Resource包含的變數說明如下:
$regionid:所在地區的ID,例如cn-shanghai。具體取值,請參見地區和可用性區域。
$namespace:微服務空間租戶ID,如下圖所示,方框內為微服務空間的租戶ID。
可登入EDAS控制台,在左側導覽列,選擇 ,進入微服務空間頁面擷取。
$clusterId:叢集ID,例如8c349f69-505c-436f-8dc7-**********,如下圖所示,方框內為叢集ID。
可登入EDAS控制台,在左側導覽列,選擇 ,單擊叢集ID/名稱進入叢集詳情頁面擷取。
$applicationId:應用ID,如ec8e38a3-3dca-47a7-b6f9-5**********,如下圖所示,方框內為應用ID。
可登入EDAS控制台,在左側導覽列,選擇 ,單擊應用程式名稱,進入應用詳情頁面的基本資料頁簽擷取。
許可權細分規則
本章節介紹EDAS內建許可權和RAM中權限原則的對應關係。
管理微服務空間
表 1. 管理微服務空間
Code | Description | Dependency action | Resource |
1.1 | 建立微服務空間 | edas:CreateNamespace | acs:edas:$regionid:$accountid:namespace/* |
1.2 | 刪除微服務空間 | edas:ReadNamespace | acs:edas:$regionid:$accountid:namespace/$namespace |
edas:DeleteNamespace | |||
1.4 | 編輯微服務空間 | edas:ManageNamespace | acs:edas:$regionid:$accountid:namespace/$namespace |
edas:ReadNamespace | |||
1.5 | 查看微服務空間 | edas:ReadNamespace | acs:edas:$regionid:$accountid:namespace/$namespace |
表 2. 管理叢集
Code | Description | Dependency action | Resource |
2.1 | 建立叢集 | edas:CreateCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/* |
2.2 | 刪除叢集 | edas:ReadCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId |
edas:DeleteCluster | |||
2.4 | 管理叢集 | edas:ReadCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId |
edas:ManageCluster | |||
2.3 | 查看叢集 | edas:ReadCluster | acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId |
表 3. 管理應用
Code | Description | Dependency action | Resource |
3.1 | 建立應用 | edas:CreateApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/* |
3.2 | 刪除應用 | edas:ReadApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:DeleteApplication | |||
3.3 | 查看應用 | edas:ReadApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
3.4 | 管理應用 | edas:ManageApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ReadApplication | |||
3.5 | 配置應用 | edas:ConfigApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ReadApplication | |||
3.6 | 管理日誌 | edas:ReadApplication | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ManageAppLog |
表 4. 微服務管理
Code | Description | Dependency action | Resource |
4.1 | 查看服務 | edas:ReadService | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
4.2 | 測試服務 | edas:TestService | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
4.3 | 管理服務 | edas:ReadService | acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId |
edas:ManageService |
表 5. 組態管理
Code | Description | Dependency action | Resource |
5.1 | 查看配置 | acms:R | acs:acms:$regionid:$accountid:cfg/$namespace/$groupId/$configId |
5.2 | 管理配置 | acms:* | acs:acms:$regionid:$accountid:cfg/$namespace/$groupId/$configId |
表 6. 系統管理
Code | Description | Dependency action | Resource |
6.1 | EDAS系統管理 | edas:ManageSystem | acs:edas:$regionid:$accountid:* |
6.2 | 查看動作記錄 | edas:ReadOperationLog | acs:edas:$regionid:$accountid:* |
6.3 | 系統營運 | edas:ManageOperation | acs:edas:$regionid:$accountid:* |
6.4 | ECS代購 | edas:ECSPurchase | acs:edas:*:*:* |
6.5 | SLB代購 | edas:SLBPurchase | acs:edas:*:*:* |
6.6 | SLS代購 | edas:SLSPurchase | acs:edas:*:*:* |
表 7. EDAS商用相關功能
Code | Description | Dependency action | Resource |
7 | EDAS商用相關功能 | edas:ManageCommercialization | acs:edas:$regionid:$accountid:* |
叢集授權
跟叢集使用相關的情境授權說明如下:
建立叢集
建立叢集時,Resource
中cluster/
後面的必須是星號(*)。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:CreateCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"],
"Effect": "Allow"
}
]
}
查看叢集詳情
叢集相關的唯讀許可權,例如查看單個叢集詳情、叢集下的執行個體或應用等資訊。
只有通過給RAM使用者授予資源群組後,RAM使用者才能在叢集列表中查看到被授權的叢集。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
"Effect": "Allow"
}
]
}
管理叢集
包括建立叢集、匯入執行個體到叢集、編輯叢集資訊和刪除叢集等。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
"Effect": "Allow"
}
]
}
下面以兩個樣本情境說明如何配置叢集管理的權限原則。
情境一:授權叢集的系統管理權限,但不允許建立叢集。
{ "Version": "1", "Statement": [ { "Action": ["edas:ManageCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"], "Effect": "Allow" }, { "Action": ["edas:CreateCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"], "Effect": "Deny" } ] }
說明其中
$clusterId
若配置為具體的值,則只能管理對應ID的叢集;若配置為星號(*),則能管理指定微服務空間下的所有叢集。情境二:授予叢集的系統管理權限,但是不允許建立和刪除叢集。
{ "Version": "1", "Statement": [ { "Action": ["edas:ManageCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"], "Effect": "Allow" }, { "Action": ["edas:CreateCluster","edas:DeleteCluster"], "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"], "Effect": "Deny" } ] }
刪除叢集
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadCluster","edas:DeleteCluster"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
"Effect": "Allow"
}
]
}
微服務空間
與微服務空間使用相關的情境授權說明如下:
建立微服務空間
建立微服務空間時,Resource
中namespace/
後面的必須是星號(*),否則鑒權失敗。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:CreateNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/*"],
"Effect": "Allow"
}
]
}
查看微服務空間
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
"Effect": "Allow"
}
]
}
管理微服務空間
當編輯或修改微服務空間名稱時,需授予管理微服務空間許可權。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
"Effect": "Allow"
}
]
}
刪除微服務空間
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadNamespace","edas:DeleteNamespace"],
"Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
"Effect": "Allow"
}
]
}
資源代購
為增強企業級使用者的許可權管理能力,EDAS支援資源代購的Resource Access Management許可權。主要涉及的資源套件含ECS、SLB和SLS。
資源代購的情境授權說明如下:
所有的代購類權限原則配置中,
resource
必須是"acs:edas:*:*:*"
,暫不支援更細粒度配置。資源代購權限原則只適用於RAM使用者。
ECS代購的許可權
使用範圍:
在ECS叢集建立後,添加購買ECS。
在ECS叢集內建立應用時代購ECS。
在ECS叢集內擴容應用時代購ECS。
策略樣本:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:ECSPurchase" ], "Resource": [ "acs:edas:*:*:*" ] } ] }
SLB代購的許可權
使用範圍:為應用綁定負載平衡時代購SLB。
策略樣本:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:SLBPurchase" ], "Resource": [ "acs:edas:*:*:*" ] } ] }
SLS代購的許可權
使用範圍:為應用代購Log ServiceSLS。
策略樣本:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:SLSPurchase" ], "Resource": [ "acs:edas:*:*:*" ] } ] }
應用管理
與應用相關的情境授權說明如下:
單個應用
管理應用:使用RAM使用者可以查看該應用的基本資料、管理配置和應用日誌,但不允許建立和刪除應用。
{ "Statement": [ { "Action": [ "edas:*Application" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] }, { "Action": [ "edas:DeleteApplication" ], "Resource":["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"], "Effect": "Deny" }, { "Action": [ "edas:CreateApplication" ], "Resource":["acs:edas:$regionid:*:namespace/$namespace/application/*"], "Effect": "Deny" } ], "Version": "1" }
建立應用
重要建立應用時使用的是所在叢集內的執行個體,因此還需要授予查看叢集的許可權。
{ "Statement": [ { "Action": [ "edas:CreateApplication", "edas:ReadCluster" ], "Effect": "Allow", "Resource": [ "acs:edas:$regionid:*:namespace/$namespace/application/*", "acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId" ] } ], "Version": "1" }
刪除應用
重要刪除應用時還需要授予查看應用的許可權,這樣才能找到需要刪除的應用。
{ "Statement": [ { "Action": [ "edas:DeleteApplication", "edas:ReadApplication" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] } ], "Version": "1" }
日誌管理
重要管理應用日誌時還需要授予查看應用的許可權,這樣才能找到需要日誌管理的應用。
{ "Statement": [ { "Action": [ "edas:ReadApplication", "edas:ManageAppLog" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] } ], "Version": "1" }
設定應用:應用的設定包括對應用連接埠、Tomcat context、負載平衡、健全狀態檢查、JVM參數和同可用性區域優先等功能的設定。
重要設定應用時還需要授予查看應用的許可權。
{ "Statement": [ { "Action": [ "edas:ReadApplication", "edas:ConfigApplication" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"] }, ], "Version": "1" }
多個應用
查看應用:授權查看某個地區內的應用列表。
說明一個地區下包括多個微服務空間,查看應用可以查看該某地區的所有微服務空間內的應用列表。
{ "Statement": [ { "Action": [ "edas:ReadApplication" ], "Effect": "Allow", "Resource": ["acs:edas:$regionid:*:namespace/*/application/*"] } ], "Version": "1" }
查看應用:授權查看某命令空間內的應用列表。
{ "Statement": [ { "Action": [ "edas:*Application", "edas:ReadCluster" ], "Effect": "Allow", "Resource": [ "acs:edas:$regionid:*:namespace/$namespace/application/*", "acs:edas:$regionid:*:namespace/$namespace/cluster/*" ] } ], "Version": "1" }
微服務管理
與微服務管理使用相關的情境授權說明如下:
查詢服務
如果需查詢所有應用服務,您可將下述權限原則中的$applicationId
替換為星號(*)。
{
"Statement": [
{
"Action": [
"edas:ReadService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
]
}
],
"Version": "1"
}
測試服務
如果需測試所有微服務空間和應用服務,您可將下述權限原則中的$namespace
和$applicationId
替換為星號(*)。
{
"Statement": [
{
"Action": [
"edas:TestService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
]
}
],
"Version": "1"
}
服務鑒權
如果需授權所有應用,您可將下述權限原則中的$applicationId
替換為星號(*)。
{
"Statement": [
{
"Action": [
"edas:ManageService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
]
}
],
"Version": "1"
}
離群執行個體摘除
離群摘除會影響微服務空間下的相關應用,所以授權粒度為微服務空間。
{
"Statement": [
{
"Action": [
"edas:ManageService"
],
"Effect": "Allow",
"Resource": [
"acs:edas:$regionid:*:namespace/$namespace"
]
}
],
"Version": "1"
}
組態管理
EDAS整合了ACM的組態管理能力。與組態管理相關的許可權控制,請參見存取權限控制。
系統管理
系統管理包含管理RAM使用者、查看產品用量、查看動作記錄等系統級的許可權。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageSystem"],
"Resource": ["acs:edas:*:*:*"],
"Effect": "Allow"
}
]
}
系統許可權不涉及具體的資源,故權限原則中的Resource
直接用acs:edas:*:*:*
即可。
系統營運
系統營運包含查看動作記錄、執行批量營運和管理資源群組的許可權。
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ManageOperation"],
"Resource": ["acs:edas:*:*:*"],
"Effect": "Allow"
}
]
}
動作記錄
{
"Version": "1",
"Statement": [
{
"Action": ["edas:ReadOperationLog"],
"Resource": ["acs:edas:*:*:*"],
"Effect": "Allow"
}
]
}