Synapse Analytics のファイアウォール設定や、プライベートエンドポイント経由でのアクセスを、Synapse Studio で確認していて、一部の項目がうまく表示されない場合などの調査時のメモを。
ファイアウォールで「Azure サービスおよびリソースに、このワークスペースへのアクセスを許可する」をオフにして、アクセスを厳しくしている場合の調査に使っていました。
Contents
プライベートエンドポイント
Synapse を対象リソースとしたプライベートエンドポイントには、次のようなリソースがあります。
「Microsoft.Synapse/privateLinkHubs」「Microsoft.Synapse/workspaces」の 2 種類があり、VNET からのアクセスについては、これらのリソースのプライベートエンドポイントを作成することになるかと思います。
Microsoft.Synapse/workspaces
「Microsoft.Synapse/workspaces」には、ターゲットサブリソースとして「Sql」「SqlOnDemand」「Dev」の三種類のリソースがあり、それぞれのサブリソースのプライベートエンドポイントを作成すると、次の DNS 名のプライベートエンドポイントが作成されます。
- Sql : xxxxxx.sql.azuresynapse.net
- SqlOnDemand : xxxxxxx-ondemand.sql.azuresynapse.net
- Dev : xxxxxx.dev.azuresynapse.net
Synapse Analytics をデプロイすると、いくつかのエンドポイントが作成されます。
プライベートエンドポイントを作成した場合これらのエンドポイントに向けて、プライベートエンドポイントが作成されるというイメージかと。
- Sql : 専用 SQL エンドポイント
- SqlOnDemand : サーバーレス SQL エンドポイント
- Dev : 開発エンドポイント
Microsoft.Synapse/privateLinkHubs
「Microsoft.Synapse/privateLinkHubs」は、「Azure Synapse Analytics (プライベート リンク ハブ)」というリソースに対してのプライベートエンドポイントとなります。
このリソースですが、作成するときの UI はとてもシンプルで、作成するときに「どの Synapse Analytics と関連付けるか?」というような設定は一切ありません。
プライベートリンクハブへのプライベートエンドポイントを作成する際の、サブリソースですが「Web」のみが選択できるようになっています。
実際にプライベートリンクハブのプライベートエンドポイントを作成するとわかりやすいのですが、このエンドポイントは、Synapse ワークスペースの Web URL へのエンドポイントとなります。
プライベートエンドポイント作成時の DNS のゾーン設定を見るとわかるのですが、このエンドポイントは web.privatelink.azuresynapse.net (web.azuresynapse.net) 向けのエンドポイントとなります。
Synapse Studio を使用する際には、この DNS 名に対してアクセスを行いますので、Synapse Studio にアクセスするためのプライベートエンドポイントというイメージでいるとわかりやすいのではないでしょうか。
ファイアウォールで保護されたストレージへのアクセス
Synapse Analytics のデプロイ時には ADL Gen2 指定する必要があります。
指定したストレージをファイアウォールで保護して、許可されたネットワークからのみアクセスを可能とした場合、ファイアウォールで保護されたストレージのクエリ の設定を行い、マネージド ID 経由でのアクセスを許可しないと、サーバーレス SQL プールからのクエリ実行が拒否されるかと。
「選択されたネットワーク」からのみアクセスを許可したストレージについては、上記の URL の対応を行い、リソースインスタンスとして、Synapse Workspace のインスタンスが許可された状態にする必要があるケースがありますので、ストレージのファイアウォール設定を厳しくした場合はこの辺の設定は注意しておいた方がよいかと思います。
現時点では、ポータルで、リソースの種類から「Microsoft.Synapse/workspaces」を選択することはできませんので PowerShell 経由で設定を投入する必要があります。
Synapse Analytics ワークスペース (Synapse Studio) で一部の項目がアクセスできない場合の調査
Synapse Analytics ワークスペースのファイアウォール設定で、アクセスを厳しくしていると、管理者ユーザーではあるが、一部の項目を表示できないというような状態になるケースがあります。
次の画像は、Synapse 管理者で SQL プールの情報を表示しようとした際の画面なのですが「ファイアウォールの問題のため、サーバーレス SQL プールに接続できません。」というメッセージが表示されています。
他にも、「アクセス制御」や「資格情報」を開いた際に、管理者ユーザーでも何も表示が行われないというケースがあります。
このような状態となった場合ですが、F12 開発者ツールを開いて、該当の項目を表示した際のアクセス状況を確認してみると良いかと思います。
SQL プールを表示しようとした場合は、次の URL へのアクセスが拒否されていることが確認できました。
「~-ondemand.sql.azuresynapse.net」にアクセスをしようとして 403 になっていることが確認できますね。
Synapse のファイアウォールの設定ですが、Synapse で管理している各種エンドポイントへのアクセスを制御するような意味もあるかと思います。
そのため、ファイアウォールの設定によっては、ポータルにアクセスをする端末のグローバル IP の許可や、VNET 経由で接続する場合には、プライベートエンドポイントを作成しての接続を行わないと、Synapse 管理者の権限を持っていても、Synapse ワークスペースの機能を使用できないというケースがあります。
ファイアウォールを厳しめに設定している Synapse Analtyics では、Synapse ワークスペースへのアクセスや、Synapse ワークスペースの各機能の表示内容で想定していないものがあった場合、F12 で、ネットワークのトレースを取り、403 が発生していないかを確認し、403 が発生している場合はファイウォール設定の見直しや、プライベートエンドポイント経由によるアクセスの施行を検討するケースがあるかと。