本文介紹了如何使用標簽對RDS實例進行分組并授權,以滿足RAM用戶只能查看和操作被授權資源的需求。
背景信息
假設您的賬號購買了10個RDS實例,其中5個想要授權給developer團隊,另外5個授權給operator團隊。企業希望每個團隊只能查看被授權的實例,未被授權的不允許查看。
規劃2個RAM用戶組,名稱命名為:developer、operator。
規劃2個RAM自定義策略,名稱命名為:policyForDevTeam、policyForOpsTeam。
規劃2個標簽,如下:
- 其中5個RDS實例綁定一對標簽,標簽鍵是team,標簽值是dev。
- 另外5個RDS實例綁定另一對標簽,標簽鍵是team,標簽值是ops。
使用標簽對RDS分組授權的操作步驟
使用標簽對RDS分組授權的操作步驟與對ECS實例分組授權的操作步驟部分相同,具體操作,請參見使用標簽對ECS實例進行分組授權。
RDS相關自定義策略如下:
- 用戶組developer的自定義策略policyForDevTeam
{ "Statement": [ { "Action": "rds:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "rds:ResourceTag/team": "dev" } } }, { "Action": "rds:DescribeTag*", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
- 用戶組operator的自定義策略policyForOpsTeam
{ "Statement": [ { "Action": "rds:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "rds:ResourceTag/team": "ops" } } }, { "Action": "rds:DescribeTag*", "Effect": "Allow", "Resource": "*" } ], "Version": "1" }
權限策略內容分為兩部分:
- 帶有
Condition
的"Action": "rds:*"
部分用于過濾標簽為team:dev
或team:ops
的RDS實例。 "Action": "rds:DescribeTag*"
用于展示所有標簽。當RAM用戶在操作RDS控制臺時,系統展示出所有標簽供RAM用戶選擇,只有當RAM用戶選擇了標簽值后,系統才能根據選中的標簽值過濾相應資源。
常見問題
使用標簽對RDS實例分組授權后,如果遇到RAM用戶登錄控制臺報無權限的問題,請檢查如下事項:
- 標簽已被綁定到正確的實例上。
- 權限策略與實例上的標簽鍵、標簽值完全相同。
說明 RDS的標簽鍵值不可以使用大寫字母,若輸入大寫字母在保存時會被自動轉換成小寫字母。
- 登錄到RDS控制臺的RAM用戶已被授予了期望的權限策略。
- 控制臺展示的當前地域是期望地域。
- 已選中相應標簽值,此時系統才可以過濾出相應資源。
說明 RAM用戶登錄RDS控制臺后,控制臺會提示“您沒有指定資源的操作權限,請先對資源進行授權操作。”,請關掉該錯誤提示。出現該錯誤提示的原因是控制臺默認展示所有資源,而當前RAM用戶并沒有查看所有資源的權限,所以會報錯。