概要
Databricksでは、自己が所有している静的なパブリックIPアドレス(PIP)からアウトバウンド可能な数少ないPaaSのデータ分析サービスであるため、他のクラウドサービスと連携を行う際にセキュリティを担保しやすくなります。
たとえば、Snowflakeと連携する際に効果を発揮します。
Snowflalek社のドキュメントであるMicrosoft Azureからの一括ロード — Snowflake Documentationの手順でAzure StorageとSowflakeを接続した場合には、下記のリスクがあります。
Snowflakeのネットワークポリシー機能(アカウントレベル、あるいは、ユーザーレベルでネットワーク構成できる機能)により、Databricksの静的アドレスからの接続のみに制限することができます。Snowflakeにて、Azure Private Link機能を利用するにはビジネスクリティカル以上が必要となるのに対して、ネットワークポリシーはスタンダード以上で利用できることからも、コストの最適化を実施することができます。
クラウド上でのセキュリティとして多層防御の必要性がより重視されている最近の事情からも、IPフィルタリングを可能となることでネットワークにおいてもセキュリティ向上をできる本機能は重宝しそうです。
引用元: 多層防御 - Learn | Microsoft Docs
注意事項
検証をAzure Databricksで実施しているため、AWSやGCPのDatabricksでは本記事内容と同等のことを実施できない可能性もあります。
AWS版については、下記のドキュメントによれば同様のことが実施できそうです。
Proxy traffic through a NAT gateway | Databricks on AWS
構築方法
Azure Databricks構築する際に、ネットワーク
タブにて、Secure Cluster Connectivity による Azure Databricks ワークスペースのデプロイ (パブリック IP なし)
の
項目にて、はい
を選択。
構築後のリソースについて
管理対象リソース グループ
にて、NAT ゲートウェイ
とパブリック IP アドレス
が作成されます。
NATゲートウェイにて、設定されている送信IPからアウトバウンドされるようになります。
Databricks上でPIPを確認すると、上記と同じ値を取得できます。
from requests import get
public_ip = get('https://api.ipify.org').content.decode('utf8')
print(public_ip)