如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹Simple Message Queue (formerly MNS)使用自訂權限原則的情境和策略樣本。
什麼是自訂權限原則
在基於RAM的存取控制體系中,自訂權限原則是指在系統權限原則之外,您可以自主建立、更新和刪除的權限原則。自訂權限原則的版本更新需由您來維護。
建立自訂權限原則後,需為RAM使用者、使用者組或RAM角色綁定權限原則,這些RAM身份才能獲得權限原則中指定的存取權限。
已建立的權限原則支援刪除,但刪除前需確保該策略未被引用。如果該權限原則已被引用,您需要在該權限原則的引用記錄中移除授權。
自訂權限原則支援版本控制,您可以按照RAM規定的版本管理機制來管理您建立的自訂權限原則版本。
操作文檔
控制台自訂授權策略
當您使用控制台頁面或者OpenAPI訪問Simple Message Queue (formerly MNS)資源時,支援以下自訂權限原則。
隊列管理
API | 說明 | 操作(Action) | 資源(Resource) |
擷取隊列列表 | mns:ListQueue | acs:mns:${regionId}:${accountId}:/queues | |
建立隊列 | mns:CreateQueue | acs:mns:${regionId}:${accountId}:/queues/${queueName} | |
刪除隊列 | mns:DeleteQueue | ||
擷取隊列屬性 | mns:GetQueueAttributes | ||
設定隊列屬性 | mns:SetQueueAttributes |
主旨管理員
API | 說明 | 操作(Action) | 資源(Resource) |
擷取主題列表 | mns:ListTopic | acs:mns:${regionId}:${accountId}:/topics | |
建立主題 | mns:CreateTopic | acs:mns:${regionId}:${accountId}:/topics/${topicName} | |
刪除主題 | mns:DeleteTopic | ||
擷取主題屬性 | mns:GetTopicAttributes | ||
設定主題屬性 | mns:SetTopicAttributes |
訂閱管理
API | 說明 | 操作(Action) | 資源(Resource) |
擷取訂閱列表,若傳入Topic名稱,則基於主題進行過濾 | mns:ListSubscriptionByTopic | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions | |
擷取訂閱屬性 | mns:GetSubscriptionAttributes | acs:mns:${regionId}:${accountId}:/topics/${topicName}/subscriptions/${subscriptionName} | |
設定訂閱屬性 | mns:SetSubscriptionAttributes | ||
綁定訂閱者到主題上 | mns:Subscribe | ||
從主題上解除綁定訂閱者 | mns:Unsubscribe |
常見策略情境及樣本
用戶端自訂授權策略
當您使用用戶端SDK進行訊息收發時,Simple Message Queue (formerly MNS)支援以下自訂權限原則。
隊列訊息收發
API | 說明 | 操作(Action) | 資源(Resource) |
發送訊息 | mns:SendMessage | acs:mns:${regionId}:${accountId}:/queues/${queueName}/messages | |
批量發送訊息 | mns:SendMessage | ||
消費訊息 | mns:ReceiveMessage | ||
批量消費訊息 | mns:ReceiveMessage | ||
刪除訊息 | mns:DeleteMessage | ||
大量刪除訊息 | mns:DeleteMessage | ||
查看訊息 | mns:PeekMessage | ||
批量查看訊息 | mns:PeekMessage | ||
修改訊息的下次可消費時間 | mns:ChangeMessageVisibility |
主題訊息收發
API | 說明 | 操作(Action) | 資源(Resource) |
從主題發布訊息 | mns:PublishMessage | acs:mns:${regionId}:${accountId}:/topics/${topicName}/messages |