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アーキテクチャをまとめたものです。

Architecture overview

Google Compute Engine(つまり仮想マシン)は、転送ルール(1)にルーティングするプライベートの仮想 IP アドレスに接続します。転送ルールは、プライベート接続(2)を介してサービスアタッチメントに接続します。接続は、Snowflake(4)にリダイレクトするロードバランサー(3)を介してルーティングされます。

考慮事項

Google Private Service Connectは、次の2つのユースケースに対するネイティブサポートを提供していません。

  • クロスリージョンのプライベート接続。

  • Snowflakeへのオンプレミス接続。

考えられる回避策は、プロキシファームを作成し、転送ルールにルーティングすることです。

転送ルールに接続するGoogle Cloudサブネットは、Snowflakeアカウントと同じクラウドリージョンにある必要があることに注意してください。

設定については、社内のGoogle Cloud管理者にお問い合わせください。

構成手順

このセクションでは、Google Cloud Private Service ConnectをSnowflakeに接続するように設定する方法について説明します。

注意

このセクションでは、Google Cloud VPC 環境を設定するためのSnowflake固有の詳細のみを説明します。また、必要なファイアウォールの更新、および DNS 記録の実際の構成に対して、Snowflakeは責任を 負いません

これらの構成タスクのいずれかで問題が発生した場合は、Googleサポートに直接お問い合わせください。

インストールのヘルプについては、 Cloud SDK: コマンドラインインターフェイス に関するGoogleドキュメントをご参照ください。

  1. Snowflakeサポート に連絡し、Google Cloud <プロジェクトID> の値と、Snowflakeへのアクセスに使用する対応する URLs のリストと、Google Cloud Private Service Connectを有効にするためのメモを提供してください。Snowflakeサポートからの応答を受け取ったら、次のステップに進みます。

  2. Worksheets Worksheet tab タブのSnowflakeワークシートで ACCOUNTADMIN システムロールを使用して SYSTEM$GET_PRIVATELINK_CONFIG 関数を実行し、次のステップで使用するためにコマンド出力を保存します。

    use role accountadmin;
    select key, value from table(flatten(input=>parse_json(system$get_privatelink_config())));
    
  3. コマンドラインインターフェイス(例: ターミナルアプリケーション)で、 gcloudライブラリ を最新バージョンに更新します。

    gcloud components update
    
  4. 次のコマンドを使用し、Google Cloud Platformに対して 認証 します。

    gcloud auth login
    
  5. Google Cloud VPC で、転送ルールが存在するプロジェクト ID を設定します。

    gcloud config set project <project_id>
    

    プロジェクト IDs のリストを取得するには、次のコマンドを実行します。

    gcloud projects list --sort-by=projectId
    
  6. 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アカウントが配置されているクラウドリージョンを指定します。

    .

  7. 転送ルール を作成して、サブネットを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を参照)。

    .

  8. 次のコマンドを使用して、転送ルールが 正常に 作成されたことを確認します。

    gcloud compute forwarding-rules list --regions=<region>
    

    このコマンドのクラウドリージョンは、Snowflakeアカウントが配置されているクラウドリージョンと一致する必要があります。

    たとえば、Snowflakeアカウントが europe-west-2 リージョンにある場合は、 <リージョン>europe-west2 に置き換えます。

    Google Cloudリージョンとそのフォーマットの完全なリストについては、 利用可能なリージョンのリストの表示 をご参照ください。

  9. DNS 設定を更新します。Snowflakeに対するリクエストすべては、Private Service Connectエンドポイントを介してルーティングする必要があります。ステップ1の URLs (privatelink-account-url および privatelink-ocsp-url)が、作成した VIP アドレス(<顧客VIPアドレス>)に解決されるように DNS 設定を更新します。

    Snowflakeで、 SYSTEM$GET_PRIVATELINK_CONFIG 出力からの次の値を使用します。

    privatelink-account-url および privatelink-ocsp-url

    . 以下のいずれかの機能を使用している、または将来使用する可能性がある場合は、次の値を持つ追加の DNS 記録を作成するか、Snowflakeアカウントの次の値と OCSP キャッシュサーバーの値を組み合わせる必要があります。このステップにより、Google Cloud Private Service Connectエンドポイントを介して、これらの機能に確実にアクセスできるようになります。

    Snowflake Data MarketplaceまたはSnowsight

    app.<リージョンID>.privatelink.snowflakecomputing.com

    region_id にはリージョン値のみが含まれ、クラウドプラットフォームセグメントは含まれないことに注意してください。たとえば、お住まいのリージョンが US 中部1(アイオワ)の場合は、 us-central1 を使用します。

    組織

    <組織名>-<アカウント名>.privatelink.snowflakecomputing.com

    詳細については、 アカウント識別子 をご参照ください。

    注釈

    DNS 構成の詳細な説明は、この手順の範囲外です。たとえば、 クラウド DNS を使用して、ご利用の環境にプライベート DNS ゾーンを統合することを選択できます。Google Cloudおよびクラウドインフラストラクチャの内部管理者と相談して、 DNS プロパティにある URLs を適切に構成および解決してください。

  10. SnowCD (Connectivity Diagnostic Tool) を使用して、Snowflakeへの接続をテストします。

  11. プライベート接続アカウント URL を使用してSnowflakeに接続します。

Google Cloud Private Service Connectを使用して、Snowflakeに接続できるようになります。

Google Private Service Connectでの SSO の使用

Snowflakeは、Google Cloud Private Service Connectでの SSO の使用をサポートしています。詳細については、次をご参照ください。

Google Cloud Private Service Connectでのクライアントリダイレクトの使用

Snowflakeは、Google Cloud Private Service Connectでのクライアントリダイレクトの使用をサポートしています。

詳細については、 クライアント接続のリダイレクト をご参照ください。

パブリックアクセスのブロック --- オプション

SnowflakeとのGoogle Cloud Private Service Connect接続をテストした後、 必要に応じて ネットワークポリシー を使用して、Snowflakeへのパブリックアクセスをブロックできます。

組織の IP アドレス範囲 を使用してSnowflakeへのパブリックアクセスをブロックするように CIDR ブロック範囲を設定します。この範囲は、ご利用の仮想ネットワーク内から指定できます。

CIDR ブロック範囲が設定されると、 CIDR ブロック範囲内の IP アドレスのみがSnowflakeにアクセスできます。

ネットワークポリシーを使用してパブリックアクセスをブロックするには、

  1. 新しいネットワークポリシーを作成するか、既存のネットワークポリシーを編集します。組織の CIDR ブロック範囲を追加します。

  2. アカウントのネットワークポリシーをアクティブにします。