全部產品
Search
文件中心

ApsaraMQ for RocketMQ:雲訊息佇列 RocketMQ 版自訂權限原則

更新時間:Jul 01, 2024

如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹雲訊息佇列 RocketMQ 版使用自訂權限原則的情境和策略樣本。

什麼是自訂權限原則

在基於RAM的存取控制體系中,自訂權限原則是指在系統權限原則之外,您可以自主建立、更新和刪除的權限原則。自訂權限原則的版本更新需由您來維護。

  • 建立自訂權限原則後,需為RAM使用者、使用者組或RAM角色綁定權限原則,這些RAM身份才能獲得權限原則中指定的存取權限。

  • 已建立的權限原則支援刪除,但刪除前需確保該策略未被引用。如果該權限原則已被引用,您需要在該權限原則的引用記錄中移除授權。

  • 自訂權限原則支援版本控制,您可以按照RAM規定的版本管理機制來管理您建立的自訂權限原則版本。

操作文檔

自訂許可權授權樣本

重要

如需直接複製範例程式碼,使用時請刪除注釋內容,即“//”及以後的文字說明。

  • 樣本一:授予執行個體中某Topic和Group的許可權

    授予使用執行個體下某Topic和Group訊息發布和訂閱的許可權,請按以下樣本設定。

    • 適用於有命名空間的執行個體

      {
              "Version":"1",
              "Statement":[
                  {    // 授予執行個體的許可權,授予Topic和Group的許可權前須先授予相應執行個體的許可權(適用於有命名空間的執行個體)。
                      "Effect":"Allow",
                      "Action":[
                          "mq:QueryInstanceBaseInfo"
                      ],
                      "Resource":[
                          "acs:mq:*:*:{instanceId}"
                      ]
                  },
                  {   // 授予Topic的訊息發布和訂閱許可權。
                      "Effect":"Allow",
                      "Action":[
                          "mq:PUB",    
                          "mq:SUB"
                      ],
                      "Resource":[
                          "acs:mq:*:*:{instanceId}%{topic}"
                      ]
                  },
                  {     // 授予Group的許可權。
                      "Effect":"Allow",
                      "Action":[
                          "mq:SUB"
                      ],
                      "Resource":[
                          "acs:mq:*:*:{instanceId}%{groupId}"
                      ]
                  }
              ]
          }                    
    • 適用於無命名空間的執行個體

      {
          "Version":"1",
          "Statement":[
              {    // 授予執行個體的許可權,授予Topic和Group的許可權前須先授予相應執行個體的許可權(適用於無命名空間的執行個體)。
                  "Effect":"Allow",
                  "Action":[
                      "mq:QueryInstanceBaseInfo"
                  ],
                  "Resource":[
                      "acs:mq:*:*:{instanceId}"
                  ]
              },
              {   // 授予Topic的訊息發布和訂閱許可權。
                  "Effect":"Allow",
                  "Action":[
                      "mq:PUB",    
                      "mq:SUB"
                  ],
                  "Resource":[
                      "acs:mq:*:*:{topic}"
                  ]
              },
              {    // 授予Group的許可權。
                  "Effect":"Allow",
                  "Action":[
                      "mq:SUB"
                  ],
                  "Resource":[
                      "acs:mq:*:*:{groupId}"
                  ]
              }
          ]
      }                    
  • 樣本二:授予使用者某執行個體下的所有許可權(只適用於有命名空間的執行個體)

    若要授予使用者整個執行個體的許可權,即該執行個體中所有資源的所有操作許可權,請按以下樣本設定。

    {   // 僅適用於有命名空間的執行個體。
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "mq:*"
                ],
                "Resource": [
                    "acs:mq:*:*:{instanceId}*" // 授予使用者該執行個體下的所有許可權,{instanceId}用執行個體ID代替。
                ]
            }
        ]
    }          

授權資訊參考

使用自訂權限原則,您需要瞭解業務的許可權管控需求,並瞭解雲訊息佇列 RocketMQ 版的授權資訊。詳細內容請參見授權資訊