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-ca
및 verify-full
와 같은 옵션이 포함된 sslmode
매개변수를 통해 SSL 확인 레벨을 지정할 수도 있습니다.
현재 ssl_max_protocol_version
및 ssl_min_protocol_version
매개변수는 모두 클라이언트 및 서버 접속 모두에 TLSv1.2
를 사용하도록 PostgreSQL를 사용하여 OCI 데이터베이스에 구성됩니다. 그러나 PostgreSQL를 사용하는 OCI 데이터베이스는 특정 TLS 버전을 적용할 수 없습니다. 이러한 매개변수는 읽기 전용 시스템 변수이기 때문입니다.
PostgreSQL 데이터베이스의 SSL 지원에 대한 자세한 내용은 SSL로 TCP/IP 연결 보안을 참조하십시오.
참고: SSL 지원은 PostgreSQL에 대한 모든 OCI 지역에서 제공됩니다.
목표
- SSL 암호화를 사용하여 OCI 데이터베이스를 PostgreSQL에 연결하여 데이터베이스 인스턴스를 보호합니다. 암호화된 TCP/IP 연결을 보장하기 위해
pg_hba.conf
파일에서hostssl
연결 유형을 구성하는 것의 중요성과sslmode
매개변수가 SSL 확인 레벨을 제어하는 방법을 보여줍니다. 또한 이 자습서에서는 클라이언트 및 서버 연결 모두에 대한 TLS 버전 구성을 설명합니다.
SSL 모듈
다음 표에서는 서로 다른 sslmode
값으로 해결되는 위험은 물론 각 값에 대한 보안 영향 및 관련 오버헤드를 보여줍니다.
SSL 모드 | 도청 방지 | MITM 보호 | 명령문 |
---|---|---|---|
disable | 아니요 | 아니요 | 나는 보안에 관심이 없으며 암호화의 오버헤드를 지불하고 싶지 않습니다. |
허용 | 가능 | 아니요 | 보안에 대해서는 신경 쓰지 않지만 서버가 보안을 유지하면 암호화 오버헤드를 지불합니다. |
선호 | 가능 | 아니요 | 암호화에 대해서는 신경 쓰지 않지만 서버가 지원하는 경우 암호화 오버헤드를 지불하고 싶습니다. |
나오는 | 예 | 아니요 | 데이터를 암호화하고 싶습니다. 오버헤드를 수락합니다. 나는 네트워크가 항상 내가 원하는 서버에 연결되도록 할 것이라고 믿습니다. |
확인-카 | 예 | CA 정책에 따라 다름 | 데이터를 암호화하고 싶습니다. 오버헤드를 수락합니다. 신뢰할 수 있는 서버에 연결하고 싶습니다. |
확인-전체 | 예 | 예 | 데이터를 암호화하고 싶습니다. 오버헤드를 수락합니다. 신뢰할 수 있는 서버에 연결하고 제가 지정한 서버인지 확인하고 싶습니다. |
다양한 sslmodes
에 대한 자세한 내용은 표 31-1 SSL 모드 설명을 참조하십시오.
PostgreSQL가 있는 OCI 데이터베이스에서는 규정 및 규정 준수 요구 사항으로 인해 비SSL 연결이 지원되지 않으므로 sslmode
을 require
이상(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
이상으로 설정하는 것이 좋습니다.
-
require
SSL 모드 설정이 모드는 연결이 SSL을 사용하도록 강제하지만 서버의 인증서가 확인되지 않았습니다.
psql "sslmode=require host=<endpoint_fqdn> dbname=<database_name> user=<user_name>"
-
verify-ca
SSL 모드로 인증 기관 확인.이 모드는 SSL을 강제 적용하고 신뢰할 수 있는 CA에 대해 서버 인증서가 확인됩니다. 서버 인증서가 호스트 이름과 일치하는지 확인하지 않습니다.
psql "sslmode=verify-ca sslrootcert=<parent_directory>/<dbsystem.pub> host=<endpoint_fqdn> dbname=<database_name> user=<user_name>"
sslrootcert
: 데이터베이스 시스템의 연결 세부 정보 섹션에서 CA 인증서를 다운로드하여<parent_directory>/<dbsystem.pub>
위치에 저장합니다. 이 파일에는 신뢰할 수 있는 CA 인증서가 들어 있습니다. 이렇게 하면 유효한 CA에서 서버 인증서에 서명합니다.
-
verify-full
SSL 모드로 전체 확인이 모드는 SSL을 강제로 적용하고, 신뢰할 수 있는 CA에 대해 서버 인증서를 확인하고, 서버 인증서가 접속 중인 호스트(연결 문자열의 호스트 이름)와 일치하는지 확인합니다.
psql "sslmode=verify-full sslrootcert=<parent_directory>/<dbsystem.pub> host=<endpoint_fqdn> dbname=<database_name> user=<user_name>"
sslrootcert
: 데이터베이스 시스템의 연결 세부 정보 섹션에서 CA 인증서를 다운로드하여<parent_directory>/<dbsystem.pub>
위치에 저장합니다. 이 파일에는 신뢰할 수 있는 CA 인증서가 들어 있습니다.
호스트 이름 일치: 서버 인증서가 OCI 인증서 서비스를 통해 관리되는 프라이빗 CA에 의해 서명되고 인증서가 필요한 호스트 이름과 일치하는지 확인하기 때문에 가장 안전한 옵션입니다.
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 데이터베이스에 접속할 때 접속 문제를 방지하기 위해 이러한 툴에서 sslmode
을 require
이상으로 구성하는 방법을 보여줍니다.
-
pgAdmin
-
pgAdmin에서 서버, 등록, 서버로 이동하고 필요한 데이터베이스 접속 세부정보를 입력합니다.
-
매개변수를 누르고 SSL 모드 설정을 구성할 수 있는 SSL 섹션으로 이동합니다.
-
보안 연결 요구 사항을 준수하려면 사용 가능한 드롭다운 메뉴에서
sslmode
이require
또는 상위 레벨(예:verify-ca
또는verify-full
)로 설정되었는지 확인합니다.
-
-
DBeaver
-
DBeaver에서 생성으로 이동하고 연결을 누릅니다.
-
데이터베이스 유형 목록에서 PostgreSQL을 선택하고 다음을 눌러 계속합니다.
-
접속 설정에서 접속 설정 내의 SSL 섹션을 선택하여 SSL 매개변수를 구성합니다.
-
SSL 모드를
require
로 설정합니다.
-
승인
- 작성자 - Kaviya Selvaraj(Senior Member Technical Staff)
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Configure Secure Socket Layer in OCI Database with PostgreSQL
G39566-01
Copyright ©2025, Oracle and/or its affiliates.