データ ウェアハウス チームの lakehouse を保護する方法
はじめに
この記事では、T-SQL クエリを使用する SQL ユーザーと共に使用するために Fabric のレイクハウスのセキュリティを構成する方法の概要について説明します。 これらのユーザーは、SQL、レポート ビルダー、新しいテーブルやビューを作成するデータ エンジニアなどを介してデータを使用するビジネス アナリストである場合があります。
セキュリティ機能
Microsoft Fabric では、必要最小限のアクセス許可のみを提供するために、さまざまなレベルで使用できる別々のコントロールを持つ多層セキュリティ モデルを使用します。 Fabric で使用できるさまざまなセキュリティ機能の詳細については、「OneLake のデータ アクセス制御モデル」を参照してください。
Fabric Data Warehouse ワークロードでは、ウェアハウスと SQL 分析エンドポイント アイテムを使用して、ネイティブ SQL セキュリティを定義することもできます。 SQL セキュリティでは、T-SQL セキュリティ コンストラクトの完全なライブラリを使用して、項目内のテーブル、ビュー、行、列の詳細なアクセス制御を可能にします。 SQL セキュリティの詳細については、「SQL の詳細なアクセス許可」を参照してください。
ウェアハウスと SQL 分析エンドポイントで構成されている SQL アクセス許可は、ウェアハウスまたは SQL 分析エンドポイントに対して実行されるクエリにのみ適用されます。 基になるデータは OneLake に存在しますが、OneLake データへのアクセスは、OneLake データ アクセス ロールによって個別に制御されます。 SQL 固有のアクセス許可を持つユーザーに SQL アクセス権のないデータが表示されないようにするには、OneLake データ アクセス ロールにそれらのユーザーを含めないでください。
ユース ケースごとのセキュリティ保護
Microsoft Fabric のセキュリティは、特定のユース ケースに対するデータの保護に関して最適化されています。 ユース ケースは、特定のアクセスを必要とし、所定のエンジンを介してデータにアクセスするユーザーのセットです。 SQL シナリオについては、次のような一般的なユース ケースがあります。
- SQL ライター: 新しいテーブルの作成、既存のテーブルに関するデータの表示または書き込みを行う必要があるユーザー。
- SQL リーダー: SQL クエリを使用してデータを読み取る必要があるユーザー。 SQL 接続に直接アクセスすることも、Power BI などの別のサービスを介してアクセスすることもできます。
その後、各ユース ケースを Fabric で必要なアクセス許可に合わせて調整できます。
SQL 書き込みアクセス権限
ユーザーがウェアハウスまたは SQL エンドポイントへの書き込みアクセス権限を取得するには、2 つの方法があります。
- Fabric ワークスペース ロールを使用して、書き込みアクセス許可を付与する 3 つのワークスペース ロールにメンバーシップを付与できます。 各ロールは、同等の書き込みアクセス権限を付与する SQL の対応するロールに自動的に変換されます。
- SQL エンジンへの読み取りアクセス権を付与し、一部またはすべてのデータに書き込むカスタム SQL アクセス許可を付与します。
ユーザーがワークスペース内のすべてのウェアハウスと SQL 分析エンドポイントへの書き込みアクセス権限を必要とする場合は、ワークスペース ロールに割り当てます。 ユーザーが他のユーザーをワークスペース ロールに割り当てる必要がない限り、共同作成者ロールを使用してください。
ユーザーが特定のウェアハウスと SQL 分析にのみ書き込む必要がある場合は、SQL アクセス許可を介して直接アクセス権を付与します。
SQL 読み取りアクセス
ユーザーがェアハウスまたは SQL 分析エンドポイントへの読み取りアクセス権を取得するには、2 つの方法があります。
- 読み取りアクセス権は、Fabric ワークスペース ロールの一部として付与された ReadData アクセス許可を使用して付与します。 4 つのワークスペース ロールすべてに ReadData アクセス許可が付与されます。
- SQL エンジンへの読み取りアクセス権を付与し、一部またはすべてのデータに読み取るカスタム SQL アクセス許可を付与します。
ユーザーが Fabric ワークスペース ロールのメンバーである場合は、ReadData アクセス許可が付与されます。 ReadData アクセス許可は、ユーザーを、ウェアハウスまたは lakehouse 内のすべてのテーブルに対する SELECT アクセス許可を付与する SQL ロールにマップします。 このアクセス許可は、ユーザーが lakehouse またはウェアハウス内のデータのすべてまたはほとんどを表示する必要がある場合に役立ちます。 特定のレイクハウスまたはウェアハウスに設定されている SQL 拒否アクセス許可は引き続き適用され、テーブルへのアクセスが制限されます。 さらに、行レベルと列レベルのセキュリティをテーブルに設定することで、詳細なレベルでアクセスを制限できます。
ユーザーが特定の lakehouse またはウェアハウスにのみアクセスする必要がある場合、共有機能は共有アイテムにのみアクセスできるようにします。 共有中、ユーザーは読み取り (Read) アクセス許可のみを付与するか、読み取り (Read) および ReadData を付与することができます。 読み取りアクセス許可を付与すると、ユーザーはウェアハウスまたは SQL 分析エンドポイントに接続できますが、テーブルへのアクセスは許可されません。 ユーザーに ReadData アクセス許可を付与すると、ウェアハウスまたは SQL 分析エンドポイント内のすべてのテーブルに対する完全な読み取りアクセス権が付与されます。 どちらの場合も、特定のテーブルへのアクセスを許可または拒否するように追加の SQL セキュリティを構成できます。 この SQL セキュリティには、行レベルや列レベルのセキュリティなどの詳細なアクセス制御を含めることができます。
ショートカットで使用する
ショートカットは OneLake 機能であり、データを物理的にコピーすることなく、1 つの場所からデータを参照できます。 ショートカットは、1 つのレイクハウスのデータを、データの重複コピーを作成せずに他の場所で簡単に再利用できるようにする強力なツールです。
Fabric のウェアハウスでは、ショートカットはサポートされていません。 ただし、レイクハウスの SQL 分析エンドポイントがショートカットと相互作用する方法には特別な動作があります。
SQL 分析エンドポイントを介してクエリを実行すると、レイクハウス内のすべてのショートカットは委任モードでアクセスされます。 委任された ID は、Lakehouse を所有する Fabric ユーザーです。 既定では、オーナーはレイクハウスと SQL 分析エンドポイントを作成したユーザーです。 一部のケースではオーナーを変更でき、ワークスペース項目の一覧でアイテムを表示すると、Fabric の [オーナー] 列に現在のオーナーが表示されます。 委任された動作とは、クエリを実行しているユーザーではなく、オーナーが基になるデータにアクセスできる場合、クエリを実行するユーザーがショートカット テーブルからの読み取りが可能であることです。 クエリを実行するユーザーは、ショートカット テーブルから選択するアクセス権のみを必要とします。
Note
たとえば、UserA は lakehouse のオーナーであり、UserB はショートカットであるテーブルに対してクエリを実行する場合を想定します。 UserB には、ReadData を使用する場合も、SQL アクセス許可を使用する場合も、まずテーブルに対する読み取りアクセス権が必要です。 データを表示するにあたり、クエリは UserA がそのショートカットにアクセスできるかどうかをチェックします。 UserA にアクセス権がある場合、UserB にクエリ結果が表示されます。 UserA にアクセス権がない場合、クエリは失敗します。
[OneLake データ アクセス ロール]機能を使用するレイクハウスの場合、ショートカットへのアクセス権は、SQL 分析エンドポイント オーナーがターゲットのレイクハウスを表示し、OneLake データ アクセス ロールを介してテーブルを読み取るためのアクセス権を持っているかどうかによって決まります。
[OneLake データ アクセス ロール]機能をまだ使用していないレイクハウスの場合、ショートカットへのアクセス権は、SQL 分析エンドポイント オーナーがターゲット パスに対する読み取りおよび読み取りオールアクセス許可を持っているかどうかによって決まります。