TLS 및 mTLS 지원을 사용한 보안 통신(전송 중인 데이터)
Oracle GoldenGate는 다음 기능을 사용하여 전송 중인 데이터 또는 이동 중인 데이터를 보호합니다.
-
고유 HTTP 권한 부여를 사용하는 스트리밍 프로토콜이 지원됩니다. WSS(Secure Web Socket) 프로토콜인 초기 WebSocket 설정 요청의 헤더를 포함합니다. Oracle GoldenGate 서버는 요청 사용자와 연관된 롤이 웹 소켓 설정 요청에 대해 지정된 롤보다 크거나 같은지 여부에 따라 요청을 승인하거나 거부할 권한 부여 헤더를 확인합니다. Oracle GoldenGate는 TLS 1.2 및 TLS 1.3 인증을 지원합니다. 서로 다른 TLS 암호화 옵션 중에서 선택하고 관련 암호 슈트를 적용할 수 있습니다.
-
대상 시작 경로는 DMZ(Demilitarized Zones)에서 작업할 때 데이터 변환을 지원합니다.
또한 Distribution Path Streaming Protocols을 참조하십시오.
TLS 및 mTLS 지원을 사용한 보안 통신
TLS(전송 계층 보안) 프로토콜은 보안 데이터 전송을 보장하여 네트워크를 통한 보안 통신을 제공합니다. 서버(GoldenGate 인스턴스)와 GoldenGate 웹 인터페이스, AdminClient 및 기타 응용 프로그램을 포함한 클라이언트 간의 데이터 교환은 인증되고 암호화됩니다. 암호화 알고리즘을 사용하여 데이터를 암호화하므로 승인되지 않은 당사자가 전송되는 정보에 액세스하거나 수정할 수 없습니다.
TLS는 서버의 ID를 확인하여 악의적인 행위자가 아닌 의도한 당사자와의 통신을 확인합니다. HTTPS 및 WSS는 TLS 프로토콜을 사용합니다. HTTPS 요청은 REST-API 호출을 통해 수행되며 WSS는 배포 경로에 의해 추적 파일의 보안 경로 지정에 사용됩니다.
mTLS(상호 TLS)는 통신 세션에서 클라이언트와 서버를 모두 인증하여 추가 보안 계층을 추가하는 TLS 프로토콜의 확장입니다. 이는 전통적인 TLS의 향상으로 양방향 신뢰를 제공하며 가장된 공격에 대한 추가 방어입니다. 클라이언트-서버 핸드셰이크 중 서버는 클라이언트가 서버의 ID를 확인할 수 있도록 클라이언트에 대한 ID를 증명하는 디지털 인증서를 제공합니다. 또한 클라이언트는 서버가 클라이언트 ID를 확인할 수 있도록 서버에 ID를 증명하는 디지털 인증서를 제공합니다.
보안 배치에서 mTLS는 배포 경로 프로세스에서 다음 중 하나의 경우에 WSS 프로토콜을 사용하여 추적 파일을 전송하는 데 사용됩니다.
-
배포 서비스에서 수신기 서비스로 추적 데이터 전송
-
대상 시작 배포 경로를 사용하여 추적 데이터를 전송합니다. 여기서 수신기 서비스는 배포 서비스에 네트워크를 통해 추적 파일을 전송하도록 요청합니다.
DistClient 디지털 인증서를 제공하여 배포 클라이언트(DistClient) 인증을 사용하면 mTLS를 사용하여 보안 네트워크 통신을 사용으로 설정할 수 있습니다.
보안 배치는 Oracle GoldenGate에 권장됩니다. 서버의 인증서, 개인 키 및 CA 인증서(인증 기관)의 서명 인증서가 필요합니다. 인증 기관(CA 인증서)의 DistClient 인증서, 개인 키 및 서명 인증서는 언제든지 적용할 수 있습니다.
그러나 NGINX는 비보안 배치와 함께 사용되어 배포 경로에 대한 TLS 지원을 계속 제공할 수 있습니다. TLS는 NGINX에서 종료됩니다. 클라이언트가 NGINX 인증서를 확인합니다. 그러나 클라이언트 인증서는 Oracle GoldenGate 기본 NGINX 구성에서 선택 사항입니다.
자세한 내용은 대상 시작 경로 및 Oracle GoldenGate 역 프록시 지원을 참조하십시오. 주: 역 프록시가 사용되는 경우 mTLS가 지원되지 않습니다.
Oracle 환경에서 전송 계층 보안의 작동 방식: TLS 핸드셰이크
전송 계층 보안을 통한 네트워크 연결이 시작되면 클라이언트와 서버는 인증 전에 TLS 핸드셰이크를 수행합니다.
핸드셰이크 프로세스는 다음과 같습니다.
-
클라이언트와 Oracle GoldenGate 인스턴스는 데이터 전송에 사용되는 암호화 모음 및 암호화 알고리즘을 설정합니다.
-
Oracle GoldenGate 인스턴스는 인증서를 클라이언트로 전송하고, 클라이언트는 Oracle GoldenGate 인스턴스의 인증서가 신뢰할 수 있는 CA에 의해 서명되었는지 확인합니다. 이 단계는 Oracle GoldenGate 인스턴스의 ID를 확인합니다.
-
마찬가지로 클라이언트 인증이 필요한 경우 클라이언트가 인증서를 Oracle GoldenGate 인스턴스로 전송합니다. Oracle GoldenGate 인스턴스는 클라이언트의 인증서가 신뢰할 수 있는 CA에 의해 서명되었는지 확인합니다.
-
클라이언트와 Oracle GoldenGate 인스턴스는 공개 키 암호화를 사용하여 키 정보를 교환합니다. 이 정보를 기반으로 각각 세션 키를 생성합니다. 키는 단일 통신 세션 기간 동안 데이터 암호화에 사용되는 적어도 두 개의 당사자(일반적으로 클라이언트와 Oracle GoldenGate 인스턴스)가 공유합니다. 일반적으로 세션 키는 네트워크 트래픽을 암호화하는 데 사용됩니다. 클라이언트와 Oracle GoldenGate 인스턴스는 세션 시작 시 세션 키를 협상할 수 있으며, 해당 키는 해당 세션 동안 당사자 간의 모든 네트워크 트래픽을 암호화하는 데 사용됩니다. 클라이언트와 Oracle GoldenGate 인스턴스가 새 세션에서 다시 통신하는 경우 새 세션 키를 협상합니다. 클라이언트와 Oracle GoldenGate 인스턴스 간의 모든 후속 통신은 이 세션 키 및 협상된 암호화 모음을 사용하여 암호화 및 해독됩니다.
인증 프로세스는 다음과 같습니다. 1. 클라이언트에서 사용자는 TLS를 사용하여 Oracle GoldenGate에 대한 네트워크 연결을 시작합니다.
-
TLS는 클라이언트와 Oracle GoldenGate 간에 핸드셰이크를 수행합니다.
-
핸드셰이크가 성공하면 GoldenGate 인스턴스는 사용자에게 Oracle GoldenGate 인스턴스에 액세스할 수 있는 적절한 권한이 있는지 확인합니다.
Oracle GoldenGate에서 인증을 위해 전송 계층 보안을 사용하는 방법
Oracle GoldenGate TLS 기능을 사용하여 Oracle GoldenGate 인스턴스와 클라이언트 간의 통신을 보호하면 다음을 수행할 수 있습니다.
-
TLS를 사용하여 Oracle GoldenGate 인스턴스와 클라이언트 간의 접속을 암호화합니다.
-
TLS를 통해 통신하도록 구성된 다른 Oracle GoldenGate 인스턴스에 대해 클라이언트 또는 기타 Oracle GoldenGate 인스턴스를 인증합니다.
TLS가 설정된 후 Oracle GoldenGate 인스턴스는 추적을 전송할 수 있는 올바른 권한이 있는지 확인하기 위해 클라이언트를 인증해야 합니다. 다음 인증 모드가 사용됩니다.
-
Oracle GoldenGate 인스턴스는 대상측에 적어도 Operator 롤이 있는 사용자 ID 및 비밀번호를 사용하여 클라이언트를 인증합니다. 사용자 ID와 암호는 클라이언트측에 별칭으로 저장됩니다. 별칭은 배포 경로를 만들 때 사용됩니다.
운영자 역할 사용자 설정에 대해 알아보려면 Connecting Two Deployments Using External RootCA Certificate을 참조하고 원격 배치 간의 배포 경로 연결을 생성할 때 이 사용자 ID, 비밀번호 별칭을 사용합니다.
-
Oracle GoldenGate 인스턴스는 대상측에 생성된 해당 인증서 사용자가 있다고 가정하여 클라이언트 인증서를 사용하여 클라이언트 요청을 인증합니다. 클라이언트 및 서버측에 대한 인증서를 만드는 단계를 수행하려면 Create Certificates for Secure Deployments를 참조하십시오.
-
Oracle GoldenGate 인스턴스는 IAM과 같은 외부 식별 제공자(IdP)를 사용하는 경우 OAuth를 사용하여 클라이언트를 인증합니다. 외부 ID 제공자에 대한 사용자 관리 위임을 참조하십시오.
TLS 암호화 모음
암호 슈트는 다음 작업당 하나의 알고리즘을 지정합니다.
-
키 교환
-
대량 암호화
-
MAC(메시지 인증 코드)
약한 암호화를 제외하고 TLS 1.2 및 1.3에 대한 기본 암호 슈트가 지원됩니다.
Oracle은 보안 요구 사항을 충족하기 위해 TLS 1.3을 사용할 것을 강력히 권장합니다.
약한 암호화를 제외하고 TLS 1.2의 기본 암호화 모음이 지원됩니다.
대상에서 시작된 경로
마이크로서비스에 대한 대상 시작 경로를 통해 수신기 서비스는 대상 배포 및 풀 트레일 파일에서 배포 서비스에 대한 경로를 시작할 수 있습니다. 이 기능을 통해 수신자 서비스는 DMZ(Demilitarized Zone Paths) 또는 클라우드-온프레미스 환경(소스 Oracle GoldenGate 배치의 배포 서비스가 네트워크 보안 정책으로 인해 대상 환경에서 수신자 서비스에 대한 네트워크 연결을 열 수 없음)에 대해 대상 시작 경로를 생성할 수 있습니다.
배포 서비스가 수신기 서비스에 대한 연결을 시작할 수 없지만 수신기 서비스가 배포 서비스를 실행하는 호스트에 대한 연결을 시작할 수 있는 경우 수신기 서비스는 Oracle GoldenGate를 사용하여 요청된 추적 파일을 가져오기 위해 방화벽 또는 DMZ(Demilitarized) 영역을 통해 배포 서비스에 대한 보안 또는 비보안 대상 시작 경로를 설정합니다. 수신기 서비스 끝점은 수신기 서비스에서 추적 파일 검색을 시작했음을 표시합니다.
경로(읽기 전용)는 대상 배치의 수신기 서비스에서 생성되며 TARGET_INITIATED 속성을 가집니다. 이 경로는 배포 서비스에서도 액세스할 수 있습니다. 경로 정보는 대상 시스템에 저장됩니다. 통신이 손실된 경우 대상 호스트의 수신기 서비스에서 연결을 다시 시작하려면 경로 정의가 필요합니다. 이 정보는 경로가 실행 중일 때 배포 서비스와 공유됩니다. 경로는 소스 배포에서 임시입니다. 임시 경로는 경로 구성을 통합하고 대상-소스 연결 시작을 강화하는 데 도움이 됩니다.
경로가 중지되거나 연결이 해제되면 배포 서비스는 경로 정의를 포함한 모든 경로 정보를 제거합니다. 그러나 체크포인트 파일은 이전 추적을 지울 수 있는지 여부를 결정하는 데 사용되기 때문에 보유됩니다. 경로가 의도적으로 삭제되지 않는 한 이전 트레일은 지우지 않는 것이 좋습니다.
관련 항목:
Oracle GoldenGate 역 프록시 지원
역 프록시를 사용하면 배포에서 하나의 단일 포트(443)를 사용하여 마이크로서비스에 액세스할 수 있습니다. 이렇게 하면 비보안 배포를 통해 마이크로서비스에 대한 URL을 캡슐화할 수 있습니다. 주: 역 프록시는 선택 사항이지만, Oracle은 마이크로서비스에 쉽게 액세스하고 향상된 보안을 제공할 것을 권장합니다.
루프백 주소의 비보안 배포에서 마이크로서비스를 실행하고 Nginx 설치를 사용하여 HTTP 리버스 프록시로 마이크로서비스를 시작할 수 있습니다.
Oracle GoldenGate MA에는 Nginx 역 프록시 서버에 대해서만 구성 파일을 생성하는 ReverseProxySettings라는 스크립트가 포함되어 있습니다.
예를 들어, 관리 서비스는 http://goldengate.example.com:9001에서 사용할 수 있으며 배포 서비스는 http://goldengate.example.com:9002에 있습니다. 리버스 프록시를 사용하면 단일 주소에서 각 마이크로서비스에 간단히 액세스할 수 있습니다. 배포 서비스의 경우 http://goldengate.example.com/distsrvr을 예로 들 수 있습니다. URL은 각 서비스에 대해 다르며 포트가 아닌 이름으로 지정됩니다.
이러한 값은 Service Manager에 연결할 때 사용되며 인증이 사용으로 설정된 경우 필요합니다.
Oracle GoldenGate를 사용하여 NGINX 역 프록시를 구현하려면 NGINX를 사용하여 Oracle GoldenGate 역 프록시 구성을 참조하십시오.