SMC資源綁定標籤後,您可以使用標籤為資源做分類並控制訪問。本文介紹如何基於標籤控制RAM使用者以及STS(Security Token Service)角色的許可權,實現不同的使用者可以擁有不同雲資源的訪問和操作許可權。
前提條件
使用阿里雲帳號已建立RAM使用者。具體操作,請參見建立RAM使用者。
背景資訊
標籤可用於標識雲資源,實現分類管理資源;存取控制RAM可基於權限原則,控制雲資源的訪問和操作許可權。結合標籤和RAM,將標籤作為權限原則的匹配條件,可以實現雲資源精微調權限管理。
基於標籤控制RAM使用者權限(即標籤鑒權)的邏輯如下:
說明 支援綁定標籤的SMC資源套件括遷移源和遷移任務,遷移源僅支援建立後為其綁定標籤。更多資訊,請參見使用標籤管理遷移源和遷移任務。
應用情境樣本
本文以下述情境作為樣本,說明如何?標籤鑒權。
假設您需要控制某一RAM使用者只能操作特定(假設綁定了smc:test標籤)的SMC資源,如下圖所示:
情境樣本如下:
- 情境1:不允許建立不帶標籤的遷移任務,僅當建立時為SMC遷移任務綁定
smc:test
標籤才可以建立成功。 - 情境2:只能操作帶有特定標籤
smc:test
的SMC資源,包括修改資源屬性,刪除資源,給資源打標籤等操作,不允許操作其它SMC資源。
步驟一:配置自訂權限原則並授權
本步驟以在RAM控制台配置自訂為例,您也可以通過RAM API CreatePolicy建立一個自訂策略,權限原則配置請參見權限原則配置說明。- 使用阿里雲帳號登入RAM控制台。
- 在左側導覽列選擇 。
- 在權限原則頁面,單擊建立權限原則。
- 在建立權限原則頁面,單擊指令碼編輯頁簽。
- 完成權限原則的配置。權限原則是一組存取權限的集合。權限原則的結構包括版本號碼和授權語句列表,每條授權語句包括授權效果(Effect)、操作(Action)、資源(Resource)以及條件(Condition,可選項)。更多資訊,請參見權限原則基本元素和權限原則文法和結構。
- 根據需要修改權限原則後,下一步:編輯基本資料。在權限原則的
Condition
中,您可以增加需要匹配標籤的條件來限制操作許可權,支援的標籤條件的關鍵字如下表所示:標籤條件關鍵字 說明 acs:RequestTag
限制在請求中必須傳入特定的標籤。 如果API請求中沒有標籤參數,則不能使用acs:RequestTag,否則會導致鑒權失敗。
acs:ResourceTag
限制指定的資源必須包含特定的標籤。 如果API請求中沒有資源ID參數,則不能使用acs:ResourceTag,否則會導致鑒權失敗。
說明 設計權限原則時,您可以根據各操作介面特性(API請求是否需要指定資源ID、是否支援傳入標籤),結合實際業務需求,來設定acs:RequestTag
或acs: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" }
- 在基本資料地區,輸入權限原則名稱後,單擊確定。
- 根據需要修改權限原則後,下一步:編輯基本資料。
- 將自訂策略授權給RAM使用者。
- 在左側導覽列選擇 。
- 為RAM使用者授予新建立的自訂權限原則。具體操作,請參見為RAM使用者授權。
步驟二:驗證權限原則是否生效
API介面標籤鑒權說明
為某一RAM使用者授予含有標籤鑒權的權限原則後,該RAM使用者調用各API介面時的鑒權情況如下表所示:
介面 | 鑒權說明 |
CreateReplicationJob介面 | 該介面無需指定資源ID,匹配acs:RequestTag :
|
ModifyReplicationJobAttribute介面 | 該介面必須指定資源ID,匹配acs:ResourceTag :
|
StartReplicationJob、StopReplicationJob、DeleteSourceServer等其他動作介面 | 該類介面必須指定資源ID,匹配acs:ResourceTag :
|