如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹雲訊息佇列 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 版的授權資訊。詳細內容請參見授權資訊。