Przeczytałem poradnik dostarczony przez RabbitMQ i nawet włączyłem szósty przykład do stormed-amqp, więc mam wyczucie wiedzy o AMQP.W jaki sposób kolejki mogą stać się prywatne/bezpieczne w RabbitMQ w systemie wielodostępu?
Przewodnik nie jest jednak obszerny i unika takich spraw, jak uwierzytelnianie i autoryzacja.
Projektujemy system wielodostępności, który będzie wykorzystywał RabbitMQ w sytuacji typu RPC. Prawdopodobnie różni się to wdrażaniem RPC, ponieważ zdalne procedury będą faktycznie innymi programami najemców w systemie.
Zasadniczo, chcę odizolować magistrali danych, który obejmuje następujące twierdzenia:
- Nasz serwer nie będzie dostarczać dane do niewłaściwego programu najemcy (to jest obsługiwane łatwo i jest istotna, ale nie zakwestionowanych).
- Programy najemców nie mogą odczytać danych z kolejek, które nie są ich.
- Programy najemców nie mogą pisać w kolejkach, które nie należą do nich.
To pytanie dotyczy wyłącznie zabezpieczeń RabbitMQ. Wiem, że RabbitMQ obsługuje SSL, który zapewnia szyfrowanie end-to-end, i wiem, że RabbitMQ obsługuje uwierzytelnianie nazwy użytkownika/hasła. Nie wiem, czy te rzeczy mają zastosowanie do prywatyzacji użycia kolejki (alias ACL), tj. Połączenie może być szyfrowane, a użytkownik może zostać zweryfikowany, ale użytkownik może czytać/pisać ze wszystkich kolejek.
Czy ktoś może mnie oświecić w tym bardziej zaawansowanym temacie? Jestem przekonany, że RabbitMQ może wspierać ten rodzaj systemu, ale nie do końca pozytywnie. Wiem, że są rzeczy w RabbitMQ, o których po prostu nie wiem, np. czym są vhostowie i czy pomogą w tej sytuacji? Po prostu nie widzę, aby rozwiązanie w mojej obecnej wiedzy ograniczało się do kluczy routingu, nazw kolejek i wymian.
Właściwie napisałem implementację tego przykładu w bibliotece stormed-amqp (jak wyżej). Nie byłem pewien, czy dyrektywa "wyłączna" była wystarczającym zabezpieczeniem, ale eksperymentuję z nią, aby sprawdzić, czy tak jest. Dzięki. – Brian