本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
云消息隊列 RocketMQ 版提供消息數據存儲加密、傳輸加密等安全特性,有效地防止未授權訪問、數據泄露以及在傳輸過程中被攔截或篡改的風險。
存儲加密
加密原理
云消息隊列 RocketMQ 版支持在服務器端對消息數據進行加密??蛻舳税l送消息數據到服務端,云消息隊列 RocketMQ 版利用加密云盤持久化保存數據;客戶端訂閱數據時,云消息隊列 RocketMQ 版從云盤中讀取解密后的數據,并把原始數據返回給訂閱的客戶端。
更多信息,請參見加密云盤。
開啟云盤加密后,可能會導致實例的讀寫性能略有下降,但能夠確保按照計算規格提供穩定的服務。
使用限制
實例版本限制
僅云消息隊列 RocketMQ 版5.x系列包年包月、按量付費的鉑金版實例支持。
地域限制
消息存儲加密暫時僅支持華東1(杭州)、華南1(深圳)、華北2(北京)、華東2(上海)、華北3(張家口)、華北1(青島)、中國香港、華北5(呼和浩特)、西南1(成都)、華北6(烏蘭察布)、華南3(廣州)、新加坡、馬來西亞(吉隆坡)、印度尼西亞(雅加達)、日本(東京)、菲律賓(馬尼拉)、韓國(首爾)、泰國(曼谷)、德國(法蘭克福)、美國(硅谷)、英國(倫敦)、美國(弗吉尼亞)地域。
密鑰類型限制
僅支持對稱密鑰,密鑰規格為
Aliyun_AES_256
或Aliyun_SM4
,密鑰用途為ENCRYPT/DECRYPT
。
計費說明
云消息隊列 RocketMQ 版實例開啟云盤加密的計費如下:
云消息隊列 RocketMQ 版費用
僅收取云消息隊列 RocketMQ 版鉑金版的實例費用。
密鑰管理服務 KMS(Key Management Service)費用
用于云盤加密的KMS的費用,需要購買軟件密鑰管理實例或硬件密鑰管理實例。關于KMS的更多計費信息,請參見產品計費。
注意事項
加密行為不可逆,一旦啟用云盤加密,便無法關閉。用于加密的密鑰需處于可用狀態,避免因KMS實例到期不可用導致消息數據讀寫失敗。
用于云盤加密的密鑰,執行刪除或禁用等操作將導致密鑰失效,進而導致云消息隊列 RocketMQ 版實例消息讀寫失敗。建議您在對密鑰進行刪除、禁用操作前,自行排查該密鑰是否存在關聯使用的云資源,避免密鑰丟失導致消息數據不可恢復。
密鑰的標簽(
acs:rocketmq:instance-encryption
)若被刪除,也會導致云消息隊列 RocketMQ 版實例消息讀寫失敗。
聲明:由用戶自行操作密鑰失效后導致關聯的云盤資源相關數據丟失后不可恢復的風險,由用戶自行承擔責任。
如何開啟云盤加密
云盤加密功能需要在創建云消息隊列 RocketMQ 版實例時開啟。
本步驟僅描述創建云消息隊列 RocketMQ 版實例時如何開啟云盤加密,詳細配置說明,請參見創建實例。
商品類型選擇RocketMQ 5.0 系列(包年包月)或 RocketMQ 5.0 系列(按量付費),主系列類型選擇鉑金版。
開啟云盤加密,并輸入云盤密鑰。創建云盤密鑰,詳情請參見管理密鑰。
傳輸加密
功能說明
云消息隊列 RocketMQ 版支持TLS鏈路加密(TLS v1.2)功能,用于客戶端驗證服務端的正確性,可確保數據在服務端和客戶端之間傳輸的安全性。
版本、協議對應關系說明
服務端版本、協議與客戶端版本關系如下:
服務端版本 | 協議 | 客戶端版本 | 兼容性 | TLS協議支持說明 |
5.x版本實例 | gRPC協議v2 | 兼容 | 默認開啟,支持Java SDK 5.0.5及以上版本的客戶端主動關閉。 | |
Remoting協議 | 兼容 | 默認關閉,需要客戶端主動開啟。 | ||
兼容 | ||||
4.x版本實例 | Remoting協議 | 兼容 | 默認關閉,需要客戶端主動啟用,并提交工單申請服務端開啟。 | |
兼容 | ||||
gRPC協議v1 | 兼容 | 默認開啟,支持客戶端主動關閉。 | ||
HTTP協議 | 兼容 | 默認開啟。 |
客戶端如何啟用傳輸加密
ONS Java SDK客戶端
在JVM啟動參數添加
-Dtls.enable=true
。說明如果使用的是4.x版本實例,還需提交工單申請服務端開啟TLS。
Remoting協議客戶端
Java SDK
方案一:
在JVM啟動參數添加
-Dtls.enable=true
。方案二:
消息發送代碼添加配置:
producer.setUseTLS(true);
消息消費代碼添加配置:
consumer.setUseTLS(true);
C++ SDK
消息發送代碼添加配置:
producer.setEnableSsl(true);
消息消費代碼添加配置:
consumer.setEnableSsl(true);
說明如果使用的是4.x版本實例,還需提交工單申請服務端開啟TLS。
gRPC協議v2客戶端
默認開啟,Java SDK 5.0.5及以上版本的客戶端可以通過配置
enableSsl
為false
主動關閉。ClientConfiguration clientConfiguration = ClientConfiguration.newBuilder() .setEndpoints(endpoints) // On some Windows platforms, you may encounter SSL compatibility issues. Try turning off the SSL option in // client configuration to solve the problem please if SSL is not essential. .enableSsl(false) .setCredentialProvider(sessionCredentialsProvider) .build();