全部產品
Search
文件中心

:權限原則和樣本

更新時間:Feb 22, 2025

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

acs:sae:${regionid}:${accountid}:application/${namespaceid}/${appid}}

參數說明如下。

參數

說明

$regionid

地區ID,可用*代替。

$accountid

雲帳號數字ID,可用*代替。

$namespaceid

命名空間ID,其中由於預設命名空間ID為空白,採用_default進行轉義。

說明

命名空間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)。