我们正在使用用户名和密码(而不是admin)访问RabbitMQ。我想知道是否可以创建一个没有管理界面访问权限的用户,但可以发布和订阅主题,这将大大提高我们正在构建的应用程序的安全性,如果凭据遭到破坏,则没人可以通过管理界面登录。 。
有什么方法可以创建没有管理UI访问权限的用户,但仍然可以发布和订阅主题?
RabbitMQ version: 3.7.10
Erlang 21.2.3
protocol: MQTT
答案 0 :(得分:0)
创建没有必需标签的用户以进行管理访问。在此处记录:https://www.rabbitmq.com/management.html
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。
答案 1 :(得分:0)
如前所述,use std::os::unix::net::UnixDatagram;
use std::path::Path;
use std::sync::mpsc;
use std::str::from_utf8;
fn unlink_socket (path: impl AsRef<Path>) {
let path = path.as_ref();
if path.exists() {
if let Err(e) = std::fs::remove_file(path) {
eprintln!("Couldn't remove the file: {:?}", e);
}
}
}
static FILE_PATH: &'static str = "/tmp/datagram.sock";
pub fn tcp_datagram_server() {
unlink_socket(FILE_PATH);
let socket = match UnixDatagram::bind(FILE_PATH) {
Ok(socket) => socket,
Err(e) => {
eprintln!("Couldn't bind: {:?}", e);
return;
}
};
let (tx, _) = mpsc::channel();
let mut buf = vec![0; 1024];
println!("Waiting for client to connect...");
loop {
let received_bytes = socket.recv(&mut buf).expect("recv function failed");
println!("Received {:?}", received_bytes);
let received_message = from_utf8(&buf).expect("utf-8 convert failed");
tx.send(received_message.to_string());
}
}
应该是这种情况下的正确角色
management