本文介紹了如何使用標籤對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使用者並沒有查看所有資源的許可權,所以會報錯。