全部產品
Search
文件中心

Server Migration Center:通過標籤實現精微調權限管理

更新時間:Dec 11, 2024

SMC資源綁定標籤後,您可以使用標籤為資源做分類並控制訪問。本文介紹如何基於標籤控制RAM使用者以及STS(Security Token Service)角色的許可權,實現不同的使用者可以擁有不同雲資源的訪問和操作許可權。

前提條件

使用阿里雲帳號已建立RAM使用者。具體操作,請參見建立RAM使用者

背景資訊

標籤可用於標識雲資源,實現分類管理資源;存取控制RAM可基於權限原則,控制雲資源的訪問和操作許可權。結合標籤和RAM,將標籤作為權限原則的匹配條件,可以實現雲資源精微調權限管理。

基於標籤控制RAM使用者權限(即標籤鑒權)的邏輯如下:786

說明

支援綁定標籤的SMC資源套件括遷移源和遷移任務,遷移源僅支援建立後為其綁定標籤。更多資訊,請參見使用標籤管理遷移源和遷移任務

應用情境樣本

本文以下述情境作為樣本,說明如何?標籤鑒權。

假設您需要控制某一RAM使用者只能操作特定(假設綁定了smc:test標籤)的SMC資源,如下圖所示:dad89

情境樣本如下:

  • 情境1:不允許建立不帶標籤的遷移任務,僅當建立時為SMC遷移任務綁定smc:test標籤才可以建立成功。

  • 情境2:只能操作帶有特定標籤smc:test的SMC資源,包括修改資源屬性,刪除資源,給資源打標籤等操作,不允許操作其它SMC資源。

步驟一:配置自訂權限原則並授權

本步驟以在RAM控制台配置自訂為例,您也可以通過RAM API CreatePolicy建立一個自訂策略,權限原則配置請參見權限原則配置說明

  1. 使用阿里雲帳號登入RAM控制台

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

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

  4. 建立權限原則頁面,單擊指令碼編輯頁簽。

  5. 完成權限原則的配置。

    權限原則是一組存取權限的集合。權限原則的結構包括版本號碼和授權語句列表,每條授權語句包括授權效果(Effect)、操作(Action)、資源(Resource)以及條件(Condition,可選項)。更多資訊,請參見權限原則基本元素權限原則文法和結構

    1. 根據需要修改權限原則後,單擊確定

      在權限原則的Condition中,您可以增加需要匹配標籤的條件來限制操作許可權,支援的標籤條件的關鍵字如下表所示:

      標籤條件關鍵字

      說明

      acs:RequestTag

      限制在請求中必須傳入特定的標籤。

      如果API請求中沒有標籤參數,則不能使用acs:RequestTag,否則會導致鑒權失敗。

      acs:ResourceTag

      限制指定的資源必須包含特定的標籤。

      如果API請求中沒有資源ID參數,則不能使用acs:ResourceTag,否則會導致鑒權失敗。

      說明

      設計權限原則時,您可以根據各操作介面特性(API請求是否需要指定資源ID、是否支援傳入標籤),結合實際業務需求,來設定acs:RequestTagacs:ResourceTag。更多資訊,請參見API介面標籤鑒權說明

      {
          "Statement": [
              {
                  "Action": "smc:CreateReplicationJob",
                  "Condition": {
                      "StringEquals": {
                          "acs:RequestTag/smc": "test"
                      }
                  },
                  "Effect": "Allow",
                  "Resource": "*"
              },
              {
                  "Action": "smc:*",
                  "Condition": {
                      "StringEquals": {
                          "acs:ResourceTag/smc": "test"
                      }
                  },
                  "Effect": "Allow",
                  "Resource": "*"
              },
              {
                "Action": [
                      "*:TagResources",
                      "*:UntagResources"  
                   ],
                  "Effect": "Deny",
                  "Resource": "*"
              },
              {
                  "Action": [
                      "*:List*",
                      "*:Describe*"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }

      以上策略內容可以實現如下許可權控制:

      情境

      權限原則

      情境1:不允許建立不帶標籤的遷移任務,僅當建立時為SMC遷移任務綁定smc:test標籤才可以建立成功。

      {
          "Statement": [
              {
                  "Action": "smc:CreateReplicationJob",
                  "Condition": {
                      "StringEquals": {
                          "acs:RequestTag/smc": "test"
                      }
                  },
                  "Effect": "Allow",
                  "Resource": "*"
              },
              {
                  "Action": [
                      "*:List*",
                      "*:Describe*"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }

      情境2:只能操作帶有特定標籤(即綁定smc:test標籤)的SMC資源,包括修改資源屬性,刪除資源等操作,不允許操作其它SMC資源。

      {
          "Statement": [
              {
                  "Action": "smc:*",
                  "Condition": {
                      "StringEquals": {
                          "acs:ResourceTag/smc": "test"
                      }
                  },
                  "Effect": "Allow",
                  "Resource": "*"
              },
              {
                "Action": [
                      "*:TagResources",
                      "*:UntagResources"
                  ],
                  "Effect": "Deny",
                  "Resource": "*"
              },
              {
                  "Action": [
                      "*:List*",
                      "*:Describe*"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
              }
          ],
          "Version": "1"
      }                                                  
    2. 在彈出的建立權限原則對話方塊中,輸入權限原則名稱和備忘後,單擊確定

  6. 將自訂策略授權給RAM使用者。

    1. 在左側導覽列選擇身份管理 > 使用者

    2. 為RAM使用者授予新建立的自訂權限原則。

      具體操作,請參見為RAM使用者授權

步驟二:驗證權限原則是否生效

  1. 使用RAM使用者登入SMC控制台OpenAPI平台

    本步驟以SMC控制台操作驗證為例。

  2. 測試權限原則是否生效。

    測試許可權如下:

    • 建立遷移任務:

      • 已綁定smc:test標籤的遷移源,則可以建立遷移任務。

      • 沒有綁定標籤或者綁定了其它標籤的遷移源,則無法建立遷移任務,提示沒有許可權。2556

    • 刪除遷移源:

      • 刪除綁定smc:test標籤的遷移源,則可以刪除。

      • 刪除沒有綁定smc:test標籤的遷移源,則無法刪除,提示沒有許可權。566

API介面標籤鑒權說明

為某一RAM使用者授予含有標籤鑒權的權限原則後,該RAM使用者調用各API介面時的鑒權情況如下表所示:

介面

鑒權說明

CreateReplicationJob介面

該介面無需指定資源ID,匹配acs:RequestTag

  • 沒有傳入標籤,或者傳入的標籤不包含授權標籤,則鑒權不通過。

  • 傳入完全符合的標籤,或者傳入的標籤包含了授權標籤,則鑒權通過。

ModifyReplicationJobAttribute介面

該介面必須指定資源ID,匹配acs:ResourceTag

  • 更新標籤無法匹配的SMC資源,則鑒權不通過。

  • 更新標籤能夠匹配的SMC資源,且不更新標籤,則鑒權通過。

  • 更新標籤能夠匹配的SMC資源,且更新標籤,如果具備新標籤的許可權,則鑒權通過,反之則鑒權不通過。

StartReplicationJob、StopReplicationJob、DeleteSourceServer等其他動作介面

該類介面必須指定資源ID,匹配acs:ResourceTag

  • 操作標籤無法匹配的SMC資源,則鑒權不通過。

  • 操作標籤能夠匹配的SMC資源,則鑒權通過。