權(quán)限策略和示例
Serverless 應(yīng)用引擎 SAE(Serverless App Engine)的權(quán)限管理通過阿里云的訪問控制RAM(Resource Access Management)實(shí)現(xiàn),避免多用戶共享阿里云賬號(hào)密碼或訪問密鑰(AccessKey ID和AccessKey Secret),從而降低安全風(fēng)險(xiǎn)。本文介紹如何基于RAM在SAE中創(chuàng)建權(quán)限策略以及進(jìn)行授權(quán)配置。
前提條件
了解權(quán)限策略語言的基本結(jié)構(gòu)和語法。具體信息,請(qǐng)參見權(quán)限策略語法和結(jié)構(gòu)和權(quán)限策略基本元素。
RAM權(quán)限策略
權(quán)限指在某種條件下允許或拒絕對(duì)某些資源執(zhí)行某些操作;權(quán)限策略是用語法結(jié)構(gòu)描述的一組權(quán)限的集合,可以精確地描述被授權(quán)的資源集、操作集以及授權(quán)條件。權(quán)限策略是描述權(quán)限集的一種簡(jiǎn)單語言規(guī)范。
在RAM中,權(quán)限策略是一種資源實(shí)體。SAE支持以下權(quán)限策略。
系統(tǒng)權(quán)限策略:統(tǒng)一由阿里云創(chuàng)建,您只能使用不能修改,策略的版本更新由阿里云維護(hù),適用于粗粒度地控制RAM用戶權(quán)限。
自定義權(quán)限策略:您可以自主創(chuàng)建、更新和刪除,策略的版本更新由您自己維護(hù),適用于細(xì)粒度地控制RAM用戶權(quán)限。
系統(tǒng)策略
當(dāng)您首次以RAM用戶的身份登錄SAE控制臺(tái)時(shí),SAE會(huì)彈出歡迎使用Serverless應(yīng)用引擎SAE對(duì)話框,提示您需要為RAM用戶授權(quán),使RAM用戶可以訪問相應(yīng)的阿里云資源。
您需要為RAM用戶授予以下系統(tǒng)策略。
權(quán)限策略名稱 | 說明 |
AliyunSAEFullAccess | 管理SAE的權(quán)限,授權(quán)后才能執(zhí)行應(yīng)用管理相關(guān)的操作。若不需要SAE Full權(quán)限,可以通過SAE權(quán)限助手進(jìn)行細(xì)粒度定制化權(quán)限設(shè)置。 |
AliyunSLBReadOnlyAccess | 只讀訪問SLB的權(quán)限,授權(quán)后才能使用SLB的相關(guān)功能。 |
AliyunACMFullAccess | 管理ACM的權(quán)限,授權(quán)后才能使用SAE內(nèi)置的分布式配置管理的功能。 |
AliyunECSReadOnlyAccess | 只讀ECS的權(quán)限,授權(quán)后才能在創(chuàng)建應(yīng)用時(shí)選擇已有的安全組列表。 |
AliyunOOSReadOnlyAccess | 只讀OOS的權(quán)限,授權(quán)后才能使用SAE的批量定時(shí)啟停應(yīng)用的功能。 |
AliyunBSSReadOnlyAccess | 只讀BSS的權(quán)限,授權(quán)后才能在SAE概覽頁(yè)查看購(gòu)買的資源包的余量。 |
AliyunARMSReadOnlyAccess | 只讀ARMS的權(quán)限,授權(quán)后才能使用SAE內(nèi)置的應(yīng)用監(jiān)控管理功能。 |
AliyunRAMReadOnlyAccess | 只讀RAM的權(quán)限,授權(quán)后才能查詢RAM用戶擁有的權(quán)限列表,提示需要配置的權(quán)限。 |
AliyunCloudMonitorReadOnlyAccess | 只讀云監(jiān)控的權(quán)限,授權(quán)后才能使用SAE內(nèi)置的基礎(chǔ)監(jiān)控功能。 |
AliyunContainerRegistryReadOnlyAccess | 只讀容器鏡像服務(wù)的權(quán)限,授權(quán)后才能在SAE應(yīng)用部署鏡像時(shí),選擇容器鏡像服務(wù)企業(yè)版。 |
AliyunALBReadOnlyAccess | 只讀訪問應(yīng)用型負(fù)載均衡服務(wù)(ALB)的權(quán)限。 |
AliyunYundunCertReadOnlyAccess | 只讀訪問云盾證書服務(wù)的權(quán)限。 |
AliyunEventBridgeReadOnlyAccess | 只讀EB的權(quán)限,授權(quán)后才能使用創(chuàng)建更新Job的功能。 |
AliyunSAEFullAccess表示擁有對(duì)SAE所有資源的所有操作權(quán)限。如果您需要限制RAM用戶擁有更細(xì)粒度的權(quán)限,例如命名空間級(jí)別、應(yīng)用級(jí)別和關(guān)聯(lián)產(chǎn)品等,請(qǐng)參見自定義策略。
自定義策略
如果系統(tǒng)策略無法滿足需求,您可以通過創(chuàng)建自定義策略實(shí)現(xiàn)更細(xì)粒度的權(quán)限管理。
SAE權(quán)限助手能夠協(xié)助您對(duì)SAE的權(quán)限進(jìn)行可視化配置,生成對(duì)應(yīng)的權(quán)限語句,無需手動(dòng)編輯自定義腳本,并通過RAM控制臺(tái)創(chuàng)建相應(yīng)的自定義策略并授權(quán)給RAM用戶。
鑒權(quán)規(guī)則
資源描述如下。
資源類型 | 授權(quán)策略中的資源描述 |
application |
|
參數(shù)說明如下。
參數(shù) | 說明 |
$regionid | 地域ID,可用 |
$accountid | 云賬號(hào)數(shù)字ID,可用 |
$namespaceid | 命名空間ID,其中由于默認(rèn)命名空間ID為空,采用 說明 命名空間ID僅允許輸入小寫英文字母或數(shù)字。 |
$appid | 應(yīng)用ID,可用 |
示例如下。
以華東2(上海)地域?yàn)槔?/p>
命名空間ID為test,應(yīng)用ID為0c815215-46a1-46a2-ba1e-0102a740****的資源描述。
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****
命名空間(默認(rèn))的資源描述。
acs:sae:cn-shanghai:*:application/_default/*
權(quán)限策略示例
場(chǎng)景一:命名空間級(jí)別的授權(quán)配置
場(chǎng)景描述:授權(quán)產(chǎn)品讀權(quán)限和特定命名空間及所屬應(yīng)用寫權(quán)限。
例如允許使用RAM用戶操作默認(rèn)命名空間和命名空間ID為test的命名空間及其所屬應(yīng)用的資源。
Resource
Action
描述
acs:sae:cn-shanghai:*
sae:Query*
名稱以Query開頭的API可以對(duì)華東2(上海)地域下所有相關(guān)資源進(jìn)行操作。
sae:List*
名稱以List開頭的API可以對(duì)華東2(上海)地域下所有相關(guān)資源進(jìn)行操作。
sae:Describe*
名稱以Describe開頭的API可以對(duì)華東2(上海)地域下所有相關(guān)資源進(jìn)行操作。
sae:*Ingress*
名稱中包含Ingress的API可以對(duì)華東2(上海)地域下所有相關(guān)資源進(jìn)行操作。
sae:*ChangeOrder*
名稱中包含ChangeOrder的API可以對(duì)華東2(上海)地域下所有相關(guān)資源進(jìn)行操作。
sae:*Pipeline*
名稱中包含Pipeline的API可以對(duì)華東2(上海)地域下所有相關(guān)資源進(jìn)行操作。
acs:sae:cn-shanghai:*:application/test/*
sae:*
可以對(duì)華東2(上海)地域下命名空間ID為test的命名空間與所有應(yīng)用資源進(jìn)行操作。
{ "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" } ] }
場(chǎng)景二:應(yīng)用級(jí)別的授權(quán)配置
場(chǎng)景描述:授權(quán)產(chǎn)品讀權(quán)限和特定應(yīng)用寫權(quán)限。
例如允許使用RAM用戶操作如下應(yīng)用。
應(yīng)用
命名空間
應(yīng)用ID
應(yīng)用1
test
0c815215-46a1-46a2-ba1e-102a740****
應(yīng)用2
默認(rèn)
e468a92b-1529-4d20-8ab1-9d1595dc****
Resource
Action
描述
acs:sae:cn-shanghai:*:*
sae:Query*
名稱以Query開頭的API可以對(duì)華東2(上海)地域下所有命名空間與應(yīng)用資源進(jìn)行操作。
sae:List*
名稱以List開頭的API可以對(duì)華東2(上海)地域下所有命名空間與應(yīng)用資源進(jìn)行操作。
sae:Describe*
名稱以Describe開頭的API可以對(duì)華東2(上海)地域下所有命名空間與應(yīng)用資源進(jìn)行操作。
sae:*Ingress*
名稱中包含Ingress的API可以對(duì)華東2(上海)地域下所有命名空間與應(yīng)用資源進(jìn)行操作。
sae:*ChangeOrder*
名稱中包含ChangeOrder的API可以對(duì)華東2(上海)地域下所有命名空間與應(yīng)用資源進(jìn)行操作。
sae:*Pipeline*
名稱中包含Pipeline的API可以對(duì)華東2(上海)地域下所有命名空間與應(yīng)用資源進(jìn)行操作。
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****
sae:*
可以對(duì)華東2(上海)地域下命名空間ID為test的命名空間與應(yīng)用1的所有資源進(jìn)行操作。
acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc****
可以對(duì)華東2(上海)地域下默認(rèn)命名空間與應(yīng)用2的所有資源進(jìn)行操作。
{ "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" } ] }
場(chǎng)景三:與SAE相關(guān)聯(lián)云產(chǎn)品授權(quán)
由于業(yè)務(wù)需要,應(yīng)用在SAE運(yùn)行時(shí)會(huì)調(diào)用類似ECS、SLB、ARMS等其他云產(chǎn)品的業(yè)務(wù)接口,因此RAM授權(quán)時(shí)應(yīng)對(duì)相關(guān)產(chǎn)品的權(quán)限進(jìn)行配置。例如添加只讀訪問ECS的權(quán)限(AliyunECSReadOnlyAccess)、只讀訪問SLB的權(quán)限(AliyunSLBReadOnlyAccess)和只讀訪問ARMS的權(quán)限(AliyunARMSReadOnlyAccess)。