OCSP 設定¶
このトピックでは、 OCSPの概要、Snowflakeでの使用、および OCSP の問題の診断に役立つ情報を提供します。
このトピックの内容:
OCSP の概要¶
Snowflakeは、オンライン証明書状態プロトコル(OCSP)を使用して最大のセキュリティを提供し、Snowflakeクライアントが HTTPS を介してエンドポイントに接続しようとしたときに証明書が取り消されるかどうかを判断します。
Snowflakeは、 OCSP を使用して、ルート証明機関(CA)がパブリッシュする中間証明書までの信頼チェーン内の各証明書を評価します。各証明書が取り消されないようにすることで、SnowflakeはID確認プロセス中に信頼できるアクターと安全な接続を確立できます。
クライアントまたはドライバーのバージョンとこのページで説明されている構成に応じて、 OCSP をオフにし、 OCSP が証明書が失効したと判断したときに発生するアクションを調整することができます。
フェールオープンまたはフェールクローズの動作¶
現在、ユーザーは、OCSP のイベント中にSnowflakeクライアントまたはドライバーがどのように応答するかに関して、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 |
|
Pythonコネクタ |
詳細については、Pythonコネクタドキュメントの フェールオープンまたはフェールクローズモードの選択 をご参照ください。 |
JDBC ドライバー |
詳細については、 JDBC ドライバーのドキュメントの フェールオープンまたはフェールクローズモードの選択 をご参照ください。 |
ODBC ドライバー |
次のいずれかを選択します。 . 接続パラメーターを |
SQL Alchemy |
JDBC ドライバーの設定を参照 |
Spark |
Sparkコネクタには |
Go Driver |
次のいずれかを実行します。 . - Configの接続パラメーター |
Node.js |
グローバルパラメーター |
従来のクライアントおよびドライバーのバージョン¶
クライアントまたはドライバーのバージョンがフェールオープンのセクションにリストされているものよりも古い場合、フェールオープンの動作はオプションではありません。したがって、フェールクローズ動作はデフォルトです。
OCSP に関してレガシークライアントおよびドライバーバージョンを使用するSnowflakeデプロイメントには、3つのオプションがあります。
クライアントまたはドライバーを最新バージョンにアップグレードする(最適なオプション)。
フェールクローズ動作を引き続き使用する。
この ナレッジベースの記事 (Snowflakeコミュニティ内)で説明されているように、OCSPモニタリング(つまり、安全でないモード)をオフにします。
ベストプラクティス¶
リスクの軽減には、Snowflakeは安全な通信を保つための次のベストプラクティスをお勧めします。
AWS PrivateLink または Azure Private Link を使用して、Snowflakeへのパブリックアクセスをブロックします。
クライアントドライバーが管理されたデスクトップとサーバーでのみ実行できるようにします。
クライアントドライバーログを管理システムに送信するか、Snowflakeにアップロードします。OCSP チェックなしで行われた接続を監視します。
注釈
AWS PrivateLink とAzure Private Linkのサポートには、 Business Critical (またはそれ以上)が必要です。アップグレードについては、 Snowflakeサポート にお問い合わせください。
CA サイトまたは OCSP レスポンダーとの通信の確認¶
通信がブロックされていないことを確認するには、
ステップ1:証明書の URL を取得する¶
Snowflakeは、署名済みのSnowflake証明書の OCSP チェックに使用する URL を取得します。
Google Chromeで、Snowflakeウェブインターフェイスにログインします。
ブラウザーウィンドウの右上隅にあるアイコン(「Google Chromeのカスタマイズと制御」)をクリックします。次に、 More Tools » Developer Tools をクリックします。
開発者ツールフレームが表示されます。フレームで、 Security タブをクリックします。
View certificate ボタンをクリックして、 Details セクションを展開します。
適切な拡張子が見つかるまで詳細をスクロールして、次の URL を書き留めます。
オンライン証明書状態プロトコル (例:
http://ocsp.netsolssl.com
)例:
次に、 URL にアクセスする能力をテストします(ステップ2 を参照)。さまざまなネットワークの問題により、Snowflakeクライアントが URLにアクセスできなくなる可能性があります。たとえば、Snowflakeが使用するサイトへのアクセスをファイアウォールがブロックしている可能性があります。
ステップ2: URL をテストする¶
オペレーティングシステム固有の手順を完了して、ステップ1で取得した URL (<OSCPのURL>
)に到達できるかどうかを確認します。
- Windows
接続の問題が続くホストで PowerShell ウィンドウを開きます。
次のコマンドを実行します:
Invoke-WebRequest <ocsp_url>
Invoke-WebRequest
コマンドは、 HTTP リクエストをウェブページまたはウェブサービスに送信し、応答を返します。
- Linux / macOS
接続の問題が続くホストでターミナルを開きます。
次のコマンドを実行します:
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 レスポンダーホスト(クラウドプラットフォームおよび地域別)¶
Snowflakeは、OCSP 証明チェックに次のホストを使用します。ホストは、指定されたクラウドプラットフォームの地域に応じて異なる場合があります。
重要
これらは、最も一般的に使用されるホストの例です。各地域(または個々のアカウント)に対して、Snowflakeは異なる CAによってパブリッシュされた証明書を使用する場合があり、その結果、異なるホストと URLsになります。例:
US 西部( AWS上)のほとんどのアカウントでは、Snowflakeは現在、Network SolutionsのDigicert署名証明書を使用しています。
他の地域( AWS上)では、Snowflakeは主にAmazon CAからの証明書を使用します。
さらに、Snowflakeは、証明書の有効期限が切れるか、または機能強化が必要になると証明書を変更する場合があり、その結果、ホストおよび URLsは変わります。
アカウントのホストおよび URLs のすべてのリストについては、 Snowflakeサポート にお問い合わせください。
AWS上のSnowflake¶
ホスト |
US 西部 |
その他の地域 |
メモ |
---|---|---|---|
|
✔ |
✔ |
Snowflakeの OCSP 応答キャッシュサーバー。 AWS PrivateLink が有効な場合、ホスト名は異なります。 |
|
✔ |
✔ |
|
|
✔ |
✔ |
|
|
✔ |
||
|
✔ |
✔ |
|
|
✔ |
Microsoft Azure上のSnowflake¶
ホスト |
東部 US 2 |
メモ |
---|---|---|
|
✔ |
Snowflakeの OCSP 応答キャッシュサーバー。 Azure Private Link が有効な場合、ホスト名は異なります。 |
|
✔ |
|
|
✔ |
Google Cloud PlatformのSnowflake¶
ホスト |
us-central1 |
メモ |
---|---|---|
|
✔ |
Snowflakeの OCSP 応答キャッシュサーバー。 |
|
✔ |
|
|
✔ |
OCSP 証明チェックにはポート80が必要¶
Snowflakeとのすべての通信には、ポート443を使用します。ただし、 OCSP 証明チェックはポート80を介して送信されます。ワークステーションがファイアウォールの内側にある場合は、組織のネットワーク管理者がポート443 および 80のトラフィックに対してファイアウォールを開いていることを確認します。
JDBC およびODBC ドライバーは、 CRL の必要なし¶
CRL (証明書失効リスト)は、特定の CA によって明示的に失効した証明書を指定します。古いバージョンの JDBC および ODBC ドライバーでは、 CRL または OCSP を使用して TLS/SSL 証明書を確認しました。以下のバージョンから、ドライバーはすべての証明書確認に OCSP のみを使用します。
JDBC 3.5.0 (またはそれ以上)。
ODBC 2.15.0 (またはそれ以上)