OCSP 구성

이 항목에서는 OCSP에 대한 개요, Snowflake에서 OCSP 사용법 및 OCSP 문제 진단 정보를 제공합니다.

이 항목의 내용:

OCSP 개요

Snowflake는 온라인 인증서 상태 프로토콜(OCSP)을 사용하여 Snowflake 클라이언트가 HTTPS를 통해 엔드포인트에 연결하려고 시도할 때 인증서가 해지되었는지 여부를 판단하기 위한 최상의 보안을 제공합니다.

Snowflake는 OCSP를 사용하여 루트 인증서 기관(CA)이 발급한 임시 인증서까지의 트러스트 체인에서 각 인증서를 평가합니다. 각 인증서가 해지되지 않았는지 확인하는 것은 Snowflake가 ID 확인 프로세스 중에 신뢰할 수 있는 작업자와 안전하게 연결하는 데 도움이 됩니다.

사용자의 클라이언트 또는 드라이버 버전 및 이 페이지에서 설명되는 구성에 따라, OCSP를 끄고 OCSP에서 인증서가 해지되었다고 판단될 때 발생하는 동작을 조정할 수 있습니다.

페일 오픈 또는 페일 클로즈 동작

현재, 사용자는 OCSP 이벤트 중 Snowflake 클라이언트 또는 드라이버가 응답하는 방법에 따라 두 가지 동작 중에서 선택할 수 있습니다.

  1. 페일 오픈

  2. 페일 클로즈

페일 오픈

Snowflake는 OCSP CA 응답을 평가할 때 기본적으로 페일 오픈 방식을 지원합니다. 페일 오픈 방식의 특징은 다음과 같습니다.

  • 해지된 인증서를 나타내는 응답으로 인해 연결이 실패하게 됩니다.

  • 기타 인증서 오류 또는 상태가 포함된 응답에서는 연결이 허용되지만, JSON 형식의 관련 세부 정보와 함께 WARNING 수준의 로그에 메시지가 표시됩니다.

사용자는 특정 드라이버 또는 커넥터에 대한 로그를 모니터링하여 페일 오픈 로그 이벤트의 빈도를 결정할 수 있습니다.

이러한 이벤트 로그를 Snowflake 상태 페이지 와 함께 사용하여 클라이언트 액세스 임시 제한 또는 페일 클로즈 동작 사용과 같은 최상의 동작을 결정할 수 있습니다.

현재, 페일 오픈 기본 방식이 적용되는 클라이언트 및 드라이버 버전은 다음과 같습니다.

클라이언트 / 드라이버

버전

SnowSQL

v1.1.79 이상

Python Connector

v1.8.0 이상

JDBC 드라이버

v3.8.0 이상

ODBC 드라이버

v2.19.0 이상

SQL Alchemy

Python Connector를 v1.8.0 이상으로 업그레이드

Spark

Maven 또는 SBT를 사용하여 Spark 애플리케이션을 빌드하는 경우 v2.4.14 이상. . JAR 파일을 Spark 클러스터에 첨부하는 경우 JDBC v3.8.0 이상. . Databricks 기본 제공 Spark 커넥터를 사용 중인 경우 Spark 커넥터를 업그레이드하려면 Databricks에 요청하십시오.

Go 드라이버

v1.2.0 이상

Node.js

v1.2.0 이상

참고

Snowflake는 .NET 드라이버에 대한 OCSP 확인을 지원하지 않습니다. 대신, .NET은 자체 프레임워크를 사용하여 HTTPS 인증서의 유효성을 확인합니다.

페일 클로즈

페일 클로즈 동작은 OCSP CA 응답을 보다 제한적으로 해석합니다. 이유와 관계없이 클라이언트 또는 드라이버가 유효한 OCSP CA 응답을 수신하지 않으면 연결이 실패하게 됩니다.

이 동작은 페일 오픈 섹션에 표시된 버전을 기준으로 하지 않으므로, 각 드라이버 또는 커넥터에서 페일 클로즈를 수동으로 구성해야 합니다.

페일 클로즈 동작을 유지하려면 해당 ocsp_fail_open 매개 변수를 false 로 설정합니다.

클라이언트 / 드라이버

설정

SnowSQL

snowsql -o ocsp_fail_open=false

Python Connector

자세한 내용은 Python Connector 설명서의 페일 오픈 또는 페일 클로즈 모드 선택하기 를 참조하십시오.

JDBC 드라이버

자세한 내용은 JDBC 드라이버 설명서의 페일 오픈 또는 페일 클로즈 모드 선택하기 를 참조하십시오.

ODBC 드라이버

다음 중 1개 선택: . 연결 매개 변수를 OCSP_FAIL_OPEN=false 로 설정 . 환경 변수 $SIMBAINI를 사용하여 해당 파일 찾기. 그리고 OCSPFailOpen=false 로 설정합니다.

SQL Alchemy

JDBC 드라이버 설정을 참조하십시오.

Spark

Spark 커넥터에는 ocsp_fail_open 매개 변수가 없습니다. . 페일 클로즈는 JDBC 드라이버를 사용하는 경우에만 Spark에서 유지될 수 있습니다.

Go 드라이버

다음 중 1개 수행: . - 구성의 OCSPFailOpen 매개 변수를 ocspFailOpenTrue 또는 ocspFailOpenFalse 로 설정, 예: . import ( ... sf "github.com/snowflakedb/gosnowflake ... ") . config: &Config{ Account: "xy12345", ...,  OCSPFailOpen: sf.ocspFailOpenFalse, ... } . - 연결 문자열의 ocspFailOpen 연결 매개 변수를 true 또는 false 로 설정, 예: . user:pass@account/db/s?ocspFailOpen=false. . 대/소문자(대문자 / 소문자) 차이에 유의하십시오. . Go 연결 매개 변수에 대한 자세한 내용은 GoDoc gosnowflake 설명서 를 참조하십시오.

Node.js

전역 매개 변수 ocspFailOpen=false 를 설정합니다. 자세한 내용은 Node.js 드라이버 사용하기 섹션을 참조하십시오.

레거시 클라이언트 & 드라이버 버전

사용 중인 클라이언트 또는 드라이버 버전이 페일 오픈 섹션에 표시된 버전보다 이전 버전인 경우에는 페일 오픈 동작을 선택할 수 없습니다. 그러므로 페일 클로즈 동작이 기본값입니다.

OCSP와 관련하여 레거시 클라이언트 및 드라이버 버전을 사용하는 Snowflake 배포에서 수행할 수 있는 3가지 옵션은 다음과 같습니다.

  1. 클라이언트 또는 드라이버를 최신 버전으로 업그레이드(최상의 옵션).

  2. 페일 클로즈 동작을 계속해서 사용.

  3. Snowflake Community의 이 기술 문서 참조 자료 에서 제공되는 설명과 같이 OCSP 모니터링(즉, 비보안 모드)을 끕니다.

모범 사례

위험을 완화하기 위해 Snowflake가 권장하는 안전한 통신 유지 모범 사례는 다음과 같습니다.

  1. Snowflake 서비스에 비공개 연결 를 사용하여 Snowflake에 대한 공용 액세스를 차단합니다.

  2. 클라이언트 드라이버가 관리형 데스크탑 및 서버에서만 실행되도록 허용합니다.

  3. 클라이언트 드라이버 로그를 관리 시스템으로 전송하거나 Snowflake에 업로드합니다. OCSP 확인을 수행하지 않고 수립된 연결을 모니터링합니다.

참고

Snowflake 서비스에 비공개 연결 를 지원하려면 Business Critical 이상이 필요합니다. 업그레이드에 대해 문의하려면 Snowflake 지원 에 문의하십시오.

CA 사이트 또는 OCSP 응답자를 사용하여 통신 확인하기

통신이 차단되지 않았는지 확인하려면:

1단계: 인증서의 URL 검색

서명된 Snowflake 인증서에 대한 OCSP를 확인하기 위해 Snowflake에서 사용한 URL 검색:

  1. Google Chrome에서 Snowflake 웹 인터페이스에 로그인합니다.

  2. 브라우저 창의 오른쪽 상단 모서리에서 아이콘(《Chrome 맞춤 설정 및 제어》)을 클릭합니다. 그리고 More Tools » Developer Tools 를 클릭합니다.

  3. 개발자 도구 프레임이 표시됩니다. 프레임에서 Security 탭을 클릭합니다.

  4. View certificate 버튼을 클릭하고 Details 섹션을 확장합니다.

  5. 적절한 확장을 찾을 때까지 세부 정보를 스크롤하고 다음의 URL을 기록합니다.

    온라인 인증서 상태 프로토콜 (예: http://ocsp.netsolssl.com)

    예:

    Viewing OCSP URL for certificate in Developer Tools

다음으로, URL에 액세스할 수 있는지 테스트합니다(2단계 참조). 여러 네트워크 문제로 인해 Snowflake 클라이언트가 URL에 액세스하지 못할 수 있습니다. 예를 들어, 방화벽에 의해 Snowflake에서 사용되는 사이트에 액세스하지 못할 수 있습니다.

2단계: URL 테스트

운영 체제별 단계를 완료하여 1단계에서 검색한 URL(<ocsp_url>)에 연결할 수 있는지 확인합니다.

Windows
  1. 연결 문제가 지속되는 호스트에서 PowerShell 창을 엽니다.

  2. 다음 명령을 실행합니다.

    Invoke-WebRequest <ocsp_url>
    

    Invoke-WebRequest 명령은 웹 페이지 또는 웹 서비스에 HTTP 연결을 전송하고 응답을 반환합니다.

Linux / macOS
  1. 연결 문제가 지속되는 호스트에서 터미널을 엽니다.

  2. 다음 명령을 실행합니다.

    curl -I <ocsp_url>
    

성공하면, 명령에서 다음과 유사한 결과가 반환됩니다.

HTTP/1.1 200 OK
Server: Apache
X-OCSP-Responder-ID: dwdccaocsp27
Content-Length: 5
Content-Type: application/ocsp-response
Date: Thu, 09 Aug 2018 19:19:20 GMT
Connection: keep-alive

명령에서 오류가 반환되면 네트워크 관리자에게 문제를 보고하여 추가적인 진단을 수행하십시오. 네트워크 관리자는 인증서를 확인하기 위해 사용되는 OCSP 호스트를 명시적으로 허용해야 할 수 있습니다.

명령에서 200 이 아닌 상태 코드가 반환되면 Snowflake 지원 에 문의하십시오.

Snowflake에서 사용되는 CA 사이트 및 OCSP 응답자(클라우드 플랫폼 및 리전별)

OCSP 인증서를 확인하기 위해 Snowflake가 사용하는 호스트는 다음과 같습니다. 지정된 클라우드 플랫폼을 위한 호스트는 리전마다 다를 수 있음에 유의하십시오.

중요

다음은 가장 일반적으로 사용되는 호스트의 예입니다. 각 리전(또는 개별 계정)에서 Snowflake는 다른 CA에서 발급된 인증서를 사용하므로, 호스트 및 URLs이 다를 수 있습니다. 예:

  • US 서부(AWS 기반)에 위치한 대부분의 계정의 경우, Snowflake는 현재 Network Solutions에서 제공하는 Digicert 서명 인증서를 사용합니다.

  • 기타 리전(AWS 기반)의 경우, Snowflake는 Amazon CA에서 제공하는 인증서를 대부분 사용합니다.

또한, Snowflake는 만료 시 또는 향상이 필요한 경우 인증서를 변경할 수 있으므로, 호스트 및 URLs이 다를 수 있습니다.

사용자 계정에 대한 전체 호스트 및 URL 목록은 Snowflake 지원 에 문의하십시오.

AWS 기반 Snowflake

호스트

US 서부

기타 리전

참고

ocsp.snowflakecomputing.com:80

Snowflake의 OCSP응답 캐시 서버입니다. AWS PrivateLink 가 활성화된 경우 호스트 이름이 다를 수 있음에 유의하십시오.

*.amazontrust.com:80

*.digicert.com:80

*.netsolssl.com:80

*.ss2.us:80

*.usertrust.com:80

Microsoft Azure 기반 Snowflake

호스트

동부 US 2

참고

ocsp.snowflakecomputing.com:80

Snowflake의 OCSP응답 캐시 서버입니다. Azure Private Link 가 활성화된 경우 호스트 이름이 다를 수 있음에 유의하십시오.

*.digicert.com:80

*.msocsp.com:80

Google Cloud Platform 기반 Snowflake

호스트

us-central1

참고

ocsp.snowflakecomputing.com:80

Snowflake의 OCSP응답 캐시 서버입니다.

ocsp.digicert.com:80

ocsp.pki.goog:80

OCSP 인증을 확인하기 위해서는 80 포트가 필요

Snowflake를 통한 모든 통신은 443 포트를 사용하여 수행됩니다. 그러나 OCSP 인증 확인은 80 포트를 통해 전송됩니다. 워크스테이션이 방화벽의 후방에 위치한 경우 조직의 네트워크 관리자가 443 80 포트의 트래픽에 대해 방화벽을 열었는지 확인하십시오.

CRL을 더 이상 사용하지 않는 JDBC 및 ODBC 드라이버

CRL(인증서 해지 목록)은 지정된 CA에 의해 명시적으로 해지된 인증서를 지정합니다. JDBC 및 ODBC 드라이버의 구식 버전에서는 CRL 및 OCSP를 사용하여 TLS/SSL 인증서를 확인했습니다. 다음 버전부터, 이러한 드라이버에서는 모든 인증서 확인에서 OCSP만 사용됩니다.

  • JDBC 3.5.0 이상.

  • ODBC 2.15.0 이상.

맨 위로 이동