Google Cloud Private Service ConnectとSnowflake¶
このトピックでは、パブリックインターネットを経由せずに、Google Cloud Virtual Private Cloud(VPC)ネットワークサブネットをGoogle Cloud PlatformでホストされているSnowflakeアカウントに接続するように、Google Cloud Private Service Connectを構成する概念と方法について説明します。
Google Cloud Private Service Connectは、Snowflakeが提供するサービスでは ありません。Snowflakeが、Snowflakeアカウントで使用できるようにするGoogleのサービスです。
Business Critical Edition(またはそれ以上)を使用していて、アカウントでGoogle Cloud Private Service Connectを使用する場合は、 Snowflakeサポート に連絡して有効化をリクエストしてください。
このトピックの内容:
概要¶
Google Cloud Private Service Connect は、Snowflakeへのアクセスをプライベート IP アドレス経由にすることで、Snowflakeへのプライベート接続を提供します。Snowflakeはネットワーク(つまり、顧客ネットワーク)のリソースとして表示されますが、トラフィックはGoogleネットワークバックボーンを介して VPC からSnowflake VPC に一方向に流れます。この設定により、安全でプライベートな通信を提供しながら、ネットワーク構成が大幅に簡素化されます。
次の図は、お客様のGoogle Cloud VPC とSnowflakeサービスに関するGoogle Cloud Private Service Connectアーキテクチャをまとめたものです。
Google Compute Engine(つまり仮想マシン)は、転送ルール(1)にルーティングするプライベートの仮想 IP アドレスに接続します。転送ルールは、プライベート接続(2)を介してサービスアタッチメントに接続します。接続は、Snowflake(4)にリダイレクトするロードバランサー(3)を介してルーティングされます。
制限事項¶
セルフサービス管理用のSnowflakeシステム関数はサポートされていません。詳細については、 GCP のアカウントの現在の制限 をご参照ください。
詳細については、以下をご参照ください。
構成手順¶
このセクションでは、Google Cloud Private Service ConnectをSnowflakeに接続するように設定する方法について説明します。
注意
このセクションでは、Google Cloud VPC 環境を設定するためのSnowflake固有の詳細のみを説明します。また、必要なファイアウォールの更新、および DNS 記録の実際の構成に対して、Snowflakeは責任を 負いません 。
これらの構成タスクのいずれかで問題が発生した場合は、Googleサポートに直接お問い合わせください。
インストールのヘルプについては、 Cloud SDK: コマンドラインインターフェイス に関するGoogleドキュメントをご参照ください。
追加のヘルプについては、社内のGoogle Cloud管理者にお問い合わせください。
Snowflakeサポート に連絡し、Google Cloud
<プロジェクトID>
の値と、Snowflakeへのアクセスに使用する対応する URLs のリストと、Google Cloud Private Service Connectを有効にするためのメモを提供してください。Snowflakeサポートからの応答を受け取ったら、次のステップに進みます。重要
VPC で VPC サービスコントロール を使用している場合は、Snowflakeサポートに連絡する 前に、Snowflakeサービスへのアクセスがポリシーで許可されていることを確認してください。
このアクションを実行しないと、Snowflakeは、プロジェクト ID をSnowflakeサービスの添付ファイル許可リストに追加できません。その結果、この機能を使用したSnowflakeへの接続はブロックされます。
Snowflakeワークシートで ACCOUNTADMIN システムロールを使用して SYSTEM$GET_PRIVATELINK_CONFIG 関数を実行し、次のステップで使用するためにコマンド出力を保存します。
use role accountadmin; select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
コマンドラインインターフェイス(例: ターミナルアプリケーション)で、 gcloudライブラリ を最新バージョンに更新します。
gcloud components update
次のコマンドを使用し、Google Cloud Platformに対して 認証 します。
gcloud auth login
Google Cloud VPC で、転送ルールが存在するプロジェクト ID を設定します。
gcloud config set project <project_id>
プロジェクト IDs のリストを取得するには、次のコマンドを実行します。
gcloud projects list --sort-by=projectId
Google Cloud VPC で、 仮想 IP アドレスを 作成 します。
gcloud compute addresses create <customer_vip_name> \ --subnet=<subnet_name> \ --addresses=<customer_vip_address> --region=<region>
例:
gcloud compute addresses create psc-vip-1 \ --subnet=psc-subnet \ --addresses=192.168.3.3 \ --region=us-central1 # returns Created [https://www.googleapis.com/compute/v1/projects/docstest-123456/regions/us-central1/addresses/psc-vip-1].
条件:
<顧客VIP名>
は、仮想 IP ルールの名前(つまりpsc-vip-1
)を指定します。<サブネット名>
は、サブネットの名前を指定します。<顧客VIPアドレス>
: すべてのプライベート接続 URLs は、このアドレスに解決されます。ネットワークから IP アドレスを指定するか、 CIDR 表記を使用して IP アドレスの範囲を指定します。<リージョン>
は、Snowflakeアカウントが配置されているクラウドリージョンを指定します。
.
転送ルール を作成して、サブネットをPrivate Service Connectエンドポイントにルーティングし、次にSnowflakeサービスエンドポイントにルーティングします。
gcloud compute forwarding-rules create <name> \ --region=<region> \ --network=<network_name> \ --address=<customer_vip_name> \ --target-service-attachment=<privatelink-gcp-service-attachment>
例:
gcloud compute forwarding-rules create test-psc-rule \ --region=us-central1 \ --network=psc-vpc \ --address=psc-vip-1 \ --target-service-attachment=projects/us-central1-deployment1-c8cc/regions/us-central1/serviceAttachments/snowflake-us-central1-psc # returns Created [https://www.googleapis.com/compute/projects/mdlearning-293607/regions/us-central1/forwardingRules/test-psc-rule].
条件:
<名前>
は、転送ルールの名前を指定します。<リージョン>
は、Snowflakeアカウントが配置されているクラウドリージョンを指定します。<ネットワーク名>
は、この転送ルールのネットワーク名を指定します。<顧客VIP名>
は、前のステップで作成した仮想 IP アドレスの<名前>
値(つまりpsc-vip-1
)を指定します。<Private Link GCPサービスアタッチメント>
は、Snowflakeサービスのエンドポイントを指定します(ステップ2を参照)。
.
次のコマンドを使用して、転送ルールが 正常に 作成されたことを確認します。
gcloud compute forwarding-rules list --regions=<region>
このコマンドのクラウドリージョンは、Snowflakeアカウントが配置されているクラウドリージョンと一致する必要があります。
たとえば、Snowflakeアカウントが
europe-west-2
リージョンにある場合は、<リージョン>
をeurope-west2
に置き換えます。Google Cloudリージョンとそのフォーマットの完全なリストについては、 利用可能なリージョンのリストの表示 をご参照ください。
DNS 設定を更新します。
Snowflakeへのリクエストすべては、Private Service Connectエンドポイント経由でルーティングして、ステップ2の URLs (SYSTEM$GET_PRIVATELINK_CONFIG 関数から)が、作成した VIP アドレス(
<顧客VIPアドレス>
)に解決するようにする必要があります。これらのエンドポイント値により、Snowflake、 Snowsight、および Snowflake Marketplace にアクセスするのと同時に、 OCSP を使用して、Snowflakeクライアントが HTTPS および 接続 URLs を介してエンドポイントへの接続を試みる際に、証明書が取り消されていないかどうかを確認できるようになります。
取得する関数値は次のとおりです。
privatelink-account-url
privatelink-connection-ocsp-urls
privatelink-connection-urls
privatelink-ocsp-url
regionless-privatelink-account-url
regionless-snowsight-privatelink-url
snowsight-privatelink-url
regionless-snowsight-privatelink-url
とsnowsight-privatelink-url
の値により、プライベート接続を使用して Snowsight と Snowflake Marketplace にアクセスできることに注意してください。ただし、 URL リダイレクトを有効にする場合は、追加の構成があります。詳細については、 Snowsightおよびプライベート接続 をご参照ください。
注釈
DNS 構成の詳細な説明は、この手順の範囲外です。たとえば、 クラウド DNS を使用して、ご利用の環境にプライベート DNS ゾーンを統合することを選択できます。Google Cloudおよびクラウドインフラストラクチャの内部管理者と相談して、 DNS プロパティにある URLs を適切に構成および解決してください。
SnowCD (Connectivity Diagnostic Tool) を使用して、Snowflakeへの接続をテストします。
プライベート接続アカウント URL を使用してSnowflakeに接続します。
Google Cloud Private Service Connectを介してSnowsightに接続する場合は、 Snowsightドキュメント の手順に従います。
Google Private Service Connectでの SSO の使用¶
Snowflakeは、Google Cloud Private Service Connectでの SSO の使用をサポートしています。詳細については、次をご参照ください。
Google Cloud Private Service Connectでのクライアントリダイレクトの使用¶
Snowflakeは、Google Cloud Private Service Connectでのクライアントリダイレクトの使用をサポートしています。
詳細については、 クライアント接続のリダイレクト をご参照ください。
プライベート接続での複製とTri-Secret Secureの使用¶
Snowflakeは、ターゲットアカウントでTri-Secret Secureまたはこの機能を有効にするかどうかに関係なく、ソースアカウントからターゲットアカウントへのデータの複製をサポートします。
詳細については、 データベースの複製と暗号化 をご参照ください。
パブリックアクセスのブロック --- オプション¶
SnowflakeとのGoogle Cloud Private Service Connect接続をテストした後、 必要に応じて ネットワークポリシーを使用したネットワークトラフィックの制御 を使用して、Snowflakeへのパブリックアクセスをブロックできます。
組織の IP アドレス範囲 を使用してSnowflakeへのパブリックアクセスをブロックするように CIDR ブロック範囲を設定します。この範囲は、ご利用の仮想ネットワーク内から指定できます。
CIDR ブロック範囲が設定されると、 CIDR ブロック範囲内の IP アドレスのみがSnowflakeにアクセスできます。
ネットワークポリシーを使用してパブリックアクセスをブロックするには、
新しいネットワークポリシーを作成するか、既存のネットワークポリシーを編集します。組織の CIDR ブロック範囲を追加します。
アカウントのネットワークポリシーをアクティブにします。