PostgreSQL를 사용하여 Oracle Cloud Infrastructure Database에서 Secure Socket Layer 구성

소개

PostgreSQL를 사용하는 Oracle Cloud Infrastructure Database(PostgreSQL를 사용하는 OCI 데이터베이스)는 데이터베이스 인스턴스에 대해 SSL(Secure Socket Layer) 암호화만 지원합니다. SSL을 사용하면 애플리케이션과 PostgreSQL 데이터베이스 인스턴스 간의 접속을 암호화할 수 있습니다.

SSL 암호화는 PostgreSQL 인스턴스로 OCI 데이터베이스에 대한 클라이언트 연결을 보호하여 전송 중 데이터 보호를 보장하는 데 필수적입니다. hostssl 접속 유형을 구성하고 sslmode 매개변수를 사용하여 추가 보안에 대한 SSL 확인 레벨을 제어할 수 있습니다. 기본적으로 TLSv1.2는 업계 표준 관행에 따라 클라이언트 및 서버 연결 모두에 대해 사용으로 설정됩니다. 완전히 안전하고 호환되는 PostgreSQL 환경의 경우 이러한 SSL 설정을 활용하는 것이 중요합니다.

보안 클라이언트 연결의 경우 PostgreSQL를 사용하는 OCI 데이터베이스는 pg_hba.conf 파일에서 hostssl 연결 유형만 허용합니다. hostssl 항목은 TCP/IP 연결이 SSL을 사용하여 암호화되도록 하여 클라이언트가 SSL을 인증에 사용하도록 요구합니다. require, verify-caverify-full와 같은 옵션이 포함된 sslmode 매개변수를 통해 SSL 확인 레벨을 지정할 수도 있습니다.

현재 ssl_max_protocol_versionssl_min_protocol_version 매개변수는 모두 클라이언트 및 서버 접속 모두에 TLSv1.2를 사용하도록 PostgreSQL를 사용하여 OCI 데이터베이스에 구성됩니다. 그러나 PostgreSQL를 사용하는 OCI 데이터베이스는 특정 TLS 버전을 적용할 수 없습니다. 이러한 매개변수는 읽기 전용 시스템 변수이기 때문입니다.

PostgreSQL 데이터베이스의 SSL 지원에 대한 자세한 내용은 SSL로 TCP/IP 연결 보안을 참조하십시오.

참고: SSL 지원은 PostgreSQL에 대한 모든 OCI 지역에서 제공됩니다.

목표

SSL 모듈

다음 표에서는 서로 다른 sslmode 값으로 해결되는 위험은 물론 각 값에 대한 보안 영향 및 관련 오버헤드를 보여줍니다.

SSL 모드 도청 방지 MITM 보호 명령문
disable 아니요 아니요 나는 보안에 관심이 없으며 암호화의 오버헤드를 지불하고 싶지 않습니다.
허용 가능 아니요 보안에 대해서는 신경 쓰지 않지만 서버가 보안을 유지하면 암호화 오버헤드를 지불합니다.
선호 가능 아니요 암호화에 대해서는 신경 쓰지 않지만 서버가 지원하는 경우 암호화 오버헤드를 지불하고 싶습니다.
나오는 아니요 데이터를 암호화하고 싶습니다. 오버헤드를 수락합니다. 나는 네트워크가 항상 내가 원하는 서버에 연결되도록 할 것이라고 믿습니다.
확인-카 CA 정책에 따라 다름 데이터를 암호화하고 싶습니다. 오버헤드를 수락합니다. 신뢰할 수 있는 서버에 연결하고 싶습니다.
확인-전체 데이터를 암호화하고 싶습니다. 오버헤드를 수락합니다. 신뢰할 수 있는 서버에 연결하고 제가 지정한 서버인지 확인하고 싶습니다.

다양한 sslmodes에 대한 자세한 내용은 표 31-1 SSL 모드 설명을 참조하십시오.

PostgreSQL가 있는 OCI 데이터베이스에서는 규정 및 규정 준수 요구 사항으로 인해 비SSL 연결이 지원되지 않으므로 sslmoderequire 이상(verify-ca 또는 verify-full)으로 설정해야 합니다. SSL 연결은 OCI의 규제준수 표준에 따라 전송 중인 모든 연결이 암호화되도록 하는 데 필수적입니다.

PostgreSQL 데이터베이스 노드와 함께 OCI 데이터베이스에서 사용되는 인증서는 표준화된 OCI 승인 구성을 준수하는 OCI 인증서 서비스를 통해 관리되는 프라이빗 CA(인증 기관)에서 발행합니다. 이 접근 방식은 OpenSSL와 같은 도구로 생성된 비표준 설정을 사용하는 기존 자체 서명 인증서와 다릅니다.

다양한 SSL 모드를 사용하여 PostgreSQL로 OCI 데이터베이스에 대한 접속 설정

SSL 없이 PostgreSQL를 사용하는 OCI 데이터베이스에 대한 접속 시도가 거부되고 다음 메시지가 표시됩니다.

no pg_hba.conf entry for host "yy.yy.yy.yy", user "xxxxx", database "zzzzzz", no encryption

위의 오류 메시지가 나타날 때마다 SSL 모드 값을 확인하고 문제를 해결하려면 sslmode 매개변수를 require 이상으로 설정하는 것이 좋습니다.

PostgreSQL를 사용하여 OCI 데이터베이스에서 TLS 버전 확인

다음 이미지는 PostgreSQL 인스턴스를 사용하여 OCI 데이터베이스에 접속할 때 접속의 암호화 상태를 표시합니다.

이미지

다음 질의를 실행하여 pg_settings에서 정보를 검색할 수 있습니다.

이미지

다음 질의를 사용하여 프로세스, 클라이언트 및 애플리케이션별로 PostgreSQL 인스턴스의 SSL을 사용하여 OCI 데이터베이스에 대한 자세한 정보를 수집할 수 있습니다.

이미지

시스템 뷰 pg_stat_ssl를 사용하여 모든 연결의 SSL 상태를 볼 수 있습니다. 자세한 내용은 표 27.8. pg_stat_ssl 보기를 참조하십시오.

이미지

다른 GUI 도구에서 SSL 모드 구성

다음은 OCI PostgreSQL 데이터베이스 접속에 사용할 수 있는 몇 가지 오픈 소스 GUI 툴입니다. 이 작업은 OCI PostgreSQL 데이터베이스에 접속할 때 접속 문제를 방지하기 위해 이러한 툴에서 sslmoderequire 이상으로 구성하는 방법을 보여줍니다.

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.