OneLake とは…?
Microsoft Fabric の OneLake について紹介すると、OneLake に入れたデータは誰でもアクセスできるようになってしまうのではないか?という質問を受けることが度々あります。これは OneLake のコンセプトを聞いたときに、実体が分からないために湧きおこる疑問かと思います。
この記事は OneLake とは何なのか、アクセス制御はどうなっているのかをざっくり理解することを目的としています。
OneLake の実体はストレージ
Fabric にデータを入れる時、レイクハウスやウェアハウス、イベントハウスなどのデータのストア先 (入れ物) が必要となります。 これらの論理的な入れ物を作成して、その中にテーブルやファイルとしてデータを入れることになります。
ファイルはそのまま、テーブルは Delta 形式で格納されます。 Fabric では既定で V-Order により特殊な並べ替え、行グループの配布、辞書のエンコード、Parquet ファイルへの圧縮を適用した Delta 形式でデータを保存することで、Power BI エンジンと SQL エンジンでは、インメモリのようなデータ アクセス タイムを実現します。
これが Power BI が DirectLake 形式により、Fabric でパフォーマンスとリアルタイムを両立する理由です。
なお V-Order はオープンソースの Parquet 形式に 100% 準拠していおり、すべての Parquet エンジンは、これを通常の Parquet ファイルとして読み込むことができます。
このようにストアされたデータは、物理的にはストレージに格納されます。何にどのくらい消費しているのかは、Fabric Capacity Metrics アプリで確認できます。
ミラーリングとショートカット
ミラーリングは、主にデータベースのコピーを OneLake に作成することで、ショートカットはファイルへのリンクを作成することで、OneLake 上で使えるようにすることです。
ミラーリングを使用すると、データとメタデータの OneLake へのレプリケーションと V-Order が有効な Parquet への変換が行われます。ミラーリングされたデータは OneLake に存在しますが、Fabric 容量が稼働している限り、一定容量まではストレージ料金は免除されます。
ショートカットを作成する場合、レイクハウスまたは KQL データベースに作成します。データの実体は OneLake ではなく、リンク先にのみ存在します。
ショートカットされているアイテムは、使用する時にソース システムから読み込まれます。
アクセス許可と資格情報はすべて OneLake が管理するため、データソース側で設定されているアクセス権とは別管理になります。
OneLake はデータのための OneDrive
と言われても、OneDrive を使っていなければ分からないのですが・・・。OneDrive はファイルを置いて適宜共有できるクラウド サービスですが、誰がそのファイルにアクセスできるかは、どのように共有の設定をしたかによります。OneLake も同様に、OneLake に置いたデータにアクセスできるかは、アクセス権の設定次第となります。
アクセス制御
Microsoft Fabric は Power BI を拡張する形で誕生しました。Power BI をお使いになっている方はよくご存じの通り、アクセス権の最初の一歩となるのがワークスペースです。ワークスペースはデータやレポートを提供する側となるユーザーがアクセス権を持つのが基本となります。
レイクハウスなどのすべての Fabric アイテムは、このワークスペースの中に作成します。
アクセス権はロールで管理されており、次の4種類があります。
ロール | 主なできること |
---|---|
管理者 | ワークスペースに関するすべての操作、アイテムの追加・編集・削除が可能 |
メンバー | メンバー以下の権限でのアクセス権付与、アイテムの追加・編集・削除が可能 |
共同作成者 | アイテムの追加、編集が可能 |
ビューアー | アイテムの閲覧のみ可能 |
Power BI だけであれば、レポートを閲覧するユーザーに対して、ビューアー ロールを付与するという運用方法でも良かったのですが、レイクハウスやウェアハウスなどは、ビューアー ロールがあると中のデータまで見えてしまうので、注意が必要です。
不用意な共有を避けるためにも、Power BI とそれ以外の用途とでは、ワークスペースを分けておくのがおすすめです。
なお、ワークスペースの中でフォルダーを作成できるようになりましたが、フォルダー単位でのアクセス権の設定は、現時点ではできません。
ワークスペース内のアイテムは、それぞれ個別にアクセス権を付与することができます。アクセス権はすべて加算的に付与されることに注意してください。 たとえば、ワークスペースのビューアー ロールをもつユーザーに対し、あるノートブックに対する編集権限を付与した場合、ユーザーはノートブックを編集できます。
ここまで読んで「最小権限のビューアー ロールで全部見えちゃうじゃん」と思いますよね。大丈夫です、もちろんもっと細かい制御が可能です。
OneLake RBAC により、ワークスペース ビューアー を使用するユーザーまたはレイクハウスへの読み取りアクセス権を持つユーザーのデータ アクセスを制限できます。
ミラーリングとショートカットのところで「データソース側で設定されているアクセス権とは別管理になります」と書きましたが、Fabric 外部のショートカットについては、権限を委任するかどうか等の設定を行うことができ、この OnaLake RBAC を使用します。
詳しくはこちらのドキュメントをご覧ください。
さいごに
こちらでより OneLake の魅力が分かる記事が書かれていますので、合わせてご覧ください。