Simplify Access Policy Management With Privilege Inheritance in Unity Catalog - The Databricks Blogの翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
AWSとAzureでは正式提供となっているUnity Catalogは、レイクハウスにおけるデータ、分析、AIに対して統合されたガバナンスソリューションを提供します。数千の我々のお客様はすでに、馴染み深いSQLインタフェースによるシンプルなアクセス管理や監査コントロール、プラットフォーム横断のデータ共有、自動化されたリネージュによるシームレスなデータの可視性、容易なデータ検索と自動生成されるデータの洞察によってデータチームの生産性を倍増できることから、Unity Catalogを活用しています。
この記事では、大規模なアクセスポリシー管理をシンプルにするための、Unity Catalogにおける権限継承(privilege inheritance) を管理者がどの様に活用できるのかを探索します。
Unity Catalogにおける権限継承
データベース(スキーマ)に含まれるテーブルやビューのようなオブジェクトのそれぞれのアクセス権限を管理する場合、特に数多くのデータベースに数百、数千のデータオブジェクトが含まれている場合、データ管理者にとって苦痛で時間を浪費するものとなります。権限継承によって、これらのオブジェクトに対するセットアップと管理を容易なものにします。管理者は、データベース(スキーマ)に対するユーザーグループのアクセスを割り当てることができ、アクセス権限はスキーマに含まれているテーブルカスケードし、言い換えると継承します。これには、現時点で存在しているテーブルや今後作成されるものも含まれており、カタログやスキーマにおいて安全なアクセス権のデフォルト値を容易に設定する方法を提供します。
Unity Catalogの拡張された3レベル名前空間(<catalog>.<schema>.<table>
)と組み合わせると、権限継承は必要な場合に適切に活用できるようになるので、権限継承はデータ管理者によってさらにパワフルなツールとなります。以下の例では、カタログmain
にあるすべてのスキーマのテーブルとビューに対して、finance
グループのメンバーに対してSELECT
権限を許可することができます。
GRANT SELECT ON CATALOG main TO finance;
あるいは、以下の例に示す様により小規模なアクセススコープとしてスキーマレベルで権限を許可することができます。
GRANT SELECT ON SCHEMA main.default TO finance;
この継承モデルによって、お手元のデータに対してデフォルトのアクセするルールを容易にセットアップする手段を提供します。以下のコマンドでは、機械学習チームがスキーマ内にテーブルを作成し、他のテーブルを読み込むことを可能とします。
CREATE CATALOG ml;
CREATE SCHEMA ml.sandbox;
GRANT USE_CATALOG ON CATALOG ml TO ml_users;
GRANT USE_SCHEMA ON SCHEMA ml.sandbox TO ml_users;
GRANT CREATE TABLE ON SCHEMA ml.sandbox TO ml_users;
GRANT SELECT ON SCHEMA ml.sandbox TO ml_users;
従来通り、Unity Catalogメタストア管理者、オブジェクトのオーナー、オブジェクトを格納するカタログやスキーマのオーナーによって権限を付与することはできます。また、権限を管理するために、SQLコマンド、Unity Catalog CLI、新たなData Explorer UIを活用することができます。
Unity Catalogにおける新規、あるいは変更された権限タイプ
CREATE
とUSAGE
がより特定の権限タイプで置き換えられていることに気づくことでしょう。例えば、CREATE
はメタストアレベルではCREATE CATALOG
、カタログレベルではCREATE SCHEMA
、スキーマレベルではCREATE TABLE
で置き換えられています。同様に、USAGE
はカタログレベルではUSE CATALOG
、スキーマレベルではUSE SCHEMA
で置き換えられています。これによって、Unity Catalogでそれぞれのレベルでユーザーが行えることを正確にコントロールするために必要な柔軟性を提供します。
また、許可する対象に現存する(そして将来の)権限タイプのすべてを許可するための、カタログレベル配下に割り当てることができる新たなALL PRIVILEGES
があります。権限タイプの完全なリストに関しては、トピックUnity Catalogの権限とセキュリティ保護可能オブジェクト(AWS、Azure)を参照ください。
パブリックプレビューの期間中(2022/8/25以前)にUnity Catalogメタストアを作成している場合には、権限継承を利用できる様にするために、権限モデルバージョン1.0をアップグレードすることができます。権限モデルをアップグレードするまでは、既存のワークロードはそのままで動作し続けます。権限継承や新機能を活用できる様にするために、権限モデルバージョン1.0にアップグレードすることをお勧めします。詳細はトピック権限モデルのアップグレード(AWS、Azure)を参照ください。
Unity Catalogを始めてみる
Unity Catalogを使い始めるにはセットアップガイド(AWS、Azure)をご覧ください。Unity Catalogの権限の詳細に関しては、Unity Catalogの権限とセキュリティ保護可能オブジェクト(AWS、Azure)を参照ください。
また、いくつかの共通するUnity Catalog管理タスクをウォークスルーするためのノートブックをインポートすることができます。
- Unity Catalog Quickstart (SQL)
- Unity Catalog Quickstart (Python)
- Creating an External Table in Unity Catalog (AWS)
- Creating an External Table in Unity Catalog (Azure)
Unity Catalogにおけるアクセスポリシー管理の直近のロードマップ
- 属性ベースのアクセスコントロール: お手元のデータ資産に付与されたタグ(属性)に基づいてアクセスポリシーを定義します。
- 行フィルタリング、列マスキング: 行のフィルターと行のマスクを定義するために標準SQL関数を用いることで、行・列に対するきめ細かいアクセスコントロールを実現します。