本文介紹在RAM中與EDAS相關的授權權限細分規則和權限策略。

權限策略中Resource的變量說明

權限策略聲明中Resource包含的變量說明如下:

  • $regionid:所在地域的ID,例如cn-shanghai。具體取值,請參見地域和可用區
  • $namespace:微服務空間租戶ID,如下圖所示,方框內為微服務空間的租戶ID。

    可登錄EDAS控制臺,在左側導航欄,選擇資源管理 > 微服務空間,進入微服務空間頁面獲取。

    查看命名空間租戶ID
  • $clusterId:集群ID,例如8c349f69-505c-436f-8dc7-**********,如下圖所示,方框內為集群ID。

    可登錄EDAS控制臺,在左側導航欄,選擇資源管理 > EDAS ECS集群,單擊集群ID/名稱進入集群詳情頁面獲取。

    查看集群ID
  • $applicationId:應用ID,如ec8e38a3-3dca-47a7-b6f9-5**********,如下圖所示,方框內為應用ID。

    可登錄EDAS控制臺,在左側導航欄,選擇應用管理 > 應用列表,單擊應用名稱,進入應用詳情頁面的基本信息頁簽獲取。

    應用詳情

權限細分規則

本章節介紹EDAS內置權限和RAM中權限策略的對應關系。

管理微服務空間

表 1. 管理微服務空間
Code Description Dependency action Resource
1.1 創建微服務空間 edas:CreateNamespace acs:edas:$regionid:$accountid:namespace/*
1.2 刪除微服務空間 edas:ReadNamespace acs:edas:$regionid:$accountid:namespace/$namespace
edas:DeleteNamespace
1.4 編輯微服務空間 edas:ManageNamespace acs:edas:$regionid:$accountid:namespace/$namespace
edas:ReadNamespace
1.5 查看微服務空間 edas:ReadNamespace acs:edas:$regionid:$accountid:namespace/$namespace
表 2. 管理集群
Code Description Dependency action Resource
2.1 創建集群 edas:CreateCluster acs:edas:$regionid:$accountid:namespace/$namespace/cluster/*
2.2 刪除集群 edas:ReadCluster acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId
edas:DeleteCluster
2.4 管理集群 edas:ReadCluster acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId
edas:ManageCluster
2.3 查看集群 edas:ReadCluster acs:edas:$regionid:$accountid:namespace/$namespace/cluster/$clusterId
表 3. 管理應用
Code Description Dependency action Resource
3.1 創建應用 edas:CreateApplication acs:edas:$regionid:$accountid:namespace/$namespace/application/*
3.2 刪除應用 edas:ReadApplication acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
edas:DeleteApplication
3.3 查看應用 edas:ReadApplication acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
3.4 管理應用 edas:ManageApplication acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
edas:ReadApplication
3.5 配置應用 edas:ConfigApplication acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
edas:ReadApplication
3.6 管理日志 edas:ReadApplication acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
edas:ManageAppLog
表 4. 微服務管理
Code Description Dependency action Resource
4.1 查看服務 edas:ReadService acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
4.2 測試服務 edas:TestService acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
4.3 管理服務 edas:ReadService acs:edas:$regionid:$accountid:namespace/$namespace/application/$applicationId
edas:ManageService
表 5. 配置管理
Code Description Dependency action Resource
5.1 查看配置 acms:R acs:acms:$regionid:$accountid:cfg/$namespace/$groupId/$configId
5.2 管理配置 acms:* acs:acms:$regionid:$accountid:cfg/$namespace/$groupId/$configId
表 6. 系統管理
Code Description Dependency action Resource
6.1 EDAS系統管理 edas:ManageSystem acs:edas:$regionid:$accountid:*
6.2 查看操作日志 edas:ReadOperationLog acs:edas:$regionid:$accountid:*
6.3 系統運維 edas:ManageOperation acs:edas:$regionid:$accountid:*
6.4 ECS代購 edas:ECSPurchase acs:edas:*:*:*
6.5 SLB代購 edas:SLBPurchase acs:edas:*:*:*
6.6 SLS代購 edas:SLSPurchase acs:edas:*:*:*
表 7. EDAS商用相關功能
Code Description Dependency action Resource
7 EDAS商用相關功能 edas:ManageCommercialization acs:edas:$regionid:$accountid:*

集群授權

跟集群使用相關的場景授權說明如下:

創建集群

重要 創建集群時,Resourcecluster/后面的必須是星號(*)。
{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:CreateCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"],
       "Effect": "Allow"
      }
   ]
 }

查看集群詳情

集群相關的只讀權限,例如查看單個集群詳情、集群下的實例或應用等信息。
說明 只有通過給RAM用戶授予資源組后,RAM用戶才能在集群列表中查看到被授權的集群。
{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
       "Effect": "Allow"
      }
   ]
 }

管理集群

包括創建集群、導入實例到集群、編輯集群信息和刪除集群等。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ManageCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
       "Effect": "Allow"
      }
   ]
 }
下面以兩個示例場景說明如何配置集群管理的權限策略。
  • 場景一:授權集群的管理權限,但不允許創建集群。
    {
       "Version": "1",
       "Statement": [
         {
           "Action": ["edas:ManageCluster"],
           "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
           "Effect": "Allow"
         },
         {
           "Action": ["edas:CreateCluster"],
           "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"],
           "Effect": "Deny"
          }
       ]
     }
    說明 其中$clusterId若配置為具體的值,則只能管理對應ID的集群;若配置為星號(*),則能管理指定微服務空間下的所有集群。
  • 場景二:授予集群的管理權限,但是不允許創建和刪除集群。
    {
       "Version": "1",
       "Statement": [
         {
           "Action": ["edas:ManageCluster"],
           "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
           "Effect": "Allow"
         },
         {
           "Action": ["edas:CreateCluster","edas:DeleteCluster"],
           "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/*"],
           "Effect": "Deny"
          }
       ]
     }

刪除集群

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadCluster","edas:DeleteCluster"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"],
       "Effect": "Allow"
      }
   ]
 }

微服務空間

與微服務空間使用相關的場景授權說明如下:

創建微服務空間

重要 創建微服務空間時,Resourcenamespace/后面的必須是星號(*),否則鑒權失敗。
{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:CreateNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/*"],
       "Effect": "Allow"
      }
   ]
 }

查看微服務空間

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
       "Effect": "Allow"
      }
   ]
 }

管理微服務空間

當編輯或修改微服務空間名稱時,需授予管理微服務空間權限。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ManageNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
       "Effect": "Allow"
      }
   ]
 }

刪除微服務空間

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadNamespace","edas:DeleteNamespace"],
       "Resource": ["acs:edas:$regionid:*:namespace/$namespace"],
       "Effect": "Allow"
      }
   ]
 }

資源代購

為增強企業級用戶的權限管理能力,EDAS支持資源代購的RAM管理權限。主要涉及的資源包含ECS、SLB和SLS。

資源代購的場景授權說明如下:

重要
  • 所有的代購類權限策略配置中,resource必須是"acs:edas:*:*:*",暫不支持更細粒度配置。
  • 資源代購權限策略只適用于RAM用戶。

ECS代購的權限

  • 使用范圍:
    • 在ECS集群創建后,添加購買ECS。
    • 在ECS集群內創建應用時代購ECS。
    • 在ECS集群內擴容應用時代購ECS。
  • 策略示例:
    {
      "Version": "1",
      "Statement": [    
        {
          "Effect": "Allow",
          "Action": [
            "edas:ECSPurchase"
          ],
          "Resource": [
            "acs:edas:*:*:*"
          ]
        }
      ]
    }

SLB代購的權限

  • 使用范圍:為應用綁定負載均衡時代購SLB。
  • 策略示例:
    {
      "Version": "1",
      "Statement": [    
        {
          "Effect": "Allow",
          "Action": [
            "edas:SLBPurchase"
          ],
          "Resource": [
            "acs:edas:*:*:*"
          ]
        }
      ]
    }

SLS代購的權限

  • 使用范圍:為應用代購日志服務SLS。
  • 策略示例:
    {
      "Version": "1",
      "Statement": [    
        {
          "Effect": "Allow",
          "Action": [
            "edas:SLSPurchase"
          ],
          "Resource": [
            "acs:edas:*:*:*"
          ]
        }
      ]
    }

應用管理

與應用相關的場景授權說明如下:

單個應用

  • 管理應用:使用RAM用戶可以查看該應用的基本信息、管理配置和應用日志,但不允許創建和刪除應用。
    {
        "Statement": [
          {
            "Action": [
              "edas:*Application"
            ],
            "Effect": "Allow",
            "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"]
          },
          {
            "Action": [
              "edas:DeleteApplication"
            ],
            "Resource":["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"],
            "Effect": "Deny"
          },
          {
            "Action": [
              "edas:CreateApplication"
            ],
            "Resource":["acs:edas:$regionid:*:namespace/$namespace/application/*"],
            "Effect": "Deny"
          }
        ],
        "Version": "1"
    }
  • 創建應用
    重要 創建應用時使用的是所在集群內的實例,因此還需要授予查看集群的權限。
    {
      "Statement": [
        {
          "Action": [
            "edas:CreateApplication",
            "edas:ReadCluster"
          ],
          "Effect": "Allow",
          "Resource": [
                  "acs:edas:$regionid:*:namespace/$namespace/application/*",
              "acs:edas:$regionid:*:namespace/$namespace/cluster/$clusterId"
          ]
        }
      ],
      "Version": "1"
    }
  • 刪除應用
    重要 刪除應用時還需要授予查看應用的權限,這樣才能找到需要刪除的應用。
    {
      "Statement": [
        {
          "Action": [
            "edas:DeleteApplication",
            "edas:ReadApplication"
          ],
          "Effect": "Allow",
          "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"]
        }
      ],
      "Version": "1"
    }
  • 日志管理
    重要 管理應用日志時還需要授予查看應用的權限,這樣才能找到需要日志管理的應用。
    {
      "Statement": [
        {
          "Action": [
            "edas:ReadApplication",
            "edas:ManageAppLog"
          ],
          "Effect": "Allow",
          "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"]
        }
      ],
      "Version": "1"
    }
  • 設置應用:應用的設置包括對應用端口、Tomcat context、負載均衡、健康檢查、JVM參數和同可用區優先等功能的設置。
    重要 設置應用時還需要授予查看應用的權限。
    {
      "Statement": [
        {
          "Action": [
            "edas:ReadApplication",
            "edas:ConfigApplication"
          ],
          "Effect": "Allow",
          "Resource": ["acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"]
        },
      ],
      "Version": "1"
    }

多個應用

  • 查看應用:授權查看某個地域內的應用列表。
    說明 一個地域下包括多個微服務空間,查看應用可以查看該某地域的所有微服務空間內的應用列表。
    {
        "Statement": [
          {
            "Action": [
              "edas:ReadApplication"
            ],
            "Effect": "Allow",
            "Resource": ["acs:edas:$regionid:*:namespace/*/application/*"]
          }
        ],
        "Version": "1"
    }
  • 查看應用:授權查看某命令空間內的應用列表。
    {
        "Statement": [
          {
            "Action": [
              "edas:*Application",
              "edas:ReadCluster"
            ],
            "Effect": "Allow",
            "Resource": [
                "acs:edas:$regionid:*:namespace/$namespace/application/*",
              "acs:edas:$regionid:*:namespace/$namespace/cluster/*"
             ]
          }
        ],
        "Version": "1"
    }

微服務管理

與微服務管理使用相關的場景授權說明如下:

查詢服務

說明 如果需查詢所有應用服務,您可將下述權限策略中的$applicationId替換為星號(*)。
{
    "Statement": [
      {
        "Action": [
          "edas:ReadService"
        ],
        "Effect": "Allow",
        "Resource": [    
            "acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
            ]
      }
    ],
    "Version": "1"
}

測試服務

說明 如果需測試所有微服務空間和應用服務,您可將下述權限策略中的$namespace$applicationId替換為星號(*)。
{
    "Statement": [
      {
        "Action": [
          "edas:TestService"
        ],
        "Effect": "Allow",
        "Resource": [
            "acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
            ]
      }
    ],
    "Version": "1"
}

服務鑒權

說明 如果需授權所有應用,您可將下述權限策略中的$applicationId替換為星號(*)。
{
    "Statement": [
      {
        "Action": [
          "edas:ManageService"
        ],
        "Effect": "Allow",
        "Resource": [
            "acs:edas:$regionid:*:namespace/$namespace/application/$applicationId"
        ]
      }
    ],
    "Version": "1"
}

離群實例摘除

重要 離群摘除會影響微服務空間下的相關應用,所以授權粒度為微服務空間。
{
    "Statement": [
      {
        "Action": [
          "edas:ManageService"
        ],
        "Effect": "Allow",
        "Resource": [
            "acs:edas:$regionid:*:namespace/$namespace"
        ]
      }
    ],
    "Version": "1"
}

配置管理

EDAS集成了ACM的配置管理能力。與配置管理相關的權限控制,請參見訪問權限控制

系統管理

系統管理包含管理RAM用戶、查看產品用量、查看操作日志等系統級的權限。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ManageSystem"],
       "Resource": ["acs:edas:*:*:*"],
       "Effect": "Allow"
      }
   ]
 }
說明 系統權限不涉及具體的資源,故權限策略中的Resource直接用acs:edas:*:*:*即可。

系統運維

系統運維包含查看操作日志、執行批量運維和管理資源組的權限。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ManageOperation"],
       "Resource": ["acs:edas:*:*:*"],
       "Effect": "Allow"
      }
   ]
 }

操作日志

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["edas:ReadOperationLog"],
       "Resource": ["acs:edas:*:*:*"],
       "Effect": "Allow"
      }
   ]
 }