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