7장. 보안
AMQ JMS에는 애플리케이션 요구에 따라 활용할 수 있는 다양한 보안 관련 구성 옵션이 있습니다.
애플리케이션 내에서 연결을
생성할 때 사용자 이름 및 암호와 같은 기본 사용자 인증 정보는 ConnectionFactory
에 직접 전달해야 합니다. 그러나 no-argument 팩토리 방법을 사용하는 경우 연결 URI에 사용자 인증 정보를 제공할 수도 있습니다. 자세한 내용은 5.1절. “JMS 옵션” 섹션을 참조하십시오.
또 다른 일반적인 보안 고려 사항은 SSL/TLS 사용입니다. amqps
URI 스키마가 연결 URI 에 지정되고 동작을 구성하는 데 사용할 수 있는 다양한 옵션을 사용할 때 클라이언트는 SSL/TLS 전송을 통해 서버에 연결합니다. 자세한 내용은 5.3절. “SSL/TLS 옵션” 섹션을 참조하십시오.
이전 항목과 요약하면 클라이언트가 서버에서 제공할 수 있는 모든 지원을 선택하는 대신 특정 SASL 메커니즘만 사용할 수 있도록 하는 것이 바람직할 수 있습니다. 자세한 내용은 5.4절. “AMQP 옵션” 섹션을 참조하십시오.
수신된 ObjectMessage
에서 getObject()
를 호출하는 애플리케이션은 deserialization 중에 생성된 유형을 제한하려고 할 수 있습니다. AMQP 유형 시스템을 사용하여 구성된 메시지 본문은 ObjectInputStream
메커니즘을 사용하지 않으므로 이러한 예방 조치가 필요하지 않습니다. 자세한 내용은 “deserialization 정책 옵션” 섹션을 참조하십시오.
7.1. OpenSSL 지원 활성화
성능 향상을 위해 기본 OpenSSL 구현을 사용하도록 SSL/TLS 연결을 구성할 수 있습니다. OpenSSL을 사용하려면 transport.useOpenSSL
옵션을 활성화해야 하며 classpath에서 OpenSSL 지원 라이브러리를 사용할 수 있어야 합니다.
Red Hat Enterprise Linux에서 시스템에서 설치한 OpenSSL 라이브러리를 사용하려면 openssl
및 apr
RPM 패키지를 설치하고 POM 파일에 다음 종속성을 추가합니다.
예: 기본 OpenSSL 지원 추가
<dependency> <groupId>io.netty</groupId> <artifactId>netty-tcnative</artifactId> <version>2.0.46.Final-redhat-00001</version> <classifier>linux-x86_64-fedora</classifier> </dependency>
OpenSSL 라이브러리 구현 목록은 Netty 프로젝트에서 사용할 수 있습니다.