本文介紹了如何使用標簽對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:devteam:ops的RDS實例。
  • "Action": "rds:DescribeTag*"用于展示所有標簽。當RAM用戶在操作RDS控制臺時,系統展示出所有標簽供RAM用戶選擇,只有當RAM用戶選擇了標簽值后,系統才能根據選中的標簽值過濾相應資源。

常見問題

使用標簽對RDS實例分組授權后,如果遇到RAM用戶登錄控制臺報無權限的問題,請檢查如下事項:

  • 標簽已被綁定到正確的實例上。
  • 權限策略與實例上的標簽鍵、標簽值完全相同。
    說明 RDS的標簽鍵值不可以使用大寫字母,若輸入大寫字母在保存時會被自動轉換成小寫字母。
  • 登錄到RDS控制臺的RAM用戶已被授予了期望的權限策略。
  • 控制臺展示的當前地域是期望地域。
  • 已選中相應標簽值,此時系統才可以過濾出相應資源。
說明 RAM用戶登錄RDS控制臺后,控制臺會提示“您沒有指定資源的操作權限,請先對資源進行授權操作。”,請關掉該錯誤提示。出現該錯誤提示的原因是控制臺默認展示所有資源,而當前RAM用戶并沒有查看所有資源的權限,所以會報錯。