全部產品
Search
文件中心

Microservices Engine:微服務引擎MSE自訂權限原則參考

更新時間:Dec 11, 2024

如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹微服務引擎MSE使用自訂權限原則的情境和策略樣本。

什麼是自訂權限原則

在基於RAM的存取控制體系中,自訂權限原則是指在系統權限原則之外,您可以自主建立、更新和刪除的權限原則。自訂權限原則的版本更新需由您來維護。

  • 建立自訂權限原則後,需為RAM使用者、使用者組或RAM角色綁定權限原則,這些RAM身份才能獲得權限原則中指定的存取權限。

  • 已建立的權限原則支援刪除,但刪除前需確保該策略未被引用。如果該權限原則已被引用,您需要在該權限原則的引用記錄中移除授權。

  • 自訂權限原則支援版本控制,您可以按照RAM規定的版本管理機制來管理您建立的自訂權限原則版本。

操作文檔

通過可視化編輯模式建立自訂權限原則

  1. 使用Resource Access Management員登入RAM控制台

  2. 在左側導覽列,選擇許可權管理 > 權限原則

  3. 權限原則頁面,單擊建立權限原則

  4. 建立權限原則頁面,單擊可視化編輯頁簽。

  5. 配置權限原則,如下。

    1. 效果地區,選擇允許拒絕

    2. 服務地區,選擇雲端服務。

      說明

      支援可視化編輯模式的雲端服務以控制台介面顯示為準。

    3. 操作地區,選擇全部操作指定操作

      系統會根據您上一步選擇的雲端服務,自動篩選出可以配置的操作。如果您選擇了指定操作,您需要繼續選擇具體的操作。

    4. 資源地區,選擇全部資源指定資源

      系統會根據您上一步選擇的操作,自動篩選出可以配置的資源類型。如果您選擇了指定資源,您需要繼續單擊添加資源,配置具體的資源ARN。您可以使用匹配全部功能,快速選擇對應配置項的全部資源。

      說明

      為了權限原則的正常生效,對操作關聯的必要資源ARN標識了必要,強烈建議您配置該資源ARN。

    5. 條件地區,單擊添加條件,配置條件。

      條件包括阿里雲通用條件和服務級條件,系統會根據您前面配置的雲端服務和操作,自動篩選出可以配置的條件列表。您只需要選擇對應條件鍵配置具體內容。

    6. 單擊添加語句,重複上述步驟,配置多條權限原則語句。

  6. 檢查並最佳化權限原則內容。

    • 基礎權限原則最佳化

      系統會對您添加的權限原則語句自動進行基礎最佳化。基礎權限原則最佳化會完成以下任務:

      • 刪除不必要的條件。

      • 刪除不必要的數組。

    • 可選:進階權限原則最佳化

      您可以將滑鼠懸浮在可選:進階策略最佳化上,單擊執行,對權限原則內容進行進階最佳化。進階權限原則最佳化功能會完成以下任務:

      • 拆分不相容操作的資源或條件。

      • 收縮資源到更小範圍。

      • 去重或合并語句。

  7. 輸入權限原則名稱備忘

  8. 單擊確定

配置註冊中心常用自訂授權範例

  • 授予使用者某些執行個體的唯讀服務的許可權。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:QueryNacosNaming"
                ],
                "Resource": [
                    "acs:mse:*:*:instance/${instanceId1}",
                    "acs:mse:*:*:instance/${instanceId2}"
                ],
                "Effect": "Allow"
            }
        ]
    }
  • 授予使用者某些執行個體讀取和修改服務的許可權。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:QueryNacosNaming",
                    "mse:UpdateNacosNaming"
                ],
                "Resource": [
                    "acs:mse:*:*:instance/${instanceId1}",
                    "acs:mse:*:*:instance/${instanceId2}"
                ],
                "Effect": "Allow"
            }
        ]
    }
    說明

    ${instanceId1}和${instanceId2}代表的是註冊中心執行個體ID。

  • 授予使用者只能讀取某個執行個體中的某個命名空間服務的許可權。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "mse:QueryNacosNaming",
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}"
            }
        ],
        "Version": "1"
    }
  • 授予使用者能讀取和修改某個執行個體中某個命名空間下的${group}服務的許可權。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mse:QueryNacosNaming",
                    "mse:UpdateNacosNaming"
                ],
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}"
            }
        ],
        "Version": "1"
    }
  • 授予使用者只能讀取某個${group}下的${serviceName}服務的許可權。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "mse:QueryNacosNaming",
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}"
            }
        ],
        "Version": "1"
    }
  • 授予使用者讀取和修改某個${group}下的${serviceName}服務的許可權。

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mse:QueryNacosNaming",
                    "mse:UpdateNacosNaming"
                ],
                "Resource": "acs:mse:*:*:instance/${instance_id}/${namespaceId}/${group}/naming/${serviceName}"
            }
        ],
        "Version": "1"
    }

微服務治理常用自訂授權範例

所有應用的唯讀許可權

為了方便企業內同學查看應用的關鍵資訊,可以考慮授權所有應用的唯讀許可權。

例如,使用阿里雲帳號授予RAM使用者具備當前阿里雲帳號下的所有微服務治理應用的唯讀許可權。

對應權限原則如下:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "mse:QueryNamespace",
        "mse:GetApplicationListWithMetircs",
        "mse:ListNamespaces",
        "mse:GetEventFilterOptions",
        "mse:ListEventRecords",
        "mse:GetEventDetail",
        "mse:FetchLogConfig",
        "mse:QueryBusinessLocations",
        "mse:GetApplicationInstanceList",
        "mse:listGrayTag",
        "mse:QueryServiceDetailWithMetrics",
        "mse:GetEventDetail",
        "mse:ListEventsPage",
        "mse:ListEventsByType",
        "mse:GetApplicationTagList"
      ],
      "Resource": "acs:mse:*:*:*"
    },
    {
      "Effect": "Allow",
      "Action": "mse:GetApplicationList",
      "Resource": "acs:mse:*:*:namespace/${ns}"
    }
  ]
}

某個應用的全部操作許可權

作為企業內部某個應用的負責人,您將獲得對該應用的所有操作許可權,同時您的許可權將嚴格限定在您管理的應用範圍內。

例如,使用阿里雲帳號授予RAM使用者以下許可權:

  • RAM使用者具備當前阿里雲帳號下的所有微服務治理應用的唯讀許可權。

  • RAM使用者具備指定的微服務治理應用的唯讀許可權。

對應權限原則如下:

{
  "Version": "1",
  "Statement": [
    // 對特定微服務治理應用具有所有許可權
    {
      "Effect": "Allow",
      "Action": "mse:*",
      "Resource": "acs:mse:*:*:namespace/${ns}/application/${appName}"
    },
    // 下面為對所有微服務治理應用的唯讀許可權
    {
      "Effect": "Allow",
      "Action": [
        "mse:QueryNamespace",
        "mse:GetApplicationListWithMetircs",
        "mse:ListNamespaces",
        "mse:GetEventFilterOptions",
        "mse:ListEventRecords",
        "mse:GetEventDetail",
        "mse:FetchLogConfig",
        "mse:QueryBusinessLocations",
        "mse:GetApplicationInstanceList",
        "mse:listGrayTag",
        "mse:QueryServiceDetailWithMetrics",
        "mse:GetEventDetail",
        "mse:ListEventsPage",
        "mse:ListEventsByType",
        "mse:GetApplicationTagList"
      ],
      "Resource": "acs:mse:*:*:*"
    },
    {
      "Effect": "Allow",
      "Action": "mse:GetApplicationList",
      "Resource": "acs:mse:*:*:namespace/${ns}"
    }
  ]

某個命名空間下的全部操作許可權

作為企業內部的測試人員,您將獲得對測試環境(測試命名空間)所有應用的操作許可權,同時您的許可權將嚴格限定在測試環境(測試命名空間)內。

例如,使用阿里雲帳號授予RAM使用者以下許可權:

  • RAM使用者具備當前阿里雲帳號下的所有微服務治理應用的唯讀許可權。

  • RAM使用者具備指定的微服務治理命名空間的讀寫權限。

對應權限原則如下:

{
"Version": "1",
    "Statement": [
        // 對特定微服務治理命名空間具有所有許可權
        {
            "Effect": "Allow",
            "Action": "mse:*",
            "Resource": "acs:mse:*:*:namespace/${ns}/application/*"
        },
        // 下面為對所有微服務治理應用的唯讀許可權
        {
            "Effect": "Allow",
            "Action": [
                "mse:QueryNamespace",
                "mse:GetApplicationListWithMetircs",
                "mse:ListNamespaces",
                "mse:GetEventFilterOptions",
                "mse:ListEventRecords",
                "mse:GetEventDetail",
                "mse:FetchLogConfig",
                "mse:QueryBusinessLocations",
                "mse:GetApplicationInstanceList",
                "mse:listGrayTag",
                "mse:QueryServiceDetailWithMetrics",
                "mse:GetEventDetail",
                "mse:ListEventsPage",
                "mse:ListEventsByType",
                "mse:GetApplicationTagList",
                "mse:QueryAllSwimmingLaneGroup",
                "mse:QueryAllSwimmingLane",
                "mse:ListAppBySwimmingLaneGroupTags",
                "mse:ListAppBySwimmingLaneGroupTag",
                "mse:QuerySwimmingLaneById",
                "mse:GetTagsBySwimmingLaneGroupId",
                "mse:ListSwimmingLaneGateway",
                "mse:ListSwimmingLaneGatewayRoute",
                "mse:ListAuthPolicy",
                "mse:GetServiceList",
                "mse:GetServiceListPage"
            ],
            "Resource": "acs:mse:*:*:*"
        },
        // 對特定微服務治理命名空間具有所有許可權
        {
            "Effect": "Allow",
            "Action": [
                "mse:GetApplicationList",
                "mse:CreateOrUpdateSwimmingLaneGroup",
                "mse:CreateOrUpdateSwimmingLane",
                "mse:DeleteSwimmingLaneGroup",
                "mse:DeleteSwimmingLaneGroup",
                "mse:DeleteSwimmingLane"
            ],
            "Resource": "acs:mse:*:*:namespace/${ns}"
        }
    ]
}

雲原生網關常用自訂授權範例

所有資源

若您需要授權RAM使用者/角色操作帳號下所有的雲原生網關執行個體,可以直接為RAM使用者/角色添加如下系統權限原則:

  • 唯讀:AliyunMSEReadOnlyAccess

  • 讀寫:AliyunMSEFullAccess

指定網關資源

若您要授權RAM使用者/角色操作指定的網關執行個體,可以為RAM使用者/角色添加網關資源級許可權。

  • 樣本一:授予RAM使用者對雲原生網關執行個體gw-8090caa2a3ab447a8bc5fdf3********的唯讀許可權。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:Query*",
                    "mse:List*",
                    "mse:Get*",
                    "mse:Select*",
                    "mse:Pull*",
                    "mse:GatewayBlackWhite*",
                    "mse:GatewayHealthCheckList",
                    "mse:GatewayQueryMonitor",
                    "mse:UploadWasmFile"
                ],
                "Resource": "acs:mse:*:*:instance/gw-8090caa2a3ab447a8bc5fdf3********",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "mse:QueryDefaultAlertStatus",
                    "mse:ListGatewayZone",
                    "mse:ListUpgradableGatewayVersions",
                    "mse:ListTagResources",
                    "mse:ListGatewayIngressMigrateTask",
                    "mse:ListEventRecords",
                    "mse:GetEventFilterOptions",
                    "mse:GetEventDetail",
                    "mse:GetGatewaySelection",
                    "mse:GetGatewayAlarms",
                    "mse:GetGatewayMigrateNamespacedServices",
                    "mse:GetGatewayIngressMigrateTaskDetail",
                    "mse:GetPluginGuide",
                    "mse:GetRegExpCheck",
                    "mse:GetRegExpTest",
                    "mse:CheckPluginLua"
                ],
                "Resource": "acs:mse:*:*:*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "log:DescribeService",
                    "log:ListProject",
                    "log:GetProductDataCollection"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "arms:SearchContactGroup"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  • 樣本二:授予RAM使用者對雲原生網關執行個體gw-8090caa2a3ab447a8bc5fdf3********的讀寫權限。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "mse:*"
                ],
                "Resource": "acs:mse:*:*:instance/gw-8090caa2a3ab447a8bc5fdf3********",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "mse:QueryDefaultAlertStatus",
                    "mse:CreateDefaultAlert",
                    "mse:ListGatewayZone",
                    "mse:ListUpgradableGatewayVersions",
                    "mse:ListEventRecords",
                    "mse:GetEventFilterOptions",
                    "mse:GetEventDetail",
                    "mse:GetGatewaySelection",
                    "mse:GetGatewayAlarms",
                    "mse:GetGatewayMigrateNamespacedServices",
                    "mse:GetPluginGuide",
                    "mse:GetRegExpCheck",
                    "mse:GetRegExpTest",
                    "mse:CheckPluginLua",
                    "mse:*TagResources",
                    "mse:*CustomPlugin",
                    "mse:*GatewayIngressMigrateTask*"
                ],
                "Resource": "acs:mse:*:*:*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "log:DescribeService",
                    "log:ListProject",
                    "log:GetProductDataCollection",
                    "log:OpenProductDataCollection"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "arms:SearchContactGroup"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }

注意

以上許可權只包含了在MSE雲原生網關控制台操作的必要許可權。雲原生網關的部分能力依賴於其他雲產品,您可以根據其他雲產品的許可權配置文檔按需為您的RAM子帳號/角色配置許可權,從而使其可以完整地使用雲原生網關的所有功能。雲原生網關依賴的其他雲產品和對應的模組如下:

雲產品

雲原生網關模組

自訂許可權配置參考文檔

SLS

  • 雲原生網關 - 網關列表 - 網關詳情 - 觀測分析 - 日誌中心

  • 雲原生網關 - 網關列表 - 網關詳情 - 外掛程式市場 - 外掛程式詳情 - 外掛程式日誌

Log Service自訂權限原則參考

ARMS

  • 雲原生網關 - 網關列表 - 網關詳情 - 觀測分析 - 鏈路追蹤

  • 雲原生網關 - 警示管理

應用即時監控服務系統權限原則參考

授權資訊參考

授權資訊