OCSP 設定

このトピックでは、 OCSPの概要、Snowflakeでの使用、および OCSP の問題の診断に役立つ情報を提供します。

このトピックの内容:

概要

Snowflakeは、オンライン証明書状態プロトコル(OCSP)を使用して最大のセキュリティを提供し、Snowflakeクライアントが HTTPS を介してエンドポイントに接続しようとしたときに証明書が取り消されるかどうかを判断します。

Snowflakeは、 OCSP を使用して、ルート証明機関(CA)がパブリッシュする中間証明書までの信頼チェーン内の各証明書を評価します。各証明書が取り消されないようにすることで、SnowflakeはID確認プロセス中に信頼できるアクターと安全な接続を確立できます。

クライアントまたはドライバーのバージョンとこのページで説明されている構成に応じて、 OCSP をオフにし、 OCSP が証明書が失効したと判断したときに発生するアクションを調整することができます。

フェールオープンまたはフェールクローズの動作

現在、ユーザーは、OCSP のイベント中にSnowflakeクライアントまたはドライバーがどのように応答するかに関して、2つの動作のいずれかを選択できます。

  1. フェールオープン

  2. フェールクローズ

フェールオープン

Snowflakeは、 OCSP CA 応答の評価に関して、デフォルトで フェールオープン アプローチをサポートしています。フェールオープンアプローチには次の特性があります。

  • 失効した証明書を示す応答により、接続に失敗します。

  • 他の証明書エラーまたはステータスを含む応答により、接続が発生しますが、 JSON 形式の関連詳細とともに、 WARNING レベルのログ内のメッセージを示します。

ユーザーは、特定のドライバーまたはコネクタのログを監視して、フェールオープンログイベントの頻度を判断できます。

これらのイベントログを Snowflakeステータスページ と組み合わせて、クライアントアクセスを一時的に制限したり、 フェールクローズ 動作にピボットするなどの最適なアクションを決定できます。

現在、フェールオープンのデフォルトアプローチは、次のクライアントおよびドライバーバージョンに適用されます。

クライアント/ドライバー

バージョン

SnowSQL

v1.1.79以降

Pythonコネクタ

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コネクタを使用している場合、DatabricksにSparkコネクタのアップグレードをリクエスト。

Go Driver

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コネクタ

詳細については、Pythonコネクタドキュメントの フェールオープンまたはフェールクローズモードの選択 をご参照ください。

JDBC ドライバー

詳細については、 JDBC ドライバーのドキュメントの フェールオープンまたはフェールクローズモードの選択 をご参照ください。

ODBC ドライバー

次のいずれかを選択します。 . 接続パラメーターを OCSP_FAIL_OPEN=false . に設定します。環境変数$SIMBAINI を使用して、対応するファイルを見つけます。次に OCSPFailOpen=false を設定

SQL Alchemy

JDBC ドライバーの設定を参照

Spark

Sparkコネクタには ocsp_fail_open パラメーターがありません。 . フェールクローズは、 JDBC ドライバーを使用している場合にのみSparkで保持できます。

Go Driver

次のいずれかを実行します。 . - Configの接続パラメーター OCSPFailOpenocspFailOpenTrue または 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コミュニティ内)で説明されているように、OCSPモニタリング(つまり、安全でないモード)をオフにします。

ベストプラクティス

リスクの軽減のために、Snowflakeは安全な通信を保つための次のベストプラクティスをお勧めします。

  1. Snowflakeサービスへのプライベート接続を使用し、Snowflakeへのパブリックアクセスをブロックします。

  2. クライアントドライバーが管理されたデスクトップとサーバーでのみ実行できるようにします。

  3. クライアントドライバーログを管理システムに送信するか、Snowflakeにアップロードします。OCSP チェックなしで行われた接続を監視します。

注釈

Snowflakeサービスへのプライベート接続のサポートには、 Business Critical (またはそれ以上)が必要です。アップグレードについては、 Snowflakeサポート にお問い合わせください。

Snowflakeが使用する CA サイトと OCSP レスポンダーホスト(クラウドプラットフォームと地域別)

Snowflakeは、OCSP 証明チェックに次のホストを使用します。ホストは、指定されたクラウドプラットフォームの地域に応じて異なる場合があります。

重要

これらは、最も一般的に使用されるホストの例です。各地域(または個々のアカウント)に対して、Snowflakeは異なる CAによってパブリッシュされた証明書を使用する場合があり、その結果、異なるホストと URLsになります。例:

  • US 西部( AWS上)のほとんどのアカウントでは、Snowflakeは現在、Network SolutionsのDigicert署名証明書を使用しています。

  • 他の地域( AWS上)では、Snowflakeは主にAmazon CAからの証明書を使用します。

さらに、Snowflakeは、証明書の有効期限が切れるか、または機能強化が必要になると証明書を変更する場合があり、その結果、ホストおよび URLs は変わります。

アカウントのホストおよび URLs のすべてのリストについては、 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のトラフィックに対してファイアウォールを開いていることを確認します。

JDBC と ODBC ドライバーは CRL を使用しない

CRL (証明書失効リスト)は、特定の CA が明示的に取り消した証明書を指定します。古いバージョンの JDBC および ODBC ドライバーでは、 CRL または OCSP を使用して TLS 証明書を確認していました。以下のバージョンから、ドライバーはすべての証明書確認に OCSP のみを使用します。

  • JDBC 3.5.0 (またはそれ以上)。

  • ODBC 2.15.0 (またはそれ以上)