OneLake のセキュリティにより、Microsoft Fabric は、組織がワークロード間でデータ アクセスを管理および適用する方法を拡張しています。 この新しいセキュリティ フレームワークにより、管理者はアクセス許可を柔軟に構成できます。 管理者は、 OneLake を使用した一元化されたガバナンス か、SQL 分析エンドポイント内 の詳細な SQL ベースの制御 を選択できます。
SQL 分析エンドポイントのアクセス モード
SQL 分析エンドポイントを使用する場合、選択したアクセス モードによってデータ セキュリティの適用方法が決まります。 Fabric では 2 つの異なるアクセス モデルがサポートされており、それぞれ運用とコンプライアンスのニーズに応じて異なる利点が提供されます。
ユーザー ID モード: OneLake のロールとポリシーを使用してセキュリティを適用します。 このモードでは、SQL 分析エンドポイントはサインインしているユーザーの ID を OneLake に渡し、 読み取りアクセスは OneLake 内で定義されているセキュリティ規則によって完全に管理されます。 テーブルに対する SQL レベルのアクセス許可がサポートされており、Power BI、ノートブック、Lakehouse などのツール間で一貫したガバナンスが保証されます。
委任された ID モード: SQL を使用してフル コントロールを提供します。 このモードでは、SQL 分析エンドポイントは ワークスペースまたはアイテム 所有者の ID を使用して OneLake に接続し、 セキュリティはデータベース内で定義された SQL アクセス許可によってのみ管理されます 。 このモデルでは、GRANT、REVOKE、カスタム ロール、Row-Level セキュリティ、動的データ マスクなどの従来のセキュリティ アプローチがサポートされています。
各モードでは、異なるガバナンス モデルがサポートされます。 Fabric 環境で適切なアプローチを選択するには、それらの影響を理解することが不可欠です。
アクセス モード間の比較
ここでは、ユーザー ID モードと委任 ID モードでセキュリティを設定する方法と場所を、オブジェクトの種類とデータ アクセス ポリシー別に分類して、明確で簡潔な比較表を示します。
| セキュリティ ターゲット | ユーザー ID モード | 委任された ID モード |
|---|---|---|
| Tables | アクセスは、OneLake セキュリティ ロールによって制御されます。 SQL GRANT/REVOKE は許可されていません。 |
SQL GRANT/REVOKEを使用したフル コントロール。 |
| Views | SQL GRANT/REVOKE を使用してアクセス許可を割り当てます。 | SQL GRANT/REVOKE を使用してアクセス許可を割り当てます。 |
| ストアド プロシージャ | SQL GRANT EXECUTE を使用してアクセス許可を割り当てます。 | SQL GRANT EXECUTE を使用してアクセス許可を割り当てます。 |
| 関数 | SQL GRANT EXECUTE を使用してアクセス許可を割り当てます。 | SQL GRANT EXECUTE を使用してアクセス許可を割り当てます。 |
| Row-Level セキュリティ (RLS) | OneLake セキュリティ ロールの一部として OneLake UI で定義されています。 | SQL CREATE SECURITY POLICY を使用して定義されます。 |
| Column-Level セキュリティ (CLS) | OneLake セキュリティ ロールの一部として OneLake UI で定義されています。 | SQL GRANT SELECT と列リストを使用して定義されます。 |
| 動的データ マスク (DDM) | OneLake セキュリティではサポートされていません。 |
ALTER TABLE オプションで SQL MASKEDを使用して定義されます。 |
OneLake セキュリティのユーザー ID モード
ユーザー ID モードでは、SQL 分析エンドポイントは パススルー認証メカニズム を使用してデータ アクセスを強制します。 ユーザーが SQL 分析エンドポイントに接続すると、その Entra ID ID が OneLake に渡され、アクセス許可チェックが実行されます。 テーブルに対するすべての読み取り操作は、SQL レベルの GRANT または REVOKE ステートメントではなく、OneLake Lakehouse 内で定義されているセキュリティ規則を使用して評価されます。
このモードを使用すると、セキュリティを一元的に管理でき、Power BI、ノートブック、lakehouse、SQL 分析エンドポイントなど、すべての Fabric エクスペリエンスで一貫した適用が保証されます。 これは、OneLake でアクセスを 1 回定義し、あらゆる場所で自動的に尊重するガバナンス モデル向けに設計されています。
ユーザー ID モードの場合:
テーブル アクセスは、OneLake セキュリティによって完全に管理されます。 テーブルの SQL GRANT/REVOKE ステートメントは無視されます。
RLS (Row-Level Security)、CLS (Column-Level Security)、Object-Level Security はすべて OneLake エクスペリエンスで定義されます。
ビュー、ストアド プロシージャ、関数などのデータ以外のオブジェクトに対する SQL アクセス許可が許可されるため、カスタム ロジックやユーザー向けのデータへのエントリ ポイントを柔軟に定義できます。
SQL 分析エンドポイントでは、書き込み操作はサポートされていません。 すべての書き込みは Lakehouse UI を介して行う必要があり、ワークスペース ロール (管理者、メンバー、共同作成者) によって管理されます。
Important
SQL Analytics エンドポイントを正しく同期するには、項目のアクセス許可と OneLake セキュリティ ロールのメンバーの間に 1 対 1 のマッピングが必要です。 OneLake セキュリティ ロールへのアクセス権を ID に付与する場合、その同じ ID にも Lakehouse に対するファブリック読み取りアクセス許可が必要です。 たとえば、ユーザーが OneLake セキュリティ ロールに "user123@microsoft.com" を割り当てる場合は、その lakehouse にも "user123@microsoft.com" を割り当てる必要があります。
ワークスペース ロールの動作
ワークスペース レベルで 管理者、 メンバー、または 共同作成者 ロールを持つユーザーは、OneLake のセキュリティ適用の対象になりません。 これらのロールは昇格された特権を持ち、RLS、CLS、OLS ポリシーを完全にバイパスします。 OneLake のセキュリティが尊重されていることを確認するには、次の要件に従います。
ワークスペースで ビューアー ロールをユーザーに割り当てるか、
読み取り専用のアクセス許可を使用して、Lakehouse または SQL 分析エンドポイントをユーザーと共有します。 読み取り専用アクセス権を持つユーザーのみが、OneLake セキュリティ ロールに従ってクエリをフィルター処理します。
ロールの優先順位: 最も制限の緩いアクセス権が優先されます
ユーザーが 複数の OneLake ロールに属している場合、最も許容度の高いロールによって有効なアクセスが定義されます。 例えば次が挙げられます。
あるロールがテーブルへのフル アクセスを許可し、別のロールが RLS を適用して行を制限する場合、 RLS は適用されません。
より広範なアクセス ロールが優先されます。 この動作により、ユーザーが意図せずにブロックされないようにしますが、競合を回避するには慎重なロール設計が必要です。 行レベルまたは列レベルのアクセス制御を適用する場合は、制限と制限の緩やかなロールを 相互に排他的 に保つことをお勧めします。
詳細については、OneLake セキュリティの データ アクセス制御モデル を参照してください。
OneLake と SQL 分析エンドポイント間のセキュリティ同期
ユーザー ID モードの重要なコンポーネントは、 セキュリティ同期サービスです。 このバックグラウンド サービスは、OneLake のセキュリティ ロールに加えられた変更を監視し、それらの変更が SQL 分析エンドポイントに確実に反映されるようにします。
セキュリティ同期サービスは、次の役割を担います。
新しいロール、更新、ユーザーの割り当て、テーブルへの変更など、OneLake ロールへの変更を検出します。
OneLake 定義ポリシー (RLS、CLS、OLS) を同等の SQL 互換データベース ロール構造に変換する。
リモートからアクセスした場合でも、元の OneLake セキュリティ設定が受け入れられるように、 ショートカット オブジェクト (他のレイクハウスからソースされたテーブル) が適切に検証されていることを確認します。
この同期により、OneLake セキュリティ定義が確実に権限を持ち続け、セキュリティ動作をレプリケートするための手動の SQL レベルの介入が不要になります。 セキュリティは一元的に適用されるため、
このモードでは、T-SQL を使用して RLS、CLS、または OLS を直接定義することはできません。
GRANT ステートメントまたは EXECUTE ステートメントを使用して、ビュー、関数、およびストアド プロシージャに SQL 権限を適用できます。
セキュリティ同期エラーと解決策
| Scenario | ユーザー ID モードでの動作 | 委任モードでの動作 | 修正アクション | 注記 |
|---|---|---|---|---|
| RLS ポリシーは、削除された列または名前が変更された列を参照します | エラー: *行レベルのセキュリティ ポリシーは、存在しなくなった列を参照します。*データベースは、ポリシーが修正されるまでエラー状態になります。 | エラー: 列名 <列名が無効です> | 影響を受ける 1 つ以上のロールを更新または削除するか、不足している列を復元します。 | 更新は、ロールが作成されたレイクハウスで行う必要があります。 |
| CLS ポリシーが削除または名前変更された列を参照する | エラー: *列レベルのセキュリティ ポリシーは、存在しなくなった列を参照します。*データベースは、ポリシーが修正されるまでエラー状態になります。 | エラー: 列名 <列名が無効です> | 影響を受ける 1 つ以上のロールを更新または削除するか、不足している列を復元します。 | 更新は、ロールが作成されたレイクハウスで行う必要があります。 |
| RLS/CLS ポリシーが削除または名前変更されたテーブルを参照する | エラー: セキュリティ ポリシーは、存在しなくなったテーブルを参照します。 | エラーは表示されません。テーブルがない場合、クエリは自動的に失敗します。 | 影響を受ける 1 つ以上のロールを更新または削除するか、不足しているテーブルを復元します。 | 更新は、ロールが作成されたレイクハウスで行う必要があります。 |
| DDM (動的データ マスク) ポリシーが削除または名前変更された列を参照する | OneLake Security ではサポートされていない DDM は、SQL を使用して実装する必要があります。 | エラー: 列名 <列名が無効です> | 影響を受ける 1 つ以上の DDM 規則を更新または削除するか、欠落している列を復元します。 | SQL Analytics エンドポイントで DDM ポリシーを更新します。 |
| システム エラー (予期しないエラー) | エラー: 予期しないシステム エラーが発生しました。もう一度やり直すか、サポートにお問い合わせください。 | エラー: SQL へのテーブル変更の適用中に内部エラーが発生しました。 | 再試行操作。問題が解決しない場合は、Microsoft サポートにお問い合わせください。 | N/A |
| ユーザーが成果物に対するアクセス許可を持っていない | エラー: ユーザーに成果物に対するアクセス許可がありません | エラー: ユーザーに成果物に対するアクセス許可がありません | 成果物に対する objectID {objectID} アクセス許可をユーザーに提供します。 | オブジェクト ID は、OneLake セキュリティ ロール メンバーと Fabric 項目のアクセス許可の完全一致である必要があります。 ロール メンバーシップにグループを追加する場合は、その同じグループにファブリック読み取りアクセス許可を付与する必要があります。 そのグループからアイテムにメンバーを追加しても、直接一致はカウントされません。 |
| ユーザー プリンシパルはサポートされていません。 | エラー: ユーザー プリンシパルはサポートされていません。 | エラー: ユーザー プリンシパルはサポートされていません。 | ロール DefaultReader からユーザー {username} を削除してください | このエラーは、ユーザーが有効な Entra ID でなくなった場合 (ユーザーが組織を離れた場合や削除された場合など) に発生します。 ロールから削除して、このエラーを解決します。 |
セキュリティ同期を使用したショートカットの動作
OneLake セキュリティは信頼のソースで適用されるため、セキュリティ同期では、ショートカットを含むテーブルとビューの所有権チェーンが無効になります。 これにより、別のデータベースからのクエリであっても、ソース システムのアクセス許可が常に評価され、受け入れられます。
結果として:
ユーザーは、ショートカット ソース (現在の Lakehouse または SQL 分析エンドポイント) と、データが物理的に存在する宛先の両方で有効なアクセス権を持っている必要があります。
ユーザーがどちらの側でもアクセス許可を持たない場合、クエリはアクセス エラーで 失敗します 。
ショートカットを参照するアプリケーションまたはビューを設計するときは、ショートカット リレーションシップの 両端 でロールの割り当てが適切に構成されていることを確認します。
この設計では、Lakehouse の境界を越えてセキュリティの整合性が維持されますが、複数の Lakehouse ロールがアラインされていない場合にアクセス エラーが発生する可能性があるシナリオが導入されています。
OneLake セキュリティでの委任モード
委任された ID モードでは、SQL 分析エンドポイントは、Microsoft Fabric に現在存在するのと同じセキュリティ モデルを使用します。 セキュリティとアクセス許可は SQL 層で完全に管理され、テーブル レベルの アクセスには OneLake ロールまたはアクセス ポリシーは適用されません 。 ユーザーが SQL 分析エンドポイントに接続し、クエリを発行する場合:
SQL は、 SQL のアクセス許可 (GRANT、REVOKE、RLS、CLS、DDM、ロールなど) に基づいてアクセスを検証します。
クエリが承認されると、システムは OneLake に格納されているデータにアクセスします。
このデータ アクセスは、Lakehouse または SQL 分析エンドポイント所有者 (項目アカウントとも呼ばれます) の ID を使用して実行されます。
このモデルでは、次の操作を行います。
サインインしているユーザーは OneLake に渡されません。
すべてのアクセスの適用は、SQL 層で処理されるものと見なされます。
アイテムの所有者は、ワークロードに代わって基になるファイルを読み取るための十分なアクセス許可を OneLake に持つ必要があります。
これは委任されたパターンであるため、所有者に対する SQL アクセス許可と OneLake アクセスの間に不整合が生じると、クエリエラーが発生します。 このモードでは、次の機能との完全な互換性が提供されます。
すべてのオブジェクト レベルでの SQL GRANT/REVOKE
SQL 定義 のRow-Level セキュリティ、 Column-Level セキュリティ、 動的データ マスク
DBA またはアプリケーションで使用される既存の T-SQL ツールとプラクティス
OneLake アクセス モードを変更する方法
アクセス モードは、SQL 分析エンドポイントを介して OneLake に対してクエリを実行するときに、データ アクセスを認証および適用する方法を決定します。 次の手順を使用して、ユーザー ID モードと委任 ID モードを切り替えることができます。
Fabric ワークスペースに移動し、lakehouse を開きます。 右上隅から、lakehouse から SQL 分析エンドポイントに切り替えます。
上部のナビゲーションから、[ セキュリティ ] タブに移動し、次のいずれかの OneLake アクセス モードを選択します。
ユーザー ID – サインインしているユーザーの ID を使用します。 OneLake ロールが適用されます。
委任された ID – アイテム所有者の ID を使用します。では、SQL アクセス許可のみが適用されます。
ポップアップが起動して選択内容を確認します。 [ はい ] を選択して変更を確定します。
モードを切り替える際の考慮事項
ユーザー ID モードへの切り替え
SQL RLS、CLS、およびテーブル レベルのアクセス許可は無視されます。
ユーザーがアクセスを維持するには、OneLake ロールを構成する必要があります。
ビューアーのアクセス許可または共有読み取り専用アクセス権を持つユーザーのみが、OneLake セキュリティによって管理されます。
既存の SQL ロールは削除され、復旧できません。
委任された ID モードへの切り替え
OneLake ロールとセキュリティ ポリシーは適用されなくなりました。
SQL ロールとセキュリティ ポリシーがアクティブになります。
項目の所有者は、有効な OneLake アクセス権を持っている必要があります。または、すべてのクエリが失敗する可能性があります。
制限事項
閲覧者にのみ適用: OneLake Security は、閲覧者としてデータにアクセスするユーザーを管理 します。 他のワークスペース ロール (管理者メンバーまたは共同作成者) のユーザーは、OneLake セキュリティをバイパスし、フル アクセスを保持します。
SQL オブジェクトは所有権を継承しません。ショートカットは SQL 分析エンドポイントにテーブルとして表示されます。 これらのテーブルに直接、またはビュー、ストアド プロシージャ、およびその他の派生 SQL オブジェクトを介してアクセスする場合、オブジェクト レベルの所有権は含まれません。セキュリティ バイパスを防ぐために、すべてのアクセス許可が実行時にチェックされます。
ショートカット変更によって検証のダウンタイムがトリガーされます。ショートカット ターゲットが変更されると (名前の変更、URL の更新など)、システムが新しいターゲットを検証している間、データベースは一時的に シングル ユーザー モード になります。 この期間中、クエリはブロックされますが、これらの操作は非常に迅速ですが、異なる内部プロセスによっては同期に最大 5 分かかることがあります。
- スキーマ ショートカットを作成すると、検証に影響する既知のエラーが発生し、メタデータの同期が遅れる可能性があります。
アクセス許可の伝達の遅延: アクセス許可の変更は瞬時に行われません。 セキュリティ モード (ユーザー ID と委任) を切り替えると、有効になるまでに時間がかかる場合がありますが、1 分未満にする必要があります。
コントロール プレーンの依存関係: ワークスペース コントロール プレーンにまだ存在しないユーザーまたはグループにアクセス許可を適用することはできません。 ソース アイテムを共有するか、ユーザーがビューアー ワークスペース ロールのメンバーである必要があります。 まったく同じオブジェクト ID が両方の場所に存在する必要があることに注意してください。 グループとそのグループのメンバーは、一致としてカウントされません。
最も制限の少ないアクセス権が優先されます。ユーザーが複数のグループまたはロールに属している場合、最も制限の少ない有効なアクセス許可が適用されます 。たとえば、ユーザーが 1 つのロールを通じて DENY を持ち、別のロールを通じて GRANT を使用している場合、GRANT が優先されます。
委任モードの制限: 委任モードでは、ソース アイテムにアイテム所有者への完全なテーブル アクセスを許可しない OneLake セキュリティ ポリシーがある場合、ショートカット テーブルのメタデータ同期が失敗する可能性があります。
DENY 動作: 1 つのショートカット テーブルに複数のロールが適用される場合、アクセス許可の共通部分は SQL Server セマンティクスに従います。DENY は GRANT をオーバーライドします。 これにより、予期しないアクセス結果が生成される可能性があります。
予期されるエラー状態: ユーザーは、次のようなシナリオでエラーが発生する可能性があります。
ショートカット ターゲットの名前が変更されたか無効です
- 例: テーブルのソースが削除された場合。
RLS (Row-Level セキュリティ) の構成ミス
RLS フィルター処理の一部の式は OneLake ではサポートされていないため、未承認のデータ アクセスが許可される場合があります。
フィルター式で使用されている列を削除すると、RLS が無効になり、OneLake セキュリティ パネルで RLS が修正されるまでメタデータ同期は古くなります。
パブリック プレビューでは、単一の式テーブルのみがサポートされます。 現時点では、動的 RLS と複数テーブル RLS はサポートされていません。
Column-Level セキュリティ (CLS) の制限事項
CLS は、列の許可リストを維持することによって機能します。 許可された列が削除または名前変更されると、CLS ポリシーは無効になります。
CLS が無効な場合、OneLake セキュリティ パネルで CLS 規則が修正されるまで、メタデータ同期はブロックされます。
メタデータまたはアクセス許可の同期エラー
- 列の名前変更など、テーブルに変更がある場合、セキュリティは新しいオブジェクトにレプリケートされず、列が存在しないことを示す UI エラーが表示されます。
テーブル名の変更では、セキュリティ ポリシーは保持されません。OneLake Security (OLS) ロールがスキーマ レベルで定義されている場合、それらのロールは、テーブル名が変更されていない限り有効なままになります。 テーブルの名前を変更すると関連付けが解除され、セキュリティ ポリシーは自動的に移行されません。 これにより、ポリシーが再適用されるまで、意図しないデータの公開が発生する可能性があります。
OneLake セキュリティ ロールの名前は 124 文字を超えることはできません。それ以外の場合、セキュリティ同期はロールを同期できません。
OneLake セキュリティ ロールは、OLS_ プレフィックスを持つ SQL 分析エンドポイントに伝達されます。
OLS_ ロールのユーザー変更はサポートされていないため、予期しない動作が発生する可能性があります。
メールが有効なセキュリティ グループと配布リストはサポートされていません。
lakehouse の所有者は、管理者、メンバー、または共同作成者ワークスペース ロールのメンバーである必要があります。それ以外の場合、セキュリティは SQL 分析エンドポイントに適用されません。
lakehouse の所有者は、セキュリティ同期を機能させるサービス プリンシパルにすることはできません。