Azure Cosmos DB for PostgreSQL에서 TLS 구성

적용 대상: Azure Cosmos DB for PostgreSQL(PostgreSQL에 대한 Citus 데이터베이스 확장 기반)

코디네이터 노드는 클라이언트 애플리케이션이 TLS(전송 계층 보안)와 연결되어야 합니다. 데이터베이스 서버와 클라이언트 애플리케이션 간에 TLS를 적용하면 데이터를 전송하는 동안 데이터를 기밀로 유지할 수 있습니다. 아래에 설명된 추가 확인 설정도 "메시지 가로채기 (man-in-the-middle)" 공격으로부터 보호합니다.

TLS 연결 적용

애플리케이션은 "연결 문자열"을 사용하여 연결에 대한 대상 데이터베이스 및 설정을 식별합니다. 클라이언트마다 다른 설정이 필요합니다. 일반 클라이언트에서 사용하는 연결 문자열 목록을 보려면 Azure Portal에서 해당 클러스터의 연결 문자열 섹션을 참조하세요.

TLS 매개 변수 sslsslmode는 커넥터의 기능에 따라 달라집니다(예: ssl=true, sslmode=require 또는 sslmode=required).

애플리케이션 또는 프레임워크가 TLS 연결을 지원하는지 확인합니다.

일부 애플리케이션 프레임워크는 기본적으로 PostgreSQL 연결에 대해 TLS를 사용하도록 설정하지 않습니다. 그러나 보안 연결이 없으면 애플리케이션이 코디네이터 노드에 연결할 수 없습니다. 애플리케이션의 설명서를 참조하여 TLS 연결을 사용하도록 설정하는 방법을 알아보세요.

TLS 연결에 대한 인증서 확인이 필요한 애플리케이션

경우에 따라 안전한 연결을 위해 애플리케이션에 신뢰할 수 있는 CA(인증 기관) 인증서 파일(.cer)에서 생성되는 로컬 인증서 파일이 필요합니다. Azure Cosmos DB for PostgreSQL에 연결하기 위한 인증서는 https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem에 있습니다. 인증서 파일을 다운로드하여 원하는 위치에 저장합니다.

참고 항목

인증서의 신뢰성을 확인하려면 OpenSSL 명령줄 도구를 사용하여 SHA-256 지문을 확인합니다.

openssl x509 -in DigiCertGlobalRootG2.crt.pem -noout -sha256 -fingerprint

# should output:
# CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F

psql을 사용하여 연결

다음 예에서는 psql 명령줄 유틸리티를 사용하여 코디네이터 노드에 연결하는 방법을 보여 줍니다. sslmode=verify-full 연결 문자열 설정을 사용하여 TLS 인증서 확인을 적용합니다. 로컬 인증서 파일 경로를 sslrootcert 매개 변수에 전달합니다.

다음은 psql 연결 문자열의 예입니다.

psql "sslmode=verify-full sslrootcert=DigiCertGlobalRootG2.crt.pem host=c-mydemocluster.12345678901234.postgres.cosmos.azure.com dbname=citus user=citus password=your_pass"

sslrootcert에 전달된 값이 저장한 인증서의 파일 경로와 일치하는지 확인합니다.

다음 단계

Azure Cosmos DB for PostgreSQL의 방화벽 규칙으로 보안을 더욱 강화합니다.