本文以將單個命名空間授權給某個RAM用戶為例,介紹如何使用ACM的訪問權限控制功能。

遷移到MSE Nacos

ACM進入下線狀態(tài),所有配置管理相關的需求由MSE中的Nacos承接(ACM獨享版,更好的安全和穩(wěn)定性)。您需要在ACM控制臺導出配置,然后在MSE控制臺導入之前導出的配置即可完成遷移。具體操作,請參見將應用配置從ACM遷移到MSE Nacos

背景信息

以往,當一個RAM用戶(或角色)被授予AliyunACMFullAccess授權策略時,即擁有ACM的完全操作權限,包括對所有配置和所有命名空間的讀寫權限。由于RAM用戶之間的配置并未隔離,因誤操作或惡意操作造成的損失就可能會被放大,并造成嚴重后果。更重要的是,由于對所有授權用戶可見,數據庫賬號密碼等敏感配置面臨著泄露的安全風險。

現在,ACM提供了更細粒度的權限控制,您可以按需為用戶分配最小權限,達到為不同用戶(或角色)授予不同資源操作權限的目的。對應RAM的授權策略,可以分為操作(Action)維度和資源(Resource)維度。

操作(Action)

  • 讀:可以讀取Resource所指定范圍的配置,以及讀取命名空間基本信息,對應的RAM授權策略Action為acms:R
  • 寫:可以增加、刪除和修改Resource所指定范圍的配置,但無法增加、刪除和修改命名空間,對應的RAM授權策略Action為acms:W
  • 完全權限:可以讀寫Resource所指定范圍的配置,并讀取命名空間基本信息。當Resource為*時,也可以增加、刪除和修改命名空間,對應的RAM授權策略Action為acms:*

資源(Resource)

授權資源的定義規(guī)則為acs:${service-name}:${region-id}:${resource-owner-id}:${resource-type}/${namespace_id}/${resource-name}

  • 所有資源:對應的RAM授權策略Resource為*
  • 單個命名空間:例如命名空間為1ca01ca0-11b0-1e01-0df1-d1010101bc10,則對應的RAM授權策略Resource為*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10
  • 單個命名空間下的某個Group:例如命名空間為1ca01ca0-11b0-1e01-0df1-d1010101bc10,Group為DEFAULT_GROUP,則對應的RAM授權策略Resource為*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP
  • 單個命名空間下的某個Group的特定配置項:例如命名空間為1ca01ca0-11b0-1e01-0df1-d1010101bc10,Group為DEFAULT_GROUP,配置項的DataId為com.alibaba.acm.test,則對應的RAM授權策略Resource為*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP/com.alibaba.acm.test

步驟一:創(chuàng)建RAM自定義授權策略

  1. 登錄RAM控制臺
  2. 在左側導航欄的權限管理菜單下,單擊權限策略管理
  3. 授權策略管理頁面左上角單擊創(chuàng)建權限策略
  4. 新建自定義權限策略頁面,選擇配置模式腳本配置
  5. 策略內容輸入框內輸入自定義的授權策略名稱、備注和策略內容,并單擊確定
    例如,要為命名空間1ca01ca0-11b0-1e01-0df1-d1010101bc10配置讀寫權限,請在策略內容文本框中輸入以下內容:
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:*"
       ],
       "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10",
       "Effect": "Allow"
     }
    ]
    }
    說明 關于創(chuàng)建RAM自定義授權策略的詳細步驟,請參考創(chuàng)建自定義策略

步驟二:創(chuàng)建RAM用戶并授權

  1. 在左側導航欄,選擇身份管理 > 用戶
  2. 用戶頁面,單擊創(chuàng)建用戶
  3. 創(chuàng)建用戶頁面的用戶賬號信息區(qū)域,輸入登錄名稱顯示名稱
    說明 單擊添加用戶,可一次性創(chuàng)建多個RAM用戶。
  4. 訪問方式區(qū)域下,選擇編程訪問,然后單擊確定
    用戶信息頁面會顯示創(chuàng)建用戶的AccessKey IDAccessKeySecret,請記錄下來供后續(xù)步驟使用并妥善保管。
  5. 用戶頁面,單擊目標RAM用戶操作列的添加權限
  6. 權限策略名稱右側的輸入框內,輸入步驟一:創(chuàng)建RAM自定義授權策略中生成的策略名稱。
  7. 單擊確定,然后關閉右側面板。

步驟三:登錄RAM用戶并驗證權限

  1. 返回到RAM控制臺
  2. 概覽頁面上單擊賬號管理區(qū)域的登錄鏈接,并以您新建的用戶登錄。
  3. 訪問ACM控制臺,驗證當前可以操作的只有剛剛設置授權策略中的命名空間。

更多示例

  1. 授予單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10)的只讀權限。
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:R"
       ],
       "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10",
       "Effect": "Allow"
     }
    ]
    }
  2. 授予單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10)中單個Group(例如DEFAULT_GROUP)的讀寫權限。
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:*"
       ],
       "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP",
       "Effect": "Allow"
     }
    ]
    }
  3. 授予單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10)中多個Group(例如DEFAULT_GROUPDEFAULT_GROUP_1)的只讀權限。
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:R"
       ],
       "Resource": [
               "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP",
               "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP_1"
           ],
       "Effect": "Allow"
     }
    ]
    }
  4. 授予單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10)中某個Group(例如DEFAULT_GROUP)下特定配置項(com.alibaba.acm.test)只讀權限。
    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "acms:R"
                ],
                "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10/DEFAULT_GROUP/com.alibaba.acm.test",
                "Effect": "Allow"
            }
        ]
    }
  5. 授予所有命名空間中單個Group(例如DEFAULT_GROUP)的讀寫權限。
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:*"
       ],
       "Resource": [
               "*:*:*:*:cfg/*/DEFAULT_GROUP"
           ],
       "Effect": "Allow"
     }
    ]
    }
  6. 授予單個Region(例如杭州cn-hangzhou)單個命名空間(例如1ca01ca0-11b0-1e01-0df1-d1010101bc10)的讀寫權限。
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:*"
       ],
       "Resource": [
               "*:*:cn-hangzhou:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10"
           ],
       "Effect": "Allow"
     }
    ]
    }

備注

  • 只有當授權策略操作(Action)acms:*并且資源(Resource)*時,被授予該授權策略的用戶(或角色)才能增加、刪除和修改命名空間。
  • 由于存在緩存機制,授權策略的添加和修改會延遲生效,但通常都會在10秒內生效。
  • 通過ECS實例RAM角色訪問ACM時,授予如上所述授權策略,同樣可以實現細粒度的權限控制。

相關文檔

通過ECS實例RAM角色訪問ACM