Azure Private LinkとSnowflake¶
このトピックでは、Azure Virtual Network(VNet)をAzureのSnowflake VNet に接続するための、Azure Private Linkの構成方法について説明します。
Azure Private Linkは、Snowflakeが提供するサービスでは ありません。SnowflakeアカウントでSnowflakeを使用できるようにする、Microsoftのサービスです。
Business Critical(またはそれ以上)を使用していて、アカウントでAzure Private Linkを使用する場合は、 Snowflakeサポート に連絡して有効化をリクエストしてください。
このトピックの内容:
Azure Private Linkの概要¶
Azure Private Link は、Snowflakeへのアクセスがプライベート IP アドレスを介して行われるようにすることで、Snowflakeへのプライベート接続を提供します。トラフィックは、Microsoftバックボーンを使用して、顧客の仮想ネットワーク(VNet)からSnowflake VNet にのみ発生し、パブリックインターネットを回避します。これにより、アクセスルールをプライベートに保ちながら安全でプライベートな通信を提供することにより、ネットワーク構成が大幅に簡素化されます。
次の図は、顧客 VNet およびSnowflake VNet に関するAzure Private Linkアーキテクチャをまとめたものです。
仮想マシン(1)から、またはピアリング(2)経由のいずれかから、仮想ネットワークのAzure Private Linkエンドポイント(3)に接続できます。次に、そのエンドポイントはPrivate Link Service(4)に接続し、Snowflakeにルーティングします。
SnowflakeとAzure Private Linkを統合するための上位レベルの手順は次のとおりです。
Azure Private Linkを使用したSnowflakeへのアクセスの構成 にある説明に従ってプライベートエンドポイントを作成し、Snowflakeに承認をリクエストします。
Snowflakeサポート に連絡し、作成したプライベートエンドポイントの値を提供して承認をリクエストしてください。Snowflakeによる承認後、Azure Portalを使用して、プライベートエンドポイントに Approved の CONNECTION STATE 値が表示されるかどうかを確認します。Snowflakeサポートでアカウント URL および OCSP URL を確認します。
送信ファイアウォール設定を更新して、Snowflakeアカウント URL および OCSP URL を許可します。
DNS サーバーを更新して、アカウント URL および OCSP URL をPrivate Link IP アドレスに解決します。DNS エントリを自社運用の DNS サーバーまたは VNet のプライベート DNS に追加し、 DNS 転送を使用して、ユーザーがSnowflakeにアクセスする他の場所からエントリのクエリを送信できます。
プライベートエンドポイントに Approved の CONNECTION STATE 値が表示された後に、 SnowCD (Connectivity Diagnostic Tool) と SYSTEM$WHITELIST_PRIVATELINK を使用して、Snowflakeへの接続をテストします。
SnowSQL を使用してSnowflakeに接続します。
要件および制限¶
Azure VNetをAzureのSnowflake VNetに接続するようにAzure Private Linkを構成する前に、次の要件と制限を検証します。
プライベートエンドポイントを含むサブネットでは、ネットワークポリシーを 無効にする 必要があります。具体的には、サブネットプロパティに次の2つの属性を含める必要があります。
"privateLinkServiceNetworkPolicies" : "Disabled", "privateEndpointNetworkPolicies" : "Disabled"
注釈
企業ネットワークプロトコルにおいて、Azure Private Linkエンドポイントが存在するサブネットでネットワークポリシーを有効にする必要がある場合は、Azure Private Linkエンドポイントのみを含む別のサブネットを構成し、他のサブネットから、Azure Private Linkエンドポイントを含むサブネットにリクエストをルーティングする必要があります。
ARM VNets を使用します。
IPv4 TCP トラフィックのみを使用します。
SaaS アプリケーションを使用してSnowflakeに接続している場合、 SaaS アプリケーションとAzure Private Linkを一緒に使用することはできません。引き続き SaaS アプリケーションを使用して、Azure Private Linkを使用しないパスウェイを介してSnowflakeに接続できます。
Microsoft Azure Private Linkの要件と制限の詳細については、Microsoftドキュメントの プライベートエンドポイントの制限 および Private Linkサービスの制限 をご参照ください。
Azure Private Linkを使用したSnowflakeへのアクセスの構成¶
注意
このセクションでは、 VNet 環境を設定するためのSnowflake固有の詳細のみを説明します。また、必要なファイアウォールの更新、および DNS レコードの実際の構成に対して、Snowflakeは責任を 負いません 。これらの構成タスクのいずれかで問題が発生した場合は、Microsoftのサポートに直接お問い合わせください。
このセクションでは、Azure Private Linkを使用して、AzureのSnowflake VNet に接続するための、Azure VNet の構成方法について説明します。Azure Private Linkを使用してSnowflakeに接続を開始した後、Azureポータルで接続の承認状態を確認できます。
インストールのヘルプについては、 Azure CLI または Azure PowerShell のMicrosoftドキュメントをご参照ください。
前提条件のステップ と オプション1:テンプレートファイルを使用 または オプション2:Azureリソースを手動で作成 を実行して、Microsoft Azure VNet を構成し、Azure Private LinkのSnowflakeへの接続を開始します。
前提条件のステップ¶
同じAzure地域にある複数のSnowflakeアカウントで、同じAzure
SubscriptionID
を使用するかどうかを決定します。初期構成時には、Snowflakeアカウント1つとAzureSubscriptionID
1つが必要です。同じAzure地域にある複数のSnowflakeアカウントを単一のAzure
SubscriptionID
にテザーしたい場合は、 オプション1: テンプレートファイルを使用 のステップ2を完了する際、 Snowflakeサポート にお問い合わせください。
データをロードするためのAzureコンテナーの構成 を使用して、Azure BLOBストレージ内のデータファイルへの安全なアクセスを構成します。
このステップにより、Azure BLOBストレージの外部ステージからSnowflakeへのデータの一括読み込みは、Azureネットワーキングバックボーンにとどまり、パブリックインターネットを使用 しません。
Azure環境を評価して、Azure Private Linkエンドポイントを持つ専用サブネット、 または Azure Private Linkエンドポイントのみが必要かどうかを判断します。
Azure Private Linkを使用してSnowflakeに接続するための専用サブネットがすでにある場合は、このサブネットにプライベートエンドポイントを作成するだけで十分です。したがって、これら2つのファイルをダウンロードしてオプション1で使用するか、オプション2に示すように手動で構成します。
専用サブネットが なく、テンプレートファイルを使用して構成することを選択した場合は、オプション1の指示に従ってください。それ以外の場合は、オプション2に示すように手動で構成します。
重要
オプション1と2は、次の2つを仮定します。
ユースケースには、 Azure Private Linkでの SSO の使用 は含まれません。
サブネットとプライベートエンドポイントの両方を作成する必要があります。ユースケースでプライベートエンドポイントのみが必要な場合は、 オプション1:テンプレートファイルを使用 の ステップ1 に対応するファイルを使用します。
オプション1:テンプレートファイルを使用する¶
この一連のステップでは、Azure Private Linkを使用してAzureのSnowflakeに接続するために必要な、Azure Private Linkリソースを2つの異なる構成ファイルを使用して作成および初期化します。構成ファイルには次の2つのタイプがあります。
- テンプレートファイル
このファイルを使用して、プライベートエンドポイントとそのエンドポイントのサブネットを作成します。
- パラメーターファイル
このファイルを使用して、テンプレートファイルが作成するリソースを初期化します。
Azure環境によっては、専用サブネットを作成する必要がない場合があります。プライベートエンドポイントの専用サブネットがすでにある場合は、対応するファイルを使用して、そのサブネット内にエンドポイントを作成できます。
代表的な例として、以下のステップでは、専用サブネットとプライベートエンドポイントの両方が必要であると想定しています。
ご用心
テンプレートファイルとスクリプトは、Azure Private Linkを使用したSnowflakeへの接続を容易にするために、Azure環境にリソースを作成します。構成手順を完了する際には注意が必要です。追加のヘルプとサポートについては、Azure内部管理者にお問い合わせください。
次のステップで使用するこれらの2つのファイルをダウンロードします。
Azure CLI を使用した代表的な例として、
az account list --output table
を実行します。Name
およびCloudName
列の出力値に注意します。Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c91033-8b4e-40f7-9031-16c8f69233e3 Enabled True
Snowflakeサポート に連絡して、
SubscriptionId
値 および アカウント URL を共有し、これらの値がAzure Private Linkを使用することを示すメモとともにSnowflakeにアクセスします。Snowflakeは、SubscriptionId
値を自動承認のために許可します。Snowflakeから承認応答を受け取った後、 SYSTEM$GET_PRIVATELINK_CONFIG を実行して URL を取得し、Azure Private Linkを介してSnowflakeにアクセスします。重要
Snowflakeサポートがチケットを処理して
SubscriptionID
値を許可するために、最大48時間かかる場合があります。Snowflakeサポートが確認を提供するまで、しばらくお待ちください。確認を受け取った後、このステップの残りの手順を続行します。同じAzure地域にある複数のSnowflakeアカウントを単一のAzure
SubscriptionID
にテザーしたい場合は、 Snowflakeサポート にお問い合わせください。customer-privatelink-parameters.json
の各パラメーターのため、環境に合わせてvalue
を更新します。たとえば、privateLinkConsumer_vnet
のvirtualNetworkName
値をmyVirtualNetwork
に置き換えます。snowflakePrivatelinkServiceAlias
の正しいエイリアス値を決定するには、Snowflakeで SYSTEM$GET_PRIVATELINK_CONFIG を実行し、privatelink-pls-id
の値を使用します。Azure CLI で、前のステップの値を使用して次の3つのコマンドを実行します。これらの値は代表的な例であることに注意してください。
az cloud set --name <customer_cloud_name> az account set --subscription <customer_subscription_name> az group deployment create --resource-group CUSTOMER_RESOURCEGROUP_NAME --template-file customer-privatelink-template.json --parameters customer-privatelink-parameters.json
<お客様のクラウド名>
をAzureCloud
に置き換えます。<お客様のサブスクリプション名>
をMyCloud
に置き換えます。CUSTOMER_RESOURCE_GROUP
には任意の名前を選択できます。
DNS 設定。Snowflakeへのすべてのリクエストは、プライベートエンドポイント経由でルーティングする必要があります。DNS を更新して、Snowflakeアカウントと OCSP URLs をプライベートエンドポイントのプライベート IP アドレスに解決します。
プライベートエンドポイント IP アドレスを取得するには、Azureポータル Private Link Center に移動します。Private endpoints をクリックして、エンドポイントをクリックします。
Private IP address (つまり、
10.0.27.5
)の値をコピーします。アカウントと OCSP URLs がプライベート IP アドレスに解決するように DNS を構成します。Snowflakeで SYSTEM$GET_PRIVATELINK_CONFIG を実行し、
private-link-account-url
とprivate-link-ocsp-url
の値を使用します。以下のいずれかの機能を使用している、または将来使用する可能性がある場合は、次の値を持つ追加のDNS記録を作成、 または Snowflakeアカウントの次の値とOCSPキャッシュサーバーの値を組み合わせる必要があります。この手順により、プライベートエンドポイントを介してこれらの機能に確実にアクセスできます。
- Snowflake Data MarketplaceまたはSnowsight
app.<地域ID>.privatelink.snowflakecomputing.com
- 組織
詳細については、 組織名とアカウント名を理解する をご参照ください。
注釈
DNS構成の詳細な説明は、この手順の範囲外です。たとえば、 Azure Private DNS ゾーン を環境に統合することを選択できます。
Azureおよびクラウドインフラストラクチャの内部管理者と相談して、 DNS プロパティにある URLs を適切に構成および解決してください。
送信プライベートファイアウォール設定と DNS レコードを確認してAzure Private Linkアカウントと OCSP URLs を含めた後、 SnowCD (Connectivity Diagnostic Tool) および SYSTEM$WHITELIST_PRIVATELINK を使用してSnowflakeへの接続をテストします。
SnowSQL を使用してSnowflakeに接続します。
Azure Private Linkを使用してSnowflakeに接続できるようになりました。
オプション2:Azureリソースを手動で作成する¶
この一連のステップでは、Azure Private Linkを使用してAzureのSnowflakeに接続するために必要な、Azure Private Linkリソースを手動で作成および初期化します。
プライベートエンドポイントが含まれている専用サブネットが存在し、ネットワークポリシーが無効になっていることを確認します。詳しくは、 プライベートエンドポイントのネットワークポリシーを無効にする をご参照ください。
Azure CLI を使用した代表的な例として、
az account list --output table
を実行します。Name
およびCloudName
列の出力値に注意します。Name CloudName SubscriptionId State IsDefault ------- ---------- ------------------------------------ ------- ---------- MyCloud AzureCloud 13c91033-8b4e-40f7-9031-16c8f69233e3 Enabled True
Snowflakeサポート に連絡して、
SubscriptionId
値 および アカウント URL を共有し、これらの値がAzure Private Linkを使用することを示すメモとともにSnowflakeにアクセスします。Snowflakeは、SubscriptionId
値を自動承認のために許可します。Snowflakeから承認応答を受け取った後、 SYSTEM$GET_PRIVATELINK_CONFIG を実行して URL を取得し、Azure Private Linkを介してSnowflakeにアクセスします。重要
Snowflakeサポートがチケットを処理して
SubscriptionID
値を許可するために、最大48時間かかる場合があります。Snowflakeサポートが確認を提供するまで、しばらくお待ちください。確認を受け取った後、このステップの残りの手順を続行します。同じAzure地域にある複数のSnowflakeアカウントを単一のAzure
SubscriptionID
にテザーしたい場合は、 Snowflakeサポート にお問い合わせください。Azureポータルに移動します。 Private Link を検索して Private Link をクリックします。
Private endpoints をクリックしてから、 Add をクリックします。
Basics セクションで、ご使用の環境の Subscription、 Resource group、 Name、および Region フィールドに入力し、 Next: Resource をクリックします。
Resource セクションで、 Connection Method および Resource ID or Alias Field フィールドを完了します。 Request message 値はオプションです。
Connection Method には、Connect to an Azure resource by resource ID or alias を選択します。
Snowflakeで、 SYSTEM$GET_PRIVATELINK_CONFIG を実行し、
privatelink-pls-id
の値を Resource ID or Alias フィールドに入力します。このステップのスクリーンショットでは、east-us-2
地域のエイリアス値を代表例として使用しており、Azureは有効なエイリアス値を緑色のチェックマークで確認しています。
Private endpoints セクションに戻り、数分待ちます。承認されると、プライベートエンドポイントには Approved の CONNECTION STATE 値が表示されます。
DNS 設定。Snowflakeへのすべてのリクエストは、プライベートエンドポイント経由でルーティングする必要があります。DNS を更新して、Snowflakeアカウントと OCSP URLs をプライベートエンドポイントのプライベート IP アドレスに解決します。
エンドポイント IP アドレスを取得するには、Azureポータルの検索バーに移動し、エンドポイントの名前を入力します(つまり、ステップ6の NAME 値)。ネットワークインターフェイスの結果を見つけてクリックします。
Private IP address (つまり、
10.0.27.5
)の値をコピーします。アカウントと OCSP URLs がプライベート IP アドレスに解決するように DNS を構成します。Snowflakeで SYSTEM$GET_PRIVATELINK_CONFIG を実行し、
private-link-account-url
とprivate-link-ocsp-url
の値を使用します。以下のいずれかの機能を使用している、または将来使用する可能性がある場合は、次の値を持つ追加のDNS記録を作成、 または Snowflakeアカウントの次の値とOCSPキャッシュサーバーの値を組み合わせる必要があります。この手順により、プライベートエンドポイントを介してこれらの機能に確実にアクセスできます。
- Snowflake Data MarketplaceまたはSnowsight
app.<地域ID>.privatelink.snowflakecomputing.com
- 組織
詳細については、 組織名とアカウント名を理解する をご参照ください。
注釈
DNS 構成の詳細な説明は、この手順の範囲外です。たとえば、 Azure Private DNS ゾーン を環境に統合することを選択できます。Azureおよびクラウドインフラストラクチャの内部管理者と相談して、 DNS プロパティにある URLs を適切に構成および解決してください。
送信プライベートファイアウォール設定と DNS レコードを確認してAzure Private Linkアカウントと OCSP URLs を含めた後、 SnowCD (Connectivity Diagnostic Tool) および SYSTEM$WHITELIST_PRIVATELINK を使用してSnowflakeへの接続をテストします。
SnowSQL を使用してSnowflakeに接続します。
Azure Private Linkを使用してSnowflakeに接続できるようになりました。
Azure Private Linkでの SSO の使用¶
Snowflakeは、Azure Private LinkでのSSOの使用をサポートしています。詳細については、次をご参照ください。
パブリックアクセスのブロック --- オプション¶
SnowflakeとAzure Private Linkの接続をテストした後、 オプションで ネットワークポリシー を使用して、Snowflakeへのパブリックアクセスをブロックできます。
組織の IP アドレス範囲 を使用してSnowflakeへのパブリックアクセスをブロックするように CIDR ブロック範囲を設定します。この範囲は、ご利用の仮想ネットワーク内から指定できます。
CIDR ブロック範囲が設定されると、 CIDR ブロック範囲内の IP アドレスのみがSnowflakeにアクセスできます。
ネットワークポリシーを使用してパブリックアクセスをブロックするには、
新しいネットワークポリシーを作成するか、既存のネットワークポリシーを編集します。組織の CIDR ブロック範囲を追加します。
アカウントのネットワークポリシーをアクティブにします。