17장. 메시지 대기열
메시지 대기열 서비스는 OpenStack의 프로세스 간 통신을 용이하게 합니다. 이러한 메시지는 서비스 백엔드를 사용하여 수행됩니다.
- RabbitMQ - Red Hat OpenStack Platform은 기본적으로 RabbitMQ를 사용합니다.
- Qpid
RabbitMQ 및 Qpid는 모두 AMQP(Advanced Message Queuing Protocol) 프레임워크로, 피어 투 피어 통신에 메시지 대기열을 제공합니다. 대기열 구현은 일반적으로 대기열 서버의 중앙 집중식 또는 분산 풀로 배포됩니다.
메시지 대기열은 OpenStack 배포에서 명령 및 제어 기능을 효과적으로 지원합니다. 큐에 대한 액세스가 허용되면 추가 권한 부여 확인이 수행되지 않습니다. 큐를 통해 액세스할 수 있는 서비스는 실제 메시지 페이로드 내의 컨텍스트 및 토큰의 유효성을 검사합니다. 그러나 토큰이 잠재적으로 재생 가능하며 인프라의 다른 서비스를 인증할 수 있으므로 토큰 만료 날짜를 기록해야 합니다.
OpenStack은 메시지 서명과 같은 메시지 수준의 신뢰를 지원하지 않습니다. 따라서 메시지 전송 자체를 보안하고 인증해야 합니다. HA(고가용성) 구성의 경우 대기열 간 인증 및 암호화를 수행해야 합니다.
17.1. 메시징 전송 보안 링크 복사링크가 클립보드에 복사되었습니다!
AMQP 기반 솔루션(Qpid 및 RabbitMQ)은 TLS를 사용하여 전송 수준 보안을 지원합니다.
메시지 큐에 대해 전송 수준 암호화를 활성화하는 것이 좋습니다. 메시징 클라이언트 연결에 TLS를 사용하면 전송 시 변조 및 도청하는 통신이 메시징 서버로 보호됩니다. 일반적으로 TLS를 구성하는 방법에 대한 지침은 아래에 설명되어 있습니다. Qpid 및 RabbitMQ. 메시징 서버가 클라이언트 연결을 확인하는 데 사용하는 신뢰할 수 있는 CA(인증 기관) 번들을 구성할 때 노드에 사용되는 CA(내부 관리 CA)로만 제한하는 것이 좋습니다. 신뢰할 수 있는 CA 번들에서 인증할 클라이언트 인증서를 확인하고 TLS 연결 설정의 클라이언트-서버 확인 단계를 전달합니다.
인증서 및 키 파일을 설치하는 경우(예: chmod 0600 사용) 파일 권한이 제한되었는지 확인하고 메시징 서버의 다른 프로세스 및 사용자의 무단 액세스를 방지하기 위해 메시징 서버 데몬 사용자로 소유권이 제한됩니다.
17.1.1. RabbitMQ 서버 SSL 구성 링크 복사링크가 클립보드에 복사되었습니다!
다음 행은 시스템 전체 RabbitMQ 구성 파일(일반적으로 /etc/rabbitmq/rabbitmq.config)에 추가되어야 합니다.
SSL이 아닌 포트에서 수신하지 못하도록 tcp_listeners 옵션이 [] 로 설정되어 있습니다. ssl_listeners 옵션은 서비스에 대한 관리 네트워크에서만 수신 대기하도록 제한해야 합니다.