1
マルチテナント化に向けた
Hadoopの最新セキュリティ事情
小林大輔 ¦ Customer Operations Engineer
⾃自⼰己紹介
•  小林大輔
•  2012年9月 Cloudera入社
•  カスタマーオペレーションズエンジニア
•  主に国内外のテクニカルサポート業務を担当
•  email: daisuke@cloudera.com
•  twitter: d1ce_
2
アジェンダ
•  Hadoopのユースケースの移り変わり
•  マルチテナントとセキュリティの関連性
•  認可モジュールSentryの紹介
3
ユースケースの移り変わり
ユースケースの移り変わり - 黎黎明期からこれまで
•  バッチ処理
•  RDBMSでは非効率的だった処理にHadoopを利用
•  Hive(MapReduce), Pig, etc
•  部門単位での利用
•  部門毎に独立したクラスタがあり、管理も別々
•  クラスタの乱立
5
ユースケースの移り変わり  - 現在とこれから
•  バッチ処理 + インタラクティブな分析処理
•  Hive, Impala, etc
•  SQLによるアクセスが一般的
•  データは一部の人だけのものではない
•  クラスタの共有(マルチテナント)
6
ユースケースの移り変わり  - クラスタの共有
•  リソース、データを部門間で共有する
•  サービスとして各部署に提供
7
単⼀一クラスタ
⼈人事担当者購買担当者
クラスタを共有するメリット
1.  データの複製が不要
•  複数の組織が同一のデータにアクセスできる
2.  業務の巻き取り
•  複数の組織におけるクラスタの運用コストを、1クラ
スタにまとめることで一本化しコスト削減
3.  性能・効率の改善
•  クラスタのリソースを効率よく割り当てる
•  複数クラスタだと柔軟な割り当てができない
8
クラスタを共有する上での課題
1.  リソースの分離と管理
•  特定ユーザ、サービスによるリソースの占有を避ける
YARN開発のモチベーション
9
クラスタを共有する上での課題
1.  リソースの分離と管理
•  特定ユーザ、サービスによるリソースの占有を避ける
YARN開発のモチベーション
2.  ユーザアクセスの制限
10
ユーザアクセスの制限について
11
リソースは共有
したいが⾒見見せた
くないデータも
あるな...
このデータ⾒見見えて
いいのかな...
⼈人事担当者
購買担当者
ユーザアクセスの制限について
12
リソースは共有
したいが⾒見見せた
くないデータも
あるな...
システム的に遮断できた
ほうが望ましい
ユーザアクセスの制限について
13
購買担当者
⼈人事担当者
適切切な権限をもたないユーザ
はアクセスできない
クラスタを共有する上での課題
1.  リソースの分離と管理
•  特定ユーザ、サービスによるリソースの占有を避ける
YARN開発のモチベーション
2.  ユーザアクセスの制限
•  適切な人間、組織に適切な権限の付与が必要
セキュリティ機能開発のモチベーション
本プレゼンの主旨
14
ユーザアクセスの制限について
•  セキュリティ要件
•  ユーザの認証
•  ユーザAが間違いなく「ユーザA」であることを証明する
•  他のユーザによる、なりすましを防ぐ
•  権限付与の制御( = 認可)
•  ユーザAがどのデータにアクセスできるかを制御する
15
ここまでのまとめ
16
•  Hadoopはマルチテナント化へ向かっている
•  マルチテナント環境の要件
•  リソースの管理(YARN)
•  ユーザアクセスの制御(セキュリティ)
•  セキュリティ機能によるアクセス制御
•  認証
•  ユーザが誰であるか
•  認可
•  そのユーザにはどんな権限があるか
ユーザのアクセス制御について
認証と認可
•  認証
•  Kerberos
•  Hadoopの標準的な認証機構, Hive/Impalaも対応
•  認可
•  HDFS ACL(HDFS-4685)
•  ファイルシステムレベルのAccess Control List
•  Apache Sentry
•  Hive/Impala用の認可モジュール
18
認証と認可
•  認証
•  Kerberos
•  Hadoopの標準的な認証機構, Hive/Impalaも対応
•  認可
•  HDFS ACL(HDFS-4685)
•  ファイルシステムレベルのAccess Control List
•  Apache Sentry
•  Hive/Impala用の認可モジュール
19
認証と認可
•  認証
•  Kerberos
•  Hadoopの標準的な認証機構, Hive/Impalaも対応
•  認可
•  HDFS ACL(HDFS-4685)
•  ファイルシステムレベルのAccess Control List
•  Apache Sentry
•  Hive/Impala用の認可モジュール
20
認証 - Kerberos
•  相手が何者であるかを保証するためのプロトコル
•  データの整合性の確保や転送中のデータの暗号化
•  自分のアカウントに他人がアクセスするのを制限する
•  Hadoopも対応済み
21
認証 - Kerberos
•  例1 (Kerberos認証を有効にしたクラスタ)
•  認証されていないユーザでアクセスする
•  有効な資格情報がないためエラーになる
22
[daisuke@dice2 ~]$ klist -ef
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_2002)
[daisuke@dice2 ~]$ hdfs dfs -ls /user/daisuke
14/07/06 08:19:10 ERROR security.UserGroupInformation: PriviledgedActionException as:daisuke
(auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiate failed [Caused by
GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
14/07/06 08:19:10 WARN ipc.Client: Exception encountered while connecting to the server :
javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials
provided (Mechanism level: Failed to find any Kerberos tgt)]
...
認証 - Kerberos
•  例2 (Kerberos認証を有効にしたクラスタ)
•  サーバから認証されたユーザでアクセスする
•  有効な資格情報があるため読み書きが可能
23
[daisuke@dice2 ~]$ kinit
Password for daisuke@CLOUDERA:
[daisuke@dice2 ~]$ klist -ef
Ticket cache: FILE:/tmp/krb5cc_2002
Default principal: daisuke@CLOUDERA
... (略略) ...
[daisuke@dice2 ~]$ hdfs dfs -ls /user/daisuke
Found 109 items
drwx------ - daisuke daisuke 0 2014-07-05 17:00 /user/daisuke/.Trash
-rw-r--r-- 1 daisuke daisuke 2307 2014-06-06 03:55 /user/daisuke/TestUDF
... (略略) ...
[daisuke@dice2 ~]$ hdfs dfs -put data /user/daisuke
[daisuke@dice2 ~]$
認証 - Kerberos
•  Hive
•  HiveServer2(HS2)はKerberos認証に対応
•  ユーザやJDBCアプリケーションなどはHS2を介して
セキュアにアクセスできる
•  Impala
•  Kerberos認証にデフォルトで対応
24
認証と認可
•  認証
•  Kerberos
•  Hadoopの標準的な認証機構, Hive/Impalaも対応
•  認可
•  HDFS ACL(HDFS-4685)
•  ファイルシステムレベルのAccess Control List
•  Apache Sentry
•  Hive/Impala用の認可モジュール
25
認可
•  HS2のなりすまし機能(Impersonation)
•  Kerberosで認証されているユーザ名でアクセス可
•  無効にするとhiveユーザでアクセス
•  HDFSのユーザ/グループにより読み書きを制御(rwx)
•  課題
•  HiveやImpalaのメタデータ(列や行)レベルでのコント
ロールは不可
26
27
認可 - Apache Sentry
•  ロールベースのアクセスコントロールシステム
参考
http://sentry.incubator.apache.org/
28
認可 - Apache Sentry
•  Apache Incubatorプロジェクト
•  オープンソースで開発
•  Oracle社やCloudera社が主導
•  データベース、テーブル、ビュー、列/行
の粒度でアクセス制御
•  HiveやImpalaなど幅広いHadoop
エコシステムで利用可能
マルチテナントのための認可システム
Apache Sentryの紹介
権限を許可する
•  Sentryで使用されるオブジェクト
•  階層構造で表現される
•  オブジェクトに対してactionを定義
•  例)SALESデータベースのCUSTOMERS表に対するINSERT権限
を許可する
30
server=server1->db=sales->table=customers->action=insert
server ----------------------- Hive(Impala)サービスの認識識
¦_database
¦_table(view) ----------- 列列/⾏行行レベルで制御する場合はviewを作成
¦_URI --------------------- UDFや外部テーブルで使⽤用するディレクトリ
権限を許可する(続き)
•  actionはINSERT, SELECT, ALLの3種類
31
コマンド action オブジェクト
CREATE TABLE ALL database
SHOW TABLES SELECT or INSERT table
DROP TABLE ALL server
REFRESH ALL table
COMPUTE STATS ALL table
.... .... ....
参考
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH5/latest/CDH5-Security-Guide/cdh5sg_sentry.html
http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Using-Impala/ciiu_authorization.html
権限を許可する(続き)
•  ロールを使って権限をグループ化する
•  従業員の役割に応じたアクセス制限の付与が一般的
•  例: マネージャロール(HR)にはHR_TABLE表へのINSERT権限を許可
•  定義したロールは任意のユーザに割り当てる
•  複数のロールを割り当てることも可能
•  ポリシーファイルに定義(*.ini形式)
•  HDFSに分散して保存(ワーカノードの数だけ複製)
•  適切なパーミッションで保護
32
manager=server=server1->db=hr_db->table=hr_table->action=insert
マルチテナントとSentry
マルチテナントの管理
•  部門(データベース)ごとにポリシーファイルを持たせる
•  グローバルの管理者はデータベースのセキュリティ管理をデータ
ベース管理者に委譲することができる
34
マルチテナントの管理
35
グローバル管理理者
(グローバルDBのポリシーファイルを管理理)
マルチテナントの管理
36
⼈人事管理理者
購買管理理者
グローバル管理理者
(グローバルDBのポリシーファイルを管理理)購買担当者はPO_DBを
管理理してください
⼈人事担当者はHR_DBを
管理理してください
マルチテナントの管理
37
⼈人事管理理者
購買管理理者
グローバル管理理者
(グローバルDBのポリシーファイルを管理理)
各ユーザへテーブル、
列列/⾏行行レベルのアクセス
権限を付与
    
マルチテナントの管理
38
⼈人事管理理者
購買管理理者
グローバル管理理者
(グローバルDBのポリシーファイルを管理理)
SELECT... HR_..
INSERT...HR_
SELECT...PO_...
INSERT...PO_...
Sentryのアーキテクチャ
Impala Hive
Policy Engine
Future
Policy Provider
File Database
Sentryのアーキテクチャ
40
結合レイヤー
Impala
HiveServer
2
権限付与レイヤー
評価, 検証
解析
インターフェース
インターフェース
Local FS/
HDFS
クエリ実行フローにおけるSentry
41
QueryMR
SQL
Parse
Build
Plan
SQL文法検証
ステートメントツリー構築
ステートメントオブジェクト検査
実行計画へ返す
Check
Sentry
ロードマップ
Sentryの今後
43
•  データベースをベースにしたポリシーの管理理
•  GRANT/REVOKEといったおなじみの管理理コマンド
が利利⽤用可能になる
•  Sentry1.4
CDH5.1
まとめ
まとめ
45
•  Hadoopはマルチテナント化へ向かっている
•  マルチテナント環境の要件
•  リソースの管理(YARN)
•  ユーザアクセスの制御(セキュリティ)
=> 重要だがYARNの陰に隠れがち
•  Apache Sentryによる認可機能の強化
•  マルチテナント要件を満たすようこれからもOSS
で開発が進められるでしょう
46

More Related Content

PPTX
HDFS Supportaiblity Improvements
PDF
C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
PDF
CDHの歴史とCDH5新機能概要 #at_tokuben
PDF
Cloud Native Hadoop #cwt2016
PDF
Apache Hadoop YARNとマルチテナントにおけるリソース管理
PDF
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
PPTX
機械学習の定番プラットフォームSparkの紹介
PDF
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015
HDFS Supportaiblity Improvements
C5.2 (Cloudera Manager + CDH) アップデート #cwt2014
CDHの歴史とCDH5新機能概要 #at_tokuben
Cloud Native Hadoop #cwt2016
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
機械学習の定番プラットフォームSparkの紹介
Hadoopビッグデータ基盤の歴史を振り返る #cwt2015

What's hot (20)

PDF
「新製品 Kudu 及び RecordServiceの概要」 #cwt2015
PDF
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
PDF
Hadoop Operations #cwt2013
PPTX
認証/認可が実現する安全で高速分析可能な分析処理基盤
PDF
HBase活用事例 #hbase_ca
PDF
20190314 PGStrom Arrow_Fdw
PDF
Apache Impalaパフォーマンスチューニング #dbts2018
PPTX
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
PDF
#cwt2016 Cloudera Managerを用いた Hadoop のトラブルシューティング
PDF
#cwt2016 Apache Kudu 構成とテーブル設計
PPTX
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
PDF
Troubleshooting Using Cloudera Manager #cwt2015
PDF
Spark徹底入門 #cwt2015
PDF
Cloudera Manager 5 (hadoop運用) #cwt2013
PDF
HBase Across the World #LINE_DM
PDF
Strata + Hadoop World 2014 レポート #cwt2014
PPTX
HBaseサポート最前線 #hbase_ca
PDF
HDFS HA セミナー #hadoop
PPTX
データ活用を効率化するHadoop WebUIと権限管理改善事例
PDF
Impala概要 道玄坂LT祭り 20150312 #dogenzakalt
「新製品 Kudu 及び RecordServiceの概要」 #cwt2015
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
Hadoop Operations #cwt2013
認証/認可が実現する安全で高速分析可能な分析処理基盤
HBase活用事例 #hbase_ca
20190314 PGStrom Arrow_Fdw
Apache Impalaパフォーマンスチューニング #dbts2018
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
#cwt2016 Cloudera Managerを用いた Hadoop のトラブルシューティング
#cwt2016 Apache Kudu 構成とテーブル設計
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Troubleshooting Using Cloudera Manager #cwt2015
Spark徹底入門 #cwt2015
Cloudera Manager 5 (hadoop運用) #cwt2013
HBase Across the World #LINE_DM
Strata + Hadoop World 2014 レポート #cwt2014
HBaseサポート最前線 #hbase_ca
HDFS HA セミナー #hadoop
データ活用を効率化するHadoop WebUIと権限管理改善事例
Impala概要 道玄坂LT祭り 20150312 #dogenzakalt
Ad

Similar to マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014 (7)

PDF
Hadoop and Kerberos
PDF
HDP Security Overview
PPT
Yahoo! JAPANでのHadoop利用について
PDF
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
PDF
最新版Hadoopクラスタを運用して得られたもの
PDF
Apache Hadoopの未来 3系になって何が変わるのか?
PDF
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
Hadoop and Kerberos
HDP Security Overview
Yahoo! JAPANでのHadoop利用について
Hadoop Conference Japan_2016 セッション「顧客事例から学んだ、 エンタープライズでの "マジな"Hadoop導入の勘所」
最新版Hadoopクラスタを運用して得られたもの
Apache Hadoopの未来 3系になって何が変わるのか?
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
Ad

More from Cloudera Japan (20)

PPTX
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
PDF
分散DB Apache Kuduのアーキテクチャ DBの性能と一貫性を両立させる仕組み 「HybridTime」とは
PDF
Cloudera のサポートエンジニアリング #supennight
PDF
Train, predict, serve: How to go into production your machine learning model
PDF
Apache Kuduを使った分析システムの裏側
PDF
Cloudera in the Cloud #CWT2017
PDF
先行事例から学ぶ IoT / ビッグデータの始め方
PPTX
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
PDF
How to go into production your machine learning models? #CWT2017
PDF
Apache Kudu - Updatable Analytical Storage #rakutentech
PPTX
Hue 4.0 / Hue Meetup Tokyo #huejp
PDF
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
PDF
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
PDF
大規模データに対するデータサイエンスの進め方 #CWT2016
PDF
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
PDF
クラウド上でHadoopを構築できる Cloudera Director 2.0 の紹介 #dogenzakalt
PDF
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
PDF
PCIコンプライアンスに向けたビジネス指針〜MasterCardの事例〜 #cwt2015
PPTX
基調講演: 「データエコシステムへの挑戦」 #cwt2015
PPTX
基調講演:「ビッグデータのセキュリティとガバナンス要件」 #cwt2015
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
分散DB Apache Kuduのアーキテクチャ DBの性能と一貫性を両立させる仕組み 「HybridTime」とは
Cloudera のサポートエンジニアリング #supennight
Train, predict, serve: How to go into production your machine learning model
Apache Kuduを使った分析システムの裏側
Cloudera in the Cloud #CWT2017
先行事例から学ぶ IoT / ビッグデータの始め方
Clouderaが提供するエンタープライズ向け運用、データ管理ツールの使い方 #CW2017
How to go into production your machine learning models? #CWT2017
Apache Kudu - Updatable Analytical Storage #rakutentech
Hue 4.0 / Hue Meetup Tokyo #huejp
Cloudera Data Science WorkbenchとPySparkで 好きなPythonライブラリを 分散で使う #cadeda
Cloudera + MicrosoftでHadoopするのがイイらしい。 #CWT2016
大規模データに対するデータサイエンスの進め方 #CWT2016
Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS
クラウド上でHadoopを構築できる Cloudera Director 2.0 の紹介 #dogenzakalt
MapReduceを置き換えるSpark 〜HadoopとSparkの統合〜 #cwt2015
PCIコンプライアンスに向けたビジネス指針〜MasterCardの事例〜 #cwt2015
基調講演: 「データエコシステムへの挑戦」 #cwt2015
基調講演:「ビッグデータのセキュリティとガバナンス要件」 #cwt2015

Recently uploaded (8)

PDF
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
PDF
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
PDF
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
PDF
20250823_IoTLT_vol126_kitazaki_v1___.pdf
PPTX
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
PPTX
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
PDF
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
PPTX
Vibe Codingを触って感じた現実について.pptx .
Yamaha DT200WR Real Enduro ENGINE CYLINDER TRANSMISSION
R-SCoRe: Revisiting Scene Coordinate Regression for Robust Large-Scale Visual...
20250826_Devinで切り拓く沖縄ITの未来_AI駆動開発勉強会 沖縄支部 第2回
20250823_IoTLT_vol126_kitazaki_v1___.pdf
Cosense - 整えずして完全勝利!Cosenseが他のwikiツールと違う理由
生成AIとモデルベース開発:実はとても相性が良いことを説明します。まあそうだろうなと思われる方はご覧ください。
Geminiの出力崩壊 本レポートは、Googleの大規模言語モデル「Gemini 2.5」が、特定の画像と短文入力に対して、誤った地名を推定し、最終的に...
Vibe Codingを触って感じた現実について.pptx .

マルチテナント化に向けたHadoopの最新セキュリティ事情 #hcj2014