Fabric データ ウェアハウスのサービス プリンシパル
適用対象: Microsoft Fabric の✅ Warehouse
Azure サービス プリンシパル (SPN) は、特定の Azure リソースにアクセスするためにアプリケーションまたは自動化ツールによって使用されるセキュリティ ID です。 ユーザー ID とは異なり、サービス プリンシパルは、正確なアクセス許可を割り当てることができる非対話型のアプリケーション ベースの ID であり、自動化されたプロセスやバックグラウンド サービスに最適です。 サービス プリンシパルを使用すると、人為的なエラーや ID ベースの脆弱性のリスクを最小限に抑えながら、データ ソースに安全に接続できます。 サービス プリンシパルの詳細については、Microsoft Entra IDのアプリケーション オブジェクトとサービス プリンシパル オブジェクト
前提 条件
Azureを使用して、サービス プリンシパルの作成、ロールの割り当て、シークレットの作成を行います。
テナント管理者が、サービス プリンシパルが Fabric 管理ポータルで fabric API を使用できることを確認します。
管理者ワークスペース ロールを持つユーザーが、ワークスペースの [アクセスの管理] を通じて SPN へのアクセス権を付与できることを確認します。
SPN を使用して REST API を使用してウェアハウスを作成してアクセスする
ワークスペース ロール 管理者、メンバー、または共同作成者を持つユーザーは、認証にサービス プリンシパルを使用して、Fabric REST APIを使用して Warehouse アイテムを作成、更新、読み取り、削除できます。 これにより、ユーザー資格情報に依存することなく、ウェアハウスのプロビジョニングや管理などの繰り返しのタスクを自動化できます。
委任されたアカウントまたは固定 ID (所有者の ID) を使用してウェアハウスを作成する場合、ウェアハウスは OneLake にアクセスするときにその資格情報を使用します。 これにより、倉庫が機能しなくなるため、所有者が組織を離れると問題が発生します。 これを回避するには、SPN を使用して倉庫を作成します。
また、Fabric では、セキュリティ上の理由から有効なトークンが確実に提供されるように、ユーザーは 30 日ごとにサインインする必要があります。 データ ウェアハウスの場合、所有者は 30 日ごとに Fabric にサインインする必要があります。 これは、List API で SPN を使用して自動化できます。
REST API を使用して SPN によって作成されたウェアハウスは、ファブリック ポータルのワークスペース リスト ビューに表示され、所有者 名が SPN として表示されます。 次の図では、Fabric ポータルのワークスペースのスクリーンショット。"Fabric パブリック API テスト アプリ" は、Contoso Marketing Warehouse を作成した SPN です。
SPN を使用してクライアント アプリケーションに接続する
サービス プリンシパルを使用して、SQL Server Management Studio (SSMS) 19 またはそれ以上のバージョンなどのツールで、Fabric ウェアハウスに接続できます。
- 認証: Microsoft Entra サービス プリンシパル
- ユーザー名の: SPN のクライアント ID (前提条件セクションで Azure を使用して作成)
- パスワード: シークレット (前提条件セクションで Azure を使用して作成)
コントロール プレーンのアクセス許可
ワークスペースの [アクセスの管理] でワークスペース ロールを使用して、SPN にウェアハウスへのアクセス権を付与することができます。 さらに、ファブリック ポータルから Item Permissionsを使用して、ウェアハウスを SPN と共有できます。
データ プレーンのアクセス許可
ワークスペース ロールまたはアイテムのアクセス許可を使用して SPN に対するコントロール プレーンのアクセス許可がウェアハウスに提供されると、管理者は、
例えば:
GRANT SELECT ON <table name> TO <service principal name>;
アクセス許可が付与されると、SPN は SSMS などのクライアント アプリケーション ツールに接続できるため、開発者は COPY INTO を実行するためのセキュリティで保護されたアクセスが可能になります (ファイアウォールが有効なストレージの有無にかかわらず)。また、data Factory パイプライン
モニター
SPN がウェアハウスでクエリを実行する場合、クエリを実行したユーザーまたは SPN を可視化するさまざまな監視ツールがあります。 クエリ アクティビティのユーザーは、次の方法で見つけることができます。
- 動的管理ビュー (DMV):
sys.dm_exec_sessions
のlogin_name
列。 - クエリの分析情報:
queryinsights.exec_requests_history
ビューのlogin_name
列。 - クエリ アクティビティ: Fabric クエリ アクティビティの
submitter
列。 - 容量メトリック アプリの: SPN によって実行されるウェアハウス操作のコンピューティング使用量は、[バックグラウンド操作のドリル スルー] テーブルの [ユーザー] 列の下にクライアント ID として表示されます。
詳細については、「Monitor Fabric Data Warehouse」を参照してください。
引き継ぎ API
倉庫の所有権は、SPN からユーザー、およびユーザーから SPN に変更できます。
SPN またはユーザーからユーザーへの引き継ぎ: 「Fabric Warehouseの所有権を変更する」を参照してください。
SPN またはユーザーから SPN への引き継ぎ: REST API で POST 呼び出しを使用します。
POST <PowerBI Global Service FQDN>/v1.0/myorg/groups/{workspaceid}/datawarehouses/{warehouseid}/takeover
制限
Microsoft Fabric Data Warehouse でのサービス プリンシパルの制限事項:
- SPN で作成されたウェアハウスでは既定のセマンティック モデルはサポートされていないため、データセット ビューにテーブルを一覧表示する、既定のデータセットからレポートを作成するなどの機能は機能しません。
- SQL 分析エンドポイントのサービス プリンシパルは現在サポートされていません。
- サービス プリンシパルまたは Entra ID 資格情報は、現在、COPY INTO エラー ファイルではサポートされていません。
- サービス プリンシパルは、GIT APIではサポートされていません。 SPN のサポートは、デプロイ パイプライン APIに対してのみ存在します。