全部產品
Search
文件中心

Application Configuration Management(Deprecated):存取權限控制

更新時間:Jul 06, 2024

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

背景資訊

以往,當一個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)

授權資源的定義規則為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

步驟一:建立RAM自訂授權策略

  1. 登入RAM控制台
  2. 在左側導覽列的許可權管理菜單下,單擊權限原則管理
  3. 授權策略管理頁面左上方單擊建立權限原則
  4. 建立自訂權限原則頁面,選擇配置模式指令碼配置
  5. 策略內容輸入框內輸入自訂的授權策略名稱稱、備忘和策略內容,並單擊確定
    例如,要為命名空間1ca01ca0-11b0-1e01-0df1-d1010101bc10配置讀寫權限,請在策略內容文字框中輸入以下內容:
    {
    "Version": "1",
    "Statement": [
     {
       "Action": [
         "acms:*"
       ],
       "Resource": "*:*:*:*:cfg/1ca01ca0-11b0-1e01-0df1-d1010101bc10",
       "Effect": "Allow"
     }
    ]
    }
    說明 關於建立RAM自訂授權策略的詳細步驟,請參考建立自訂權限原則

步驟二:建立RAM使用者並授權

  1. 使用者頁面,單擊建立使用者

  2. 建立使用者頁面的使用者帳號資訊地區,設定使用者基本資料。

    • 登入名稱稱:可包含英文字母、數字、半形句號(.)、短劃線(-)和底線(_),最多64個字元。

    • 顯示名稱:最多包含128個字元或漢字。

    • 標籤:單擊edit,然後輸入標籤鍵和標籤值。為RAM使用者綁定標籤,便於後續基於標籤的使用者管理。

    說明

    單擊添加使用者,可以大量建立多個RAM使用者。

  3. 訪問方式地區下,選擇編程訪問,然後單擊確定
    使用者資訊頁面會顯示建立使用者的AccessKey IDAccessKeySecret,請記錄下來供後續步驟使用並妥善保管。
  4. 使用者頁面,單擊目標RAM使用者操作列的添加許可權

    image

    您也可以選中多個RAM使用者,單擊使用者列表下方的添加許可權,為RAM使用者大量授權。

  5. 權限原則名稱右側的輸入框內,輸入步驟一:建立RAM自訂授權策略中產生的策略名稱稱。
  6. 單擊確定,然後關閉右側面板。

步驟三:登入RAM使用者並驗證許可權

  1. 返回到RAM控制台
  2. 概覽頁面上單擊帳號管理地區的登入連結,並以您建立的使用者登入。
  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