Snowflake管理ストレージボリュームのAzureプライベートエンドポイント¶
このトピックでは、Microsoft Azureプライベートエンドポイントを介してSnowflake管理ストレージボリュームに接続するための概念と、詳細な手順について説明します。Snowflake管理ストレージボリュームは、 Snowflakeをカタログとして使用するApache Icebergテーブル のストレージ場所です。
概要¶
Apache SparkやDatabricksなどの外部クエリエンジンを使用して、Snowflakeが管理するストレージを使用するIcebergテーブルを読み取る、または書き込む場合、クエリエンジンはAzureストレージでホストされているネイティブのicebergボリュームと直接通信します。デフォルトでは、このトラフィックはパブリックインターネットを通過できます。
Azureプライベートエンドポイント と Azure Private Link を組み合わせて、Snowflake管理ストレージボリュームへの安全な接続を提供できます。この設定により、外部クエリエンジンからネイティブIcebergボリュームへの読み取りと書き込み操作では、パブリックインターネットの代わりにAzure内部ネットワークが使用されます。
利点¶
Snowflake管理ストレージボリュームにアクセスするためにプライベートエンドポイントを実装すると、次の利点があります。
外部クエリエンジンがネイティブのicebergボリュームから読み取り、または書き込みを行う場合、データはパブリックインターネットを通過しません。
管理者は、クエリエンジンがストレージアカウントに接続する方法について、一貫したセキュリティと監視を実装できます。
管理者は、ストレージボリュームデータにアクセスするためにファイアウォール設定を変更する必要がありません。
制限事項¶
Microsoft AzureはプライベートエンドポイントがSnowflakeとどのように相互作用できるかを定義します。
単一のプライベートエンドポイントは、単一のSnowflakeサービスエンドポイントと通信できます。同じSnowflake管理ストレージボリュームに接続する複数の1対1の構成を持つことができます。
Snowflake管理ストレージボリュームに接続できるストレージアカウントのプライベートエンドポイントの最大数は固定です。詳細については、 標準ストレージアカウント制限 をご参照ください。
Snowflake管理ストレージボリュームにアクセスするためのプライベートエンドポイントの構成¶
Snowflake管理ストレージボリュームにアクセスするようにプライベートエンドポイントを構成するには、組織内にある次の3つのロールから、サポートが必要です。
Snowflakeアカウント管理者(つまり、Snowflake ACCOUNTADMIN システムロールを持つユーザー)。
Microsoft Azure管理者。
ネットワーク管理者。
組織によっては、次の構成ステップを実装するために、構成作業で複数の人またはチームとの調整が必要になる場合があります。
次のステップを実行して、Azureプライベートエンドポイントを介したSnowflake管理ストレージボリュームへの安全なアクセスを構成および実装します。
AzureサブスクリプションがAzure Storageリソースマネージャーに登録されていることを確認します。この手順により、プライベートエンドポイントから管理ストレージボリュームに接続できるようになります。
Snowflakeアカウント管理者として、Snowflakeアカウントで以下のコマンドを実行します。
privatelink-snowflake-managed-storage-volume-nfsおよびprivatelink-snowflake-managed-storage-volume-fsキーによって定義された非フェイルセーフおよびフェイルセーフのSnowflake管理ストレージボリュームのストレージアカウントのリソースIDをそれぞれ記録します。 パラメーターで指定。詳細については、 ENABLE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK および SYSTEM$GET_PRIVATELINK_CONFIG をご参照ください。Azure管理者として、Azureポータルから各Snowflake管理ストレージボリュームにプライベートエンドポイントを作成します。
プライベートエンドポイントのプロパティを表示し、リソース ID値を記録します。次のステップで、この値を
privateEndpointResourceID関数の引数として提供します。詳細については、Microsoft Azure Private Link ドキュメント をご参照ください。
重要
プライベートエンドポイントを認証する次のステップに進む前に、プライベートエンドポイントがストレージの場所で 初めて 承認された場合の Microsoft Azure DNS 動作に注意してください。
最初のプライベートエンドポイントが接続されて承認されると、Azureは自動的にパブリック DNS に CNAME 記録を作成します。
通常の状況では、この DNS の更新は、ストレージアカウントへの既存のパブリック接続に影響を与えません。ただし、環境にすでにプライベート DNS ゾーンが構成されている場合、この DNS を更新すると、意図しない動作が発生する可能性があります。
この問題を回避するために、Microsoftは最初のプライベートエンドポイントを承認する前に、プライベート DNS ゾーン構成で Fallback to Internet オプションを有効にすることをお勧めしています。
Snowflake管理者として、 SYSTEM$AUTHORIZE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK_ACCESS 値を使用して、関数の引数として
privateEndpointResourceID関数を呼び出します。このステップは、プライベートエンドポイントを介したSnowflake管理ストレージボリュームへのアクセスを許可します。必要に応じて、これらのステップを実行して、Snowflake管理ストレージボリュームへのアクセスを 取り消し ます。
ネットワーク管理者を関与させ、プライベート DNSゾーンの DNS設定を更新します。設定では、プライベートリンク URL を、Snowflake管理ストレージボリュームのストレージアカウントに接続するAzureプライベートエンドポイントのプライベート IP アドレスに解決する必要があります。
詳細については、 Azureプライベートエンドポイント DNS 構成 をご参照ください。
Tip
テストには別のSnowflakeアカウントを使用し、テスト DNS でプライベート VNet ゾーンを構成して機能をテストすることにより、テストが分離されて他のワークロードに影響を与えないようにします。
別のSnowflakeアカウントを使用できない場合は、テストユーザーを使用して、 DNS の変更を実行した VNet からSnowflakeにアクセスします。
オンプレミスアプリケーションからテストするには、 DNS 転送を使用して、 DNS 設定を実行する VNet 内のAzureプライベート DNS にリクエストを転送します。
パブリックアクセスのブロック¶
Azure Private Linkを使用して管理ストレージボリュームにアクセスするようにプライベートエンドポイントを構成すると、オプションでパブリック IP アドレスから管理ストレージボリュームへのリクエストをブロックできます。パブリックアクセスがブロックした後、すべてのトラフィックはプライベートエンドポイントを経由する必要があります。
重要
パブリックアクセスをブロックする 前に 、プライベート接続を使用するトラフィックが、管理ストレージボリュームに正常に到達していることを確認します。プライベート接続を構成せずにパブリックアクセスをブロックすると、意図しない中断が発生する可能性があります。
パブリック IP アドレスから管理ストレージボリュームへのすべてのトラフィックをブロックするには、次の関数を呼び出します。
この関数は完了するまでに数分かかる場合があります。
IP許可リストの例外によるパブリックアクセスのブロック¶
管理ストレージボリュームへのアクセスが許可されている IP アドレスまたは CIDR ブロックの許可リストを維持しながら、 SYSTEM$BLOCK_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS_WITH_EXCEPTION 関数でパブリックアクセスをブロックできるようになりました。
特定の IP アドレスまたは CIDR ブロックを許可しながらパブリックアクセスをブロックするには、以下を実行します。
パブリックアクセスの確実なブロック¶
パブリック IP アドレスがSnowflake管理ストレージボリュームにアクセスできるかどうかを判断するには、 SYSTEM$SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS_STATUS 関数を呼び出します。
パブリックアクセスのブロック解除¶
これまでブロックされていたSnowflake管理ストレージボリュームへのパブリックアクセスを許可するには、 SYSTEM$UNBLOCK_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PUBLIC_ACCESS 関数を呼び出します。
Snowflake管理ストレージボリュームにアクセスするためのプライベートエンドポイントの取り消し¶
Microsoft Azureプライベートエンドポイントを介したSnowflake管理ストレージボリュームへのアクセスを取り消すには、次のステップを実行します。
Snowflake管理者は、 ENABLE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK パラメーターが
TRUEに設定されていることを確認します。例:Snowflake管理者は、 SYSTEM$REVOKE_SNOWFLAKE_MANAGED_STORAGE_VOLUME_PRIVATELINK_ACCESS 関数を呼び出し、最初にアクセスを承認するために使用されたのと同じ
privateEndpointResourceID値を使用して、プライベートエンドポイントへのアクセスを取り消します。Azure管理者は、Azure Portalからプライベートエンドポイントを削除します。
ネットワーク管理者として、ストレージアカウント URLs の解決に使用された DNS およびエイリアスの記録を削除します。