您在EDAS上託管的應用可能包含多個服務或子系統,這些服務或子系統又可能由不同團隊、成員進行開發、營運。EDAS通過帳號體系及基於帳號體系的一系列許可權管理操作,提供企業級的許可權管理系統,協助您對應用、資源和資料進行必要的隔離和許可權控制,以保證其安全性。
EDAS內建許可權管理和RAM許可權管理
EDAS內建了一套許可權管理系統,又接入了阿里雲存取控制RAM(Resource Access Management)的許可權管理。
- RAM許可權管理操作,請參見RAM簡介。
- EDAS內建許可權管理操作,請參見管理EDAS內建許可權(不推薦)。
為了能夠統一管理EDAS和其他阿里雲產品的許可權,推薦您使用RAM許可權管理。EDAS也提供了將內建的許可權管理遷移至RAM許可權管理的方案。具體操作,請參見將EDAS內建的許可權管理切換為RAM許可權管理。
EDAS目前處於EDAS內建許可權管理與RAM許可權管理共存的過渡狀態,目前您的RAM使用者或子帳號所使用的許可權管理規則如下:
- 未使用過EDAS內建許可權管理的子帳號,直接使用RAM許可權管理,不能再使用EDAS內建許可權管理。
- 使用過EDAS內建許可權管理的子帳號:
- 擁有RAM中AliyunEDASFullAccess許可權的子帳號,直接使用RAM鑒權,不再開放EDAS內建鑒權。
- 使用過EDAS內建許可權管理的子帳號,建議手動切換為RAM鑒權,具體操作,請參見將EDAS內建的許可權管理切換為RAM許可權管理。如果不做任何改動,可繼續使用EDAS內建鑒權。
為什麼要使用RAM許可權管理
RAM是阿里雲提供的資源存取控制服務。通過設定權限原則(Policy),您可以集中管理您的使用者(例如員工、系統或應用程式),以及控制使用者可以訪問哪些資源,例如限制您的使用者只擁有對某一個EDAS應用的讀許可權。
更細粒度的鑒權
EDAS內建許可權管理 | RAM許可權管理 |
阿里雲帳號為子帳號分配資源後,所有的許可權都會匹配這些資源。例如,當授予子帳號APP1和APP2的資源後,如果再授予子帳號部署應用和停止應用的許可權,那麼,該子帳號會有許可權對APP1和APP2進行部署和停止操作。資源粒度較為粗糙,不能更精確地控制許可權。 | 相比EDAS內建的許可權管理,RAM的許可權控制更為精細。每條許可權都可以配置所擁有的資源。例如,阿里雲帳號可以授予RAM使用者部署App和停止App的許可權,同時,部署App的許可權配置上資源APP1和APP2,停止App的許可權配置上資源APP2和APP3。此時,RAM使用者可以部署APP1和APP2,不能部署APP3;可以停止APP2和APP3,不能停止APP1。 |
更強大的文法
相比EDAS內建許可權管理,RAM許可權管理的文法更為豐富,不僅支援用萬用字元進行模糊比對,還支援多種鑒權策略組合,實現更複雜的鑒權邏輯。
以下面的RAM策略為例:
{
"Statement": [
{
"Action": [
"edas:ReadApplication"
],
"Effect": "Allow",
"Resource": ["acs:edas:*:*:namespace/*/application/*"]
},
{
"Action": [
"edas:ReadApplication"
],
"Effect": "Deny",
"Resource": ["acs:edas:cn-beijing:*:namespace/*/application/12345678"]
}
],
"Version": "1"
}
該RAM策略有2條語句:
- 第1條是允許語句,許可權動作edas:ReadApplication代表查看APP,針對的資源是萬用字元*,代表所有APP。第1條語句的意思就是授予RAM使用者查看EDAS中所有的App的許可權。
- 第2條是禁止語句,資源是ID為12345678的App,代表的意思為禁止查看ID為12345678的App。
以上兩條語句相結合,則代表:授予RAM使用者查看除ID為12345678的App之外的其它所有App的許可權。
RAM許可權管理文法還有條件運算式等多種功能。更多資訊,請參見權限原則概覽。
EDAS內建許可權和RAM許可權的映射關係
EDAS內建許可權與RAM許可權並不完全符合,因此是無法等效替換的。EDAS提供了權限原則轉換功能,可將EDAS內建許可權轉換為盡量一致的RAM許可權。其中,子帳號擁有的EDAS的資源(應用和叢集)預設會賦給RAM的所有許可權點使用。
EDAS內建許可權 | RAM許可權 | RAM資源 |
Super Admin(All privileges) | edas:* | acs:edas:*:*:* |
代理主帳號 | edas:ManageSystem | acs:edas:*:*:* |
系統管理-動作記錄 | edas:ReadOperationLog | acs:edas:*:*:* |
應用管理-編輯微服務空間 | edas:ManageNamespace | acs:edas:*:*:namespace/${namespaceId} |
應用管理-查詢微服務空間 | edas:ReadNamespace | acs:edas:*:*:namespace/${namespaceId} |
資源管理-建立叢集 | edas:CreateCluster | acs:edas:*:*:namespace/* |
資源管理-查看叢集 | edas:ReadCluster | acs:edas:*:*:namespace/*/cluster/${clusterId} |
資源管理-管理和刪除叢集 | edas:ReadCluster edas:ManageCluster | acs:edas:*:*:namespace/*/cluster/${clusterId} |
應用管理-建立應用 | edas:CreateApplication | acs:edas:*:*:namespace/* |
應用管理-部署、啟動、擴容和刪除應用 | edas:ManageApplication edas:ReadApplication | acs:edas:*:*:namespace/*/application/${applicationId} |
應用管理-查看應用資訊 | edas:ReadApplication | acs:edas:*:*:namespace/*/application/${applicationId} |
應用管理-配置容器和編輯應用JVM參數 | edas:ConfigApplication edas:ReadApplication | acs:edas:*:*:namespace/*/application/${applicationId} |
應用管理-設定日誌路徑 | edas:ManageAppLog edas:ReadApplication | acs:edas:*:*:namespace/*/application/${applicationId} |
ECS代購 | edas:ECSPurchase | acs:edas:*:*:* |
SLB代購 | edas:SLBPurchase | acs:edas:*:*:* |
SLS代購 | edas:SLSPurchase | acs:edas:*:*:* |