次の方法で共有


Fabric データ ウェアハウスのサービス プリンシパル

適用対象: Microsoft Fabric の✅ Warehouse

Azure サービス プリンシパル (SPN) は、特定の Azure リソースにアクセスするためにアプリケーションまたは自動化ツールによって使用されるセキュリティ ID です。 ユーザー ID とは異なり、サービス プリンシパルは、正確なアクセス許可を割り当てることができる非対話型のアプリケーション ベースの ID であり、自動化されたプロセスやバックグラウンド サービスに最適です。 サービス プリンシパルを使用すると、人為的なエラーや ID ベースの脆弱性のリスクを最小限に抑えながら、データ ソースに安全に接続できます。 サービス プリンシパルの詳細については、Microsoft Entra IDのアプリケーション オブジェクトとサービス プリンシパル オブジェクト を参照してください。

前提 条件

  1. Azureを使用して、サービス プリンシパルの作成、ロールの割り当て、シークレットの作成を行います。

  2. テナント管理者が、サービス プリンシパルが Fabric 管理ポータルで fabric API を使用できることを確認します。

  3. 管理者ワークスペース ロールを持つユーザーが、ワークスペースの [アクセスの管理] を通じて SPN へのアクセス権を付与できることを確認します。

    Fabric ポータルのアクセス管理ポップアップウィンドウのスクリーンショット。

SPN を使用して REST API を使用してウェアハウスを作成してアクセスする

ワークスペース ロール 管理者、メンバー、または共同作成者を持つユーザーは、認証にサービス プリンシパルを使用して、Fabric REST APIを使用して Warehouse アイテムを作成、更新、読み取り、削除できます。 これにより、ユーザー資格情報に依存することなく、ウェアハウスのプロビジョニングや管理などの繰り返しのタスクを自動化できます。

委任されたアカウントまたは固定 ID (所有者の ID) を使用してウェアハウスを作成する場合、ウェアハウスは OneLake にアクセスするときにその資格情報を使用します。 これにより、倉庫が機能しなくなるため、所有者が組織を離れると問題が発生します。 これを回避するには、SPN を使用して倉庫を作成します。

また、Fabric では、セキュリティ上の理由から有効なトークンが確実に提供されるように、ユーザーは 30 日ごとにサインインする必要があります。 データ ウェアハウスの場合、所有者は 30 日ごとに Fabric にサインインする必要があります。 これは、List API で SPN を使用して自動化できます。

SPN を使用した Fabric API POST 呼び出しのスクリーンショット。

REST API を使用して SPN によって作成されたウェアハウスは、ファブリック ポータルのワークスペース リスト ビューに表示され、所有者 名が SPN として表示されます。 次の図では、Fabric ポータルのワークスペースのスクリーンショット。"Fabric パブリック API テスト アプリ" は、Contoso Marketing Warehouse を作成した SPN です。

ワークスペース項目リストの Fabric ポータルのスクリーンショット。倉庫が表示されます。その所有者は個人アカウントではなく SPN です。

SPN を使用してクライアント アプリケーションに接続する

サービス プリンシパルを使用して、SQL Server Management Studio (SSMS) 19 またはそれ以上のバージョンなどのツールで、Fabric ウェアハウスに接続できます。

  • 認証: Microsoft Entra サービス プリンシパル
  • ユーザー名の: SPN のクライアント ID (前提条件セクションで Azure を使用して作成)
  • パスワード: シークレット (前提条件セクションで Azure を使用して作成)

SQL Server Management Studio (SSMS) で SPN を使用して Fabric にサインインするスクリーンショット。

コントロール プレーンのアクセス許可

ワークスペースの [アクセスの管理]ワークスペース ロールを使用して、SPN にウェアハウスへのアクセス権を付与することができます。 さらに、ファブリック ポータルから Item Permissionsを使用して、ウェアハウスを SPN と共有できます。

データ プレーンのアクセス許可

ワークスペース ロールまたはアイテムのアクセス許可を使用して SPN に対するコントロール プレーンのアクセス許可がウェアハウスに提供されると、管理者は、 などの T-SQL コマンドを使用して、サービス プリンシパルに 特定の データ プレーンのアクセス許可を割り当てて、SPN がアクセスできるメタデータ/データと操作を正確に制御できます。 最小特権の原則に従うことをお勧めします。

例えば:

GRANT SELECT ON <table name> TO <service principal name>;

アクセス許可が付与されると、SPN は SSMS などのクライアント アプリケーション ツールに接続できるため、開発者は COPY INTO を実行するためのセキュリティで保護されたアクセスが可能になります (ファイアウォールが有効なストレージの有無にかかわらず)。また、data Factory パイプラインスケジュールに従って T-SQL クエリをプログラムで実行することもできます。

クエリのスクリーンショット。SQL Server Management Studio (SSMS) で、ユーザーが SPN を使用して Azure Storage オブジェクトにアクセスしました。

モニター

SPN がウェアハウスでクエリを実行する場合、クエリを実行したユーザーまたは SPN を可視化するさまざまな監視ツールがあります。 クエリ アクティビティのユーザーは、次の方法で見つけることができます。

詳細については、「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に対してのみ存在します。