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