OneLake セキュリティでは、ロールの割り当てを使用して、そのメンバーにアクセス許可を適用します。 ロールは、個人またはセキュリティ グループ、Microsoft 365 グループ、および配布リストに割り当てることができます。 ユーザー グループ内のすべてのメンバーは、割り当てられたロールを取得します。 他のユーザーが 2 つ以上のセキュリティ グループまたは Microsoft 365 グループに含まれている場合は、ロールによって提供される最高レベルのアクセス許可を取得します。 ユーザー グループを入れ子にしてグループにロールを割り当てると、含まれるすべてのユーザーにアクセス許可が与えられます。
OneLake セキュリティを使用すると、ユーザーはレイクハウス項目のデータ アクセス ロールのみを定義できます。
OneLake セキュリティは、ワークスペース閲覧者または読み取りアクセス権を持つユーザーのデータ アクセスをレイクハウスへと制限します。 これは、ワークスペース管理者、メンバー、共同作成者には適用されません。 結果として、OneLake セキュリティでは、読み取りレベルのアクセス許可のみがサポートされます。
ロールを作成する
OneLake セキュリティ ロールは、レイクハウスのデータ アクセス設定を使用して定義および管理できます。
詳細については、「データ アクセス ロールの概要」を参照してください。
レイクハウスの既定のロール
ユーザーが新しいレイクハウスを作成すると、OneLake によって既定のロールが生成されます。 これらのロールは、Fabric ワークスペースを持つユーザーに、レイクハウス内のデータに対するアクセス許可を付与します。 既定のロールは、他のロールと同様に削除または編集できます。
既定のロール定義は次のとおりです。
布製品 | ロール名 | 権限 | フォルダーが含まれる | 割り当てられたメンバー |
---|---|---|---|---|
レイクハウス | DefaultReader |
読み取り |
Tables/ および Files/ のすべてのフォルダー |
ReadAll アクセス許可を持つすべてのユーザー |
レイクハウス | DefaultReadWriter |
読み取り | すべてのフォルダー | 書き込みアクセス許可を持つすべてのユーザー |
注
特定のユーザーまたは特定のフォルダーへのアクセスを制限するには、既定のロールを変更するか、それを削除して新しいカスタム ロールを作成します。
OneLake のセキュリティにおける継承
任意のフォルダーに対して、OneLake セキュリティのアクセス許可は常にフォルダーのファイルとサブフォルダーの階層全体に継承されます。
たとえば、OneLake のレイクハウスの次の階層を考えてみましょう。
Tables/
──── (empty folder)
Files/
────folder1
│ │ file11.txt
│ │
│ └───subfolder11
│ │ file1111.txt
| │
│ └───subfolder111
| │ file1111.txt
│
└───folder2
│ file21.txt
このレイクハウスには 2 つの役割を作成します。
Role1
はフォルダー 1 に読み取りアクセス許可を付与し、Role2
はフォルダー 2 に対する読み取りアクセス許可を付与します。
ある階層に対し、Role1
と Role2
に対する OneLake セキュリティ アクセス許可は次のように継承されます。
ロール 1: フォルダー 1 の読み取り
│ │ file11.txt │ │ │ └───subfolder11 │ │ file1111.txt | │ │ └───subfolder111 | │ file1111.txt
ロール 2: フォルダー 2 の読み取り
│ file21.txt
OneLake セキュリティでのトラバーサルと一覧表示
OneLake セキュリティでは、データを簡単に検出できるように、親項目の自動トラバーサルが提供されます。 サブフォルダー 11 に対する読み取りアクセス許可をユーザーに付与すると、親ディレクトリ フォルダー 1 を一覧表示およびトラバースする権限がユーザーに付与されます。 この機能は、サブフォルダーへのアクセス権を付与すると、親ディレクトリの検出と走査が提供される Windows フォルダーのアクセス許可に似ています。 親に対し付与されたリストとトラバーサルは、直接の親以外の他の項目には拡張されないため、他のフォルダーのセキュリティが確保されます。
たとえば、OneLake のレイクハウスの次の階層を考えてみましょう。
Tables/
──── (empty folder)
Files/
────folder1
│ │ file11.txt
│ │
│ └───subfolder11
│ │ file111.txt
| │
│ └───subfolder111
| │ file1111.txt
│
└───folder2
│ file21.txt
ある階層に対し、'ロール 1' の OneLake セキュリティ アクセス許可は次のアクセス許可を提供します。 file11.txt は、サブフォルダー 11 の親ではないのでアクセスは提供されません。 ロール 2 の場合も同様に、file111.txt は表示されません。
ロール 1: サブフォルダー 11 の読み取り
Files/ ────folder1 │ │ │ └───subfolder11 │ │ file111.txt | │ │ └───subfolder111 | │ file1111.txt
ロール 2: サブフォルダー 111 の読み取り
Files/ ────folder1 │ │ │ └───subfolder11 | │ │ └───subfolder111 | │ file1111.txt
ショートカットの場合、一覧表示の動作は若干異なります。 外部データ ソースへのショートカットはフォルダーと同じように動作しますが、他の OneLake の場所へのショートカットには特殊な動作があります。 ショートカットのターゲット アクセス許可によって、OneLake ショートカットへのアクセスが決まります。 ショートカットを一覧表示する場合、ターゲット アクセスをチェックするための呼び出しは行われません。 その結果、ディレクトリを一覧表示すると、ユーザーのターゲットへのアクセスに関係なく、すべての内部ショートカットが返されます。 ユーザーがショートカットを開こうとすると、アクセス チェックが評価され、ユーザーには必要なアクセス許可を持つデータのみが表示されます。 ショートカットの詳細については、「ショートカットのセキュリティー」セクションを参照してください。
ショートカットを含む次のフォルダー階層について考えてみましょう。
Files/
────folder1
│
└───shortcut2
|
└───shortcut3
ロール 1: フォルダー 1 の読み取り
Files/ ────folder1 │ └───shortcut2 | └───shortcut3
ロール 2: アクセス許可が定義されていません
Files/ │ └───shortcut2 | └───shortcut3
Fabric のアクセス許可を使用して OneLake セキュリティ アクセス許可を評価する方法
ワークスペースと項目のアクセス許可によって、その項目に対して OneLake のデータへの広範なアクセス権を付与できます。 OneLake セキュリティ アクセス許可を使用すると、OneLake のデータ アクセスを特定のフォルダーのみに制限できます。
ユーザーがレイクハウス内のフォルダーにアクセスしようとすると、OneLake セキュリティは最初にワークスペースのアクセス許可、次にレイクハウス項目、次にフォルダーを確認します。
OneLake セキュリティとワークスペースのアクセス許可
ワークスペースのアクセス許可は、OneLake 内のデータの最初のセキュリティ境界です。 各ワークスペースは、チームがデータの共同作業を行うことができる単一のドメインまたはプロジェクト領域を表します。 ワークスペース内のセキュリティは、Fabric ワークスペース ロールを使って管理します。 Fabric のロールベースのアクセス制御 (RBAC) の詳細については、ワークスペース ロールを参照してください。
Fabric のワークスペース ロールは、OneLake で次のアクセス許可を付与します。
権限 | 管理者 | メンバー | 投稿者 | ビューアー |
---|---|---|---|---|
OneLake でファイルを表示する | 常に*はい | 常に*はい | 常に*はい | 既定では、いいえ。 OneLake セキュリティを使用してアクセス権を付与します。 |
OneLake でファイルを書き込む | 常に*はい | 常に*はい | 常に*はい | いいえ |
*ワークスペース管理者、メンバー、および共同作成者ロールは、OneLake に書き込みアクセス許可を自動的に付与するため、OneLake セキュリティの読み取りアクセス許可をオーバーライドします。
ワークスペース ロール | OneLake は RBAC 読み取りアクセス許可を適用しますか? |
---|---|
管理者、共同作成者、メンバー | いいえ。OneLake セキュリティは OneLake RBC の読み取りアクセス許可をすべて無視します |
[ビューアー] | はい。定義されている場合、OneLake セキュリティの読み取りアクセス許可が適用されます |
OneLake セキュリティとレイクハウスのアクセス許可
ワークスペース内では、Fabric のアイテムはワークスペース ロールとは別に構成されたアクセス許可を持つことができます。 アクセス許可は、項目を共有するか、項目のアクセス許可を管理することによって構成できます。 次のアクセス許可によって、OneLake のデータに対してユーザーがアクションを実行できるかどうかが決まります。
レイクハウスのアクセス許可
レイクハウスのアクセス許可 | OneLake でファイルを表示できるか? | OneLake でファイルを書き込めるか? | SQL 分析エンドポイントを介してデータを読み取ることができますか? |
---|---|---|---|
読み取り | 既定では、いいえ。 OneLake セキュリティを使用してアクセス権を付与します。 | いいえ | いいえ |
すべてを読む | 既定では、はい。 OneLake セキュリティを使用してアクセスを制限します。 | いいえ | いいえ |
書き込み | はい | はい | はい |
実行、再共有、出力を表示、ログを表示 | N/A - 単独では付与できません | N/A - 単独では付与できません | N/A - 単独では付与できません |
レイクハウス SQL 分析エンドポイントのアクセス許可
SQL 分析エンドポイントは、Microsoft Fabric のレイクハウスから自動的に生成されるウェアハウスです。 お客様は、レイクハウスの "Lake" ビュー (Data Engineering と Apache Spark をサポート) から、同じレイクハウスの "SQL" ビューに移行できます。 SQL 分析エンドポイントの詳細については、Data Warehouse のドキュメント「SQL 分析エンドポイント」を参照してください。
SQL 分析エンドポイントのアクセス許可 | ユーザーは OneLake エンドポイント経由でファイルを表示できますか? | ユーザーは OneLake エンドポイント経由でファイルを書き込むことができますか? | SQL 分析エンドポイントを介してデータを読み取ることができますか? |
---|---|---|---|
読み取り | 既定では、いいえ。 OneLake セキュリティを使用してアクセス権を付与します。 | いいえ | 既定ではいいえ。ただし、SQL の詳細なアクセス許可を使用して構成できます。 |
データを読む | 既定では、いいえ。 OneLake セキュリティを使用してアクセス権を付与します。 | いいえ | はい |
書き込み | はい | はい | はい |
既定のレイクハウス セマンティック モデルの権限
Microsoft Fabric では、ユーザーがレイクハウスを作成すると、関連付けられている既定のセマンティック モデルもプロビジョニングされます。 既定のセマンティック モデルでは、レイクハウス データの上にメトリックがあります。 このセマンティック モデルにより、Power BI でレポート用のデータを読み込むことができます。
既定のセマンティック モデルのアクセス許可 | OneLake でファイルを表示できるか? | OneLake でファイルを書き込めるか? | セマンティック モデルでスキーマを確認できますか? | セマンティック モデルでデータを読み取ることができますか? |
---|---|---|---|---|
読み取り | 既定では、いいえ。 OneLake セキュリティを使用してアクセス権を付与します。 | いいえ | いいえ | 既定では、はい。 Power BI オブジェクト レベル セキュリティと Power BI 行レベル セキュリティを使用して制限できます |
ビルド | 既定では、はい。 OneLake セキュリティを使用してアクセスを制限します。 | はい | はい | はい |
書き込み | はい | はい | はい | はい |
再共有 | N/A - 単独では付与できません | N/A - 単独では付与できません | N/A - 単独では付与できません | N/A - 単独では付与できません |
レイクハウス共有
レイクハウスを共有すると、ユーザーは、ワークスペースとその他の項目へのアクセス権を付与することなく、他のユーザーまたはユーザーのグループにレイクハウスへのアクセス権を付与します。
他のユーザーがレイクハウスを共有する場合は、次の追加のアクセス許可を付与することもできます。
- SQL 分析エンドポイントに対する ReadData アクセス許可
- レイクハウスに対する ReadAll アクセス許可
- 既定のセマンティック モデルに対するビルドアクセス許可
詳細については、「レイクハウスの共有のしくみ」を参照してください
SQL 分析エンドポイントはウェアハウスです。 アクセス許可モデルの詳細については、「ウェアハウス データの共有とアクセス許可の管理」を参照してください
共有オプション | OneLake でファイルを表示できるか? | OneLake でファイルを書き込めるか? | SQL 分析エンドポイントを介してデータを読み取ることができますか? | セマンティック モデルを表示および構築できますか? |
---|---|---|---|---|
追加のアクセス許可が選択されていません | 既定では、いいえ。 OneLake RBAC を使用してアクセス権を付与します。 | いいえ | いいえ | いいえ |
すべての SQL エンドポイント データを読み取る | 既定では、いいえ。 OneLake RBAC を使用してアクセス権を付与します。 | いいえ | はい | いいえ |
すべての Apache Spark を読み取り、イベントをサブスクライブする | 既定では、はい。 OneLake RBAC を使用してアクセスを制限します。 | いいえ | いいえ | いいえ |
既定のデータセットでレポートを作成します | 既定では、はい。 OneLake RBAC を使用してアクセスを制限します。 | いいえ | いいえ | はい |
ショートカット
内部ショートカットの OneLake セキュリティ
レイクハウス内のフォルダーの場合、アクセス許可は常にすべての内部ショートカットに継承されます。このフォルダーはターゲットとして定義されます。
ユーザーが別の OneLake の場所へのショートカット経由でデータにアクセスすると、ショートカットのターゲット パス内のデータへのアクセスを承認するために、呼び出し元のユーザーの ID が使用されます。 その結果、このユーザーは、ターゲットの場所でデータを読み取るための OneLake セキュリティ アクセス許可を持っている必要があります。
重要
委任された ID モードで DirectLake over SQL または T-SQL エンジンを使用して Power BI セマンティック モデルを介してショートカットにアクセスする場合、呼び出し元のユーザーの ID はショートカット ターゲットに渡されません。 代わりに、呼び出し元のアイテム所有者の ID が渡され、呼び出し元ユーザーへのアクセスが委任されます。 これを解決するには、 DirectLake over OneLake モードで Power BI セマンティック モデル を使用するか、 ユーザーの ID モードで T-SQL を使用します。
内部ショートカットに対する OneLake セキュリティ アクセス許可の定義は許可されず、ターゲット項目にあるターゲット フォルダーで定義する必要があります。 ターゲット項目は、OneLake セキュリティ ロールをサポートする項目の種類である必要があります。 現時点では、OneLake セキュリティ ロールをサポートするのはレイクハウスのみです。
次の表では、対応するショートカット シナリオで OneLake セキュリティ アクセス許可をサポートするかどうかを指定します。
内部ショートカット シナリオ | OneLake のセキュリティアクセス許可がサポートされていますか? | コメント |
---|---|---|
同じレイクハウスにある フォルダー 2 を指すレイクハウス内のショートカット。 | サポート対象。 | ショートカット内のデータへのアクセスを制限するには、フォルダー 2 に対する OneLake セキュリティを定義します。 |
他のレイクハウスにあるフォルダー 2 を指すレイクハウス内のショートカット | サポート対象。 | ショートカット内のデータへのアクセスを制限するには、もう一方のレイクハウスでフォルダー 2 の OneLake セキュリティを定義します。 |
データ ウェアハウスにあるテーブルを指すレイクハウス内のショートカット | サポートされていません。 | OneLake では、データ ウェアハウスでのセキュリティ アクセス許可の定義はサポートされていません。 代わりに、アクセスは ReadAll アクセス許可に基づいて決定されます。 |
KQL データベースにあるテーブルを指すレイクハウス内のショートカット | サポートされていません。 | OneLake では、KQL データベースでのセキュリティ アクセス許可の定義はサポートされていません。 代わりに、アクセスは ReadAll アクセス許可に基づいて決定されます。 |
外部ショートカットの OneLake セキュリティ (ADLS、S3、Dataverse)
OneLake では、ADLS、S3、Dataverse ショートカットなどのショートカットに対するアクセス許可の定義がサポートされています。 この場合、アクセス許可は、この種類のショートカットに対して有効になっている委任された承認モデルの上に適用されます。
ユーザー 1 が、AWS S3 バケット内のフォルダーを指す S3 ショートカットをレイクハウスに作成するとします。 その後、user2 はこのショートカット内のデータにアクセスしようとしています。
S3 接続は、委任されたユーザー 1 のアクセスを承認しますか? | OneLake セキュリティは、要求ユーザー 2 のアクセスを承認しますか? | 結果: user2 は S3 ショートカットのデータにアクセスできますか? |
---|---|---|
はい | はい | はい |
いいえ | いいえ | いいえ |
いいえ | はい | いいえ |
はい | いいえ | いいえ |
OneLake セキュリティ アクセス許可は、ショートカットのスコープ全体または選択したサブフォルダーに対して定義できます。 フォルダーに設定されたアクセス許可は、サブフォルダーがショートカット内にある場合でも、すべてのサブフォルダーに再帰的に継承されます。
S3、ADLS、Dataverse のショートカットの詳細については、「OneLake ショートカット」を参照してください。
行と列のセキュリティ
OneLake セキュリティ ロールを使用すると、レイクハウス内のテーブルに対して行レベルセキュリティ (RLS) と列レベルセキュリティ (CLS) を使用できます。 RLS と CLS は、単一ロールと複数ロールの特定の構成規則に従います。 一般に、RLS と CLS はロール内の共通部分であり、複数のロール間の和集合で構成されます。
注
OneLake セキュリティは現在、限定プレビュー段階です。 プレビューへの参加を依頼してこれらの機能にアクセスするには、https://aka.ms/onelakesecuritypreview のフォームに入力します。
1つの役割
RLS と CLS を使用してロールを定義する場合、ユーザーは最初にアクセス権を付与するテーブルを選択します。 この選択から、RLS や CLS などの制約を 1 つ以上のテーブルに定義できます。 RLS と CLS は、テーブルに付与された完全なスキーマとデータに対するフィルターとして構成されます。
例えば次が挙げられます。
ユーザー A はロール 1 のメンバーです。 ロール 1 には次の定義があります。
- Table1 への読み取りアクセス
- CLS: 表 1 では列 1 が削除済み。
- RLS: 表 1 では列 2 = "US"。
ユーザー A が 表 1 に対してクエリを実行すると、列 1 を除くすべての列が表示され、列 2 の値が "US" の行のみが表示されます。
複数ロール
複数ロールにわたる RLS と CLS の場合、セキュリティは各カテゴリの和集合を通じて結合されます。 各ロールは、RLS および CLS ルールが適用されたテーブルのビューを生成し、ユーザーはこれらのビューの和集合を表示します。
CLS は、ロール間の単純な和集合として結合されます。 任意の制約を制約なしと結合すると、そのテーブルへの制限はなくなります。
RLS は、SQL ステートメントの OR として結合されます。 CLS と同様に、テーブルへのフル アクセスで結合された RLS ルールでは、すべての行が表示されます。
重要
2 つのロールが組み合わせると、列と行がクエリ全体で揃わない場合、エンド ユーザーにデータが漏えいしないようにアクセスがブロックされます。
OneLake のセキュリティの制限事項
B2B ゲスト ユーザーに OneLake セキュリティ ロールを割り当てる場合は、Microsoft Entra 外部 ID で B2B の外部コラボレーション設定を構成する必要があります。 ゲスト ユーザー アクセス 設定は、ゲスト ユーザーがメンバー (最も包括的な) と同じアクセス権を持つに設定する必要があります。
OneLake セキュリティでは、リージョン間のショートカットはサポートされていません。 異なる容量リージョン間でデータへのショートカットにアクセスしようとすると、404 エラーが発生します。
OneLake セキュリティのロールに配布リストを追加した場合、SQL エンドポイントはリストのメンバーを解決してアクセスを強制することはできません。 その結果、ユーザーは SQL エンドポイントにアクセスするときにそのロールのメンバーではないように見えます。
セマンティック モデルでは、OneLake セキュリティが有効になっていない他のレイクハウスを指すショートカットはサポートされていません。
Spark SQL を使用して Spark ノートブックからデータを照会するには、ユーザーがクエリを実行しているワークスペースで少なくともビューアー アクセス権を持っている必要があります。
Spark ノートブックでは、環境が 3.5 以上で、Fabric runtim 1.3 を使用している必要があります。
次の表に、OneLake データ アクセス ロールの制限事項を示します。
シナリオ 制限 ファブリック項目あたりの OneLake セキュリティ ロールの最大数 レイクハウスあたり 250 ロール OneLake セキュリティ ロールあたりのメンバーの最大数 ロールあたり 500 ユーザーまたはユーザー グループ OneLake セキュリティ ロールあたりのアクセス許可の最大数 ロールあたり 500 のアクセス許可
OneLake セキュリティの遅延
- ロール定義の変更が適用されるまでに約 5 分かかります。
- OneLake セキュリティ ロールのユーザー グループに対する変更は、OneLake が更新されたユーザー グループにロールのアクセス許可を適用するまでに約 1 時間かかります。
- 一部の Fabric エンジンには独自のキャッシュ レイヤーがあるため、すべてのシステムでアクセスを更新するために追加の時間が必要になる場合があります。