未解決
1 Rookie
•
33 メッセージ
1
35
2025年8月5日 12:39
DataPlatformTech 第34回 Dell Data Lakehouseのアクセスコントロール
いつも本ブログをご覧いただきましてありがとうございます。今回はDell Data Lakehouseのビルトインアクセスコントロール(BIAC)についてご紹介します。ビルトインアクセスコントロールは新しい機能ではなく、リリース当初から実装されておりますが、今までブログでは簡易的にしかご紹介できておりませんでした。今回は、普段お客様へご紹介の際に実施しているデモの流れに沿って、ビルトインアクセスコントロールによって組織の全データを安全に提供する方法についてご紹介します。
近年、AIの急速な進化を受けビジネスへのAIの適用や活用は組織にとって急務となっています。それに伴い、柔軟かつ高性能なデータプラットフォームの構築が不可欠です。特にAIを活用する際には、高度なガバナンスとセキュリティを実現するデータアーキテクチャの整備が一層重要となります。
AIのためにデータを用意する際、一般的にはデータが分散した環境ではアクセスコントロールの管理が煩雑になりがちですが、Dell Data Lakehouseではデータソースの種類に関わらず一元的に権限を設定/管理することが可能です。
Dell Data Lakehouseは外部のアクセスコントロール(Apache RangerやImmuta、Privaceraなど)と連携してご利用頂くことも可能ですが、ビルトインアクセスコントロールはカタログ、スキーマ、テーブルだけでなくテーブル内の特定の列、関数、ストアド プロシージャ、データプロダクトなどきめ細かく制御が行えます。また、Dell Data Processing Engine(Spark)や近日中に予定されているLLM関数(SQLによる要約や分類、感情分析など)に対してもアクセスコントロールを行うことができます。
1. ビルトインアクセスコントロールの設定
早速、実際にデモでご紹介している内容をDell Data Analytics EngineのUIを用いて説明します。あらかじめ、Active Directoryを認識基盤としyasuiというユーザを作成しています。
大まかな流れとしましては、初めにoperatorという名前のロールを作成します。次にoperatorロールに、TPC-H(業界標準の意思決定支援向けベンチマーク用データセット)のsf100に存在するcustomerテーブルのみ参照する権限(認可)を与え、かつcustomerテーブル内のphone列をマスクします。最後にoperatorロールにyasuiを登録します。
その結果、ユーザyasuiはDell Data Lakehouseのビルトインアクセスコントロールによって、sf100のcustomerテーブルのみ参照可能(かつphoneはマスクされた値)となります。下記1~12で実際にスクリーンショットを用いてご紹介します。
1. アクセスコントロールを設定する前に、あらかじめ登録されているマスクの内容を確認をしたいと思います。はじめに、dv-admin(sysadmin権限を持っているユーザ)でDell Data Analytics EngineのUIにログインします。下記のスクリーンショットのように【Masks and filters】には、デフォルトで6種類の列マスクが定義されています。指定した列に対してハッシュ(例:3e51)や整数(例:1111)文字列(例:xxxx)やNULL、最初の4桁のみ表示や最後の4桁のみ表示などのマスクを用途に応じて設定することができます。
2. 続いて、新しいロールを作成します。【Roles and privileges】から「Create role」を選択します。
3. add a new role画面で「Role name」は"operator"と入力します、「Role description」は空欄のままにします。続いて「Add role」を選択します。
4. 作成したoperatorロールの右側のActionsから「Details」を選択します。画面右側に詳細(Details: operator)が表示されますので、「Add privileges」を選択します。
5. Assign to: operator画面では、各エンティティに対して権限(許可もしくは拒否)を選択します。今回はtpchのsf100に存在するcostomerテーブルのみ参照権限を付与しますので、「Tables」を選択し、カタログはプルダウンから「tpch」を選択します。続いてスキーマはプルダウンから「sf100」を選択します。
6. テーブルはプルダウンから「customer」を選択します。列に関しては特に制限しないので「All columns」をチェックします。次のアクセス許可/拒否の設定は許可(Allow)を選択します。
7. customerテーブルに対して参照のみ割り当てたいので、許可する権限は「SELECT」のみチェックします。続いて、Add column mask and filtersの項目にある、「Select column」のプルダウンから「phone」を選択します。次に「Select mask」プルダウンから「Show last 4」を選択します。
8. 最後に「Save privilege」を選択して、「No, add later」を選択します。
9. operatorロールに正しく権限が登録されたかを確認します。
10. 同様にoperatorロールに正しくマスクが登録されたかを確認します。
11. 続いてoperatorロールにユーザを登録します。operatorロールの右側のActionsから「Assign」を選択後、Assign to role画面で「Entity category」から「User」を選択します。「User」は"yasui"を入力します。入力後「Assign」を選択します。
12. operatorロールに正しくユーザが登録されたことを確認します。
2. ビルトインアクセスコントロールの動作確認
ロールの権限によって正しくアクセスコントロールとマスキングが機能するか確認します。dv-adminとyasuiとでログインを行いcustomerテーブルに対してSELECT文を実行した際の結果を比較して確認します。
1. 下記のスクリーンショットはdv-adminでログインした状態です。【Cluster explorer】には登録している全データソースが確認できます。customerテーブルをSELECTした場合は下記の通りです。phone列はマスクされていないデータが表示されています。
2. 次にyasuiでログインします。下記のスクリーンショットのとおり【Cluster explorer】にはcustomerテーブルのみ表示されており他のデータソースにはアクセスできません。先程と同様のSELECT文を実行するとphone列に関してはマスキングされた内容が表示され電話番号の最後の4桁のみ確認できます。
※ 今回ご紹介にあたり、Dell Data Lakehouse v1.3 (2025年1月のリリースのDell Data Analytics Engine)を使用しました。
さいごに
最近はデータプラットフォームとして広義にはDell AI Data Platformと言ったりもしますが、Dell AI Data Platformについては別の機会にご紹介します。(来月予定)
バックナンバー
DataPlatformTech 第33回 Dell Data Processing Engineリリース
DataPlatformTech 第32回 マルチクラウドにおけるデータプラットフォーム(Snowflake編)