雲訊息佇列 RabbitMQ 版開源身分識別驗證和許可權管理方式和阿里雲存取控制(RAM)兩種身分識別驗證和許可權模式,開源用戶端訪問雲訊息佇列 RabbitMQ 版服務端時,根據不同身分識別驗證和許可權模式,傳入使用者名稱和密碼進行許可權認證,認證通過才允許訪問服務端。
背景資訊
雲訊息佇列 RabbitMQ 版支援開源身分識別驗證和許可權管理方式和阿里雲存取控制(RAM)兩種身分識別驗證和許可權模式,在建立執行個體時,僅可選擇其中一種,且不支援後續修改。兩種方式對比如下所示。
身分識別驗證和許可權模式 | 說明 | 生效範圍 | 優缺點 |
支援建立自訂使用者名稱和密碼,並支援為使用者添加授權。 | 用戶端SDK |
| |
使用者名稱和密碼可通過阿里雲存取控制(RAM)的AccessKey和AccessKey Secret產生。具體操作,請參見下文的建立靜態使用者名稱密碼。 |
|
|
注意事項
開源身分識別驗證和許可權管理方式
僅支援新購的Serverless系列獨享執行個體,存量執行個體不支援。
請盡量不要使用簡單密碼,避免使用者名稱密碼的泄露。
禁用預設的guest帳號。
阿里雲存取控制(RAM)
登入雲訊息佇列 RabbitMQ 版控制台的帳號為阿里雲帳號或至少已被授予查看、建立和刪除靜態使用者名稱密碼許可權的RAM使用者。關於靜態使用者名稱密碼許可權以及授權操作,請參見RAM權限原則和RAM主子帳號授權。
建立或刪除靜態使用者名稱密碼所屬的執行個體需處於服務中狀態。
AccessKey和AccessKey Secret是帳號層級的許可權認證,多個執行個體(同一阿里雲帳號下)可共用一對AccessKey和AccessKey Secret,同一對AccessKey和AccessKey Secret對應不同執行個體,會產生不同的使用者名稱和密碼。
如果需要更新靜態使用者名稱密碼,您可以刪除該靜態使用者名稱密碼後重新建立。
您的用戶端在調用SDK收發訊息時,請儘可能使用長期存活的Connection,以免每次收發訊息時都需要建立新的Connection,消耗大量的網路資源和服務端資源,甚至引起服務端SYN Flood防護。更多資訊,請參見Connection。
開源身分識別驗證和許可權管理方式
建立使用者名稱密碼
登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表。
在实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。
在左側導覽列,單擊用户和权限管理。
在用户和权限管理頁面,單擊创建用户名密码。
在创建用户名密码面板,輸入用户名、密码和确认密码等資訊,單擊確定。
編輯使用者密碼
在用户和权限管理頁面,找到要編輯使用者名稱,在其右側操作列,單擊编辑。
在编辑用户名密码面板,填寫密码和确认密码等資訊,單擊確定。
刪除使用者
如果使用者被刪除,用戶端使用該使用者名稱密碼串連雲訊息佇列 RabbitMQ 版時會被拒絕。
在用户和权限管理頁面,找到要刪除的使用者名稱,在其右側操作列,單擊删除。
在删除對話方塊,單擊確定。
許可權管理
雲訊息佇列 RabbitMQ 版開源身分識別驗證和許可權管理方式以Vhost為維度進行授權,使用者權限僅在其所屬的Vhost內生效。 使用者對Exchange和Queue的操作許可權通過Regex(Regex)進行細粒度控制。詳情請參見開源身分識別驗證和許可權管理。
新增許可權
在用户和权限管理頁面,找到需要添加許可權的使用者,在其右側操作列,單擊权限管理。
在权限管理面板,單擊新增权限。
在下拉式清單中選擇需要配置的Vhost,然後輸入相應操作的Regex,然後單擊确定。
Regex匹配對象為Exchange和Queue。
.*表示所有資源。^$表示只匹配Null 字元串,覆蓋所有資源並阻止使用者執行任何操作。'^(amq\.gen.*|amq\.default)$'表示可以訪問系統資源和default Exchange。
重要若採用公網存取點,在許可權配置完成後,還需配置公網IP白名單。
更新許可權
如果使用者的Virtual Host許可權被修改,用戶端使用該使用者名稱密碼串連該Virtual Host時,可能會在發送訊息、消費訊息等操作時出現錯誤。
在权限管理面板,找到要刪除的Virtual Host,在其右側操作列,單擊更新。
輸入需要修改操作的Regex,然後單擊确定。
刪除許可權
如果使用者的Virtual Host許可權被刪除,用戶端使用該使用者名稱密碼串連該Virtual Host時會被拒絕。
在权限管理面板,找到要刪除的Virtual Host,在其右側操作列,單擊删除。
在删除對話方塊,單擊確定。
阿里雲存取控制(RAM)
建立靜態使用者名稱密碼
登入雲訊息佇列 RabbitMQ 版控制台,然後在左側導覽列選擇实例列表。
在实例列表頁面的頂部功能表列選擇地區,然後在執行個體列表中,單擊目標執行個體名稱。
在左側導覽列,單擊用户和权限管理。
在用户和权限管理頁面,單擊创建用户名密码。
在创建用户名密码面板,輸入AccessKey ID和AccessKey Secret,然後單擊確定。
說明AccessKey ID和AccessKey Secret需要在阿里雲RAM控制台擷取,具體擷取方式,請參見建立AccessKey。
用户和权限管理頁面,顯示建立的靜態使用者名稱與密碼,密碼處於隱藏狀態。

在建立的靜態使用者名稱密碼的密码列,單擊显示密码,可查看使用者名稱的密碼。
如果您使用RAM使用者的AccessKey建立的靜態使用者名稱密碼接入雲訊息佇列 RabbitMQ 版並收發訊息,請確保該RAM使用者已被授予收發訊息許可權。更多資訊,請參見RAM權限原則。
刪除靜態使用者名稱密碼
如果靜態使用者名稱密碼被刪除或者建立靜態使用者名稱密碼所使用的AccessKey被禁用或刪除,則該靜態使用者名稱密碼失效。用戶端使用該靜態使用者名稱密碼串連雲訊息佇列 RabbitMQ 版時會被拒絕。
在用户和权限管理頁面,找到要刪除的靜態使用者名稱密碼,在其右側操作列,單擊删除。
在提示對話方塊,認真閱讀提示資訊,單擊確定。
在用户和权限管理頁面,不再顯示被刪除的靜態使用者名稱密碼。
相關操作
建立使用者名稱密碼後,您的用戶端可以直接使用開源RabbitMQ版用戶端接入雲訊息佇列 RabbitMQ 版。更多資訊,請參見SDK列表及範例程式碼。