Serverless 應用引擎 SAE(Serverless App Engine)的許可權管理通過阿里雲的存取控制RAM(Resource Access Management)實現,避免多使用者共用阿里雲帳號密碼或存取金鑰(AccessKey ID和AccessKey Secret),從而降低安全風險。本文介紹如何基於RAM在SAE中建立權限原則以及進行授權配置。
前提條件
RAM權限原則
許可權指在某種條件下允許或拒絕對某些資源執行某些操作;權限原則是用文法結構描述的一組許可權的集合,可以精確地描述被授權的資源集、操作集以及授權條件。權限原則是描述許可權集的一種簡單語言規範。
在RAM中,權限原則是一種資源實體。SAE支援以下權限原則。
系統權限原則:統一由阿里雲建立,您只能使用不能修改,策略的版本更新由阿里雲維護,適用於粗粒度地控制RAM使用者權限。
自訂權限原則:您可以自主建立、更新和刪除,策略的版本更新由您自己維護,適用於細粒度地控制RAM使用者權限。
系統策略
當您首次以RAM使用者的身份登入SAE控制台時,為了獲得SAE產品完整的功能體驗,SAE會彈出歡迎使用Serverless應用引擎SAE對話方塊,提示您需要通過主帳號在RAM控制台為子帳號授權以下許可權:
權限原則名稱 | 說明 |
AliyunSAEFullAccess | 管理SAE的許可權,授權後才能執行應用管理相關的操作。 |
AliyunSLBReadOnlyAccess | 唯讀訪問SLB的許可權,授權後才能使用SLB的相關功能。 |
AliyunACMFullAccess | 管理ACM的許可權,授權後才能使用SAE內建的分布式組態管理的功能。 |
AliyunECSReadOnlyAccess | 唯讀ECS的許可權,授權後才能在建立應用時選擇已有的安全性群組列表。 |
AliyunOOSReadOnlyAccess | 唯讀OOS的許可權,授權後才能使用SAE的批量定時啟停應用的功能。 |
AliyunBSSReadOnlyAccess | 唯讀BSS的許可權,授權後才能在SAE概覽頁查看購買的資源套件的餘量。 |
AliyunARMSReadOnlyAccess | 唯讀ARMS的許可權,授權後才能使用SAE內建的應用監控管理功能。 |
AliyunRAMReadOnlyAccess | 唯讀RAM的許可權,授權後才能查詢RAM使用者擁有的許可權列表,提示需要配置的許可權。 |
AliyunCloudMonitorReadOnlyAccess | 唯讀CloudMonitor的許可權,授權後才能使用SAE內建的基礎監控功能。 |
AliyunContainerRegistryReadOnlyAccess | 唯讀Container Registry的許可權,授權後才能在SAE應用部署鏡像時,選擇Container Registry企業版。 |
AliyunALBReadOnlyAccess | 唯讀訪問應用型負載平衡服務(ALB)的許可權。 |
AliyunYundunCertReadOnlyAccess | 唯讀訪問Apsara Stack Security認證服務的許可權。 |
AliyunEventBridgeReadOnlyAccess | 唯讀EB的許可權,授權後才能使用建立更新Job的功能。 |
AliyunSAEFullAccess表示擁有對SAE所有資源的所有操作許可權。如果您需要限制RAM使用者擁有更細粒度的許可權,例如命名空間層級、應用層級和關聯產品等,請參見自訂策略。
自訂策略
如果系統策略無法滿足需求,您可以通過建立自訂策略實現更細粒度的許可權管理。
SAE許可權助手能夠協助您對SAE的許可權進行可視化配置,產生對應的許可權語句,無需手動編輯自訂指令碼,並通過RAM控制台建立相應的自訂策略並授權給RAM使用者。
鑒權規則
資源描述如下。
資源類型 | 授權策略中的資源描述 |
application |
|
參數說明如下。
參數 | 說明 |
$regionid | 地區ID,可用 |
$accountid | 雲帳號數字ID,可用 |
$namespaceid | 命名空間ID,其中由於預設命名空間ID為空白,採用 說明 命名空間ID僅允許輸入小寫英文字母或數字。 |
$appid | 應用ID,可用 |
樣本如下。
以華東2(上海)地區為例。
命名空間ID為test,應用ID為0c815215-46a1-46a2-ba1e-0102a740****的資源描述。
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****命名空間(預設)的資源描述。
acs:sae:cn-shanghai:*:application/_default/*
權限原則樣本
情境一:命名空間層級的授權配置
情境描述:授權產品讀許可權和特定命名空間及所屬應用寫入權限。
例如允許使用RAM使用者操作預設命名空間和命名空間ID為test的命名空間及其所屬應用的資源。
Resource
Action
描述
acs:sae:cn-shanghai:*
sae:Query*
名稱以Query開頭的API可以對華東2(上海)地區下所有相關資源進行操作。
sae:List*
名稱以List開頭的API可以對華東2(上海)地區下所有相關資源進行操作。
sae:Describe*
名稱以Describe開頭的API可以對華東2(上海)地區下所有相關資源進行操作。
sae:*Ingress*
名稱中包含Ingress的API可以對華東2(上海)地區下所有相關資源進行操作。
sae:*ChangeOrder*
名稱中包含ChangeOrder的API可以對華東2(上海)地區下所有相關資源進行操作。
sae:*Pipeline*
名稱中包含Pipeline的API可以對華東2(上海)地區下所有相關資源進行操作。
acs:sae:cn-shanghai:*:application/test/*
sae:*
可以對華東2(上海)地區下命名空間ID為test的命名空間與所有應用資源進行操作。
{ "Version": "1", "Statement": [ { "Action": [ "sae:Query*", "sae:List*", "sae:Describe*", "sae:*Ingress*", "sae:*ChangeOrder*", "sae:*Pipeline*" ], "Resource": "acs:sae:cn-shanghai:*:*", "Effect": "Allow" }, { "Action": [ "sae:*" ], "Resource": [ "acs:sae:cn-shanghai:*:application/test/*" ], "Effect": "Allow" } ] }情境二:應用層級的授權配置
情境描述:授權產品讀許可權和特定應用寫入權限。
例如允許使用RAM使用者操作如下應用。
應用
命名空間
應用ID
應用1
test
0c815215-46a1-46a2-ba1e-102a740****
應用2
預設
e468a92b-1529-4d20-8ab1-9d1595dc****
Resource
Action
描述
acs:sae:cn-shanghai:*:*
sae:Query*
名稱以Query開頭的API可以對華東2(上海)地區下所有命名空間與應用資源進行操作。
sae:List*
名稱以List開頭的API可以對華東2(上海)地區下所有命名空間與應用資源進行操作。
sae:Describe*
名稱以Describe開頭的API可以對華東2(上海)地區下所有命名空間與應用資源進行操作。
sae:*Ingress*
名稱中包含Ingress的API可以對華東2(上海)地區下所有命名空間與應用資源進行操作。
sae:*ChangeOrder*
名稱中包含ChangeOrder的API可以對華東2(上海)地區下所有命名空間與應用資源進行操作。
sae:*Pipeline*
名稱中包含Pipeline的API可以對華東2(上海)地區下所有命名空間與應用資源進行操作。
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****
sae:*
可以對華東2(上海)地區下命名空間ID為test的命名空間與應用1的所有資源進行操作。
acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc****
可以對華東2(上海)地區下預設命名空間與應用2的所有資源進行操作。
{ "Version": "1", "Statement": [ { "Action": [ "sae:Query*", "sae:List*", "sae:Describe*", "sae:*Ingress*", "sae:*ChangeOrder*", "sae:*Pipeline*" ], "Resource": "acs:sae:cn-shanghai:*:*", "Effect": "Allow" }, { "Action": [ "sae:*" ], "Resource": [ "acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****", "acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc****" ], "Effect": "Allow" } ] }情境三:與SAE相關聯雲產品授權
由於業務需要,應用在SAE運行時會調用類似ECS、SLB、ARMS等其他雲產品的業務介面,因此RAM授權時應對相關產品的許可權進行配置。例如添加唯讀訪問ECS的許可權(AliyunECSReadOnlyAccess)、唯讀訪問SLB的許可權(AliyunSLBReadOnlyAccess)和唯讀訪問ARMS的許可權(AliyunARMSReadOnlyAccess)。