SlideShare a Scribd company logo
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 (20)

PPTX
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
KEY
Web Operations and Perl kansai.pm#14
PDF
Azure Arc Jumpstart Update - HCIBox Edition
PDF
Awsデータレイク事例祭り dmm.com YUKI SASITO.pdf
PDF
少人数チームでのkubernetesへの移行事例
PDF
PostgreSQL UDF in Rust(Jpn) ver.2
PDF
PCIコンプライアンスに向けたビジネス指針〜MasterCardの事例〜 #cwt2015
PDF
Apache cloudstack4.0インストール
PDF
オトナのDocker入門
PDF
AWS re:Invent 2018 re:Cap
PDF
Treasure Dataを支える技術 - MessagePack編
PDF
Apache CloudStack 4.0 インストール(ver0.5)
PPTX
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
PDF
ConsulとNomadで簡単クッキング
PDF
10分で押さえる AWS re:Invent 2014 新サービス・アップデート
PDF
いまからでも遅くない Docker事始め&愉快な仲間達
PDF
第1回 松本勉強会 2012 05 11 - 公開版
PDF
マイクロサービス時代の生存戦略 with HashiCorp
PPTX
スケーラブルMoodle@Moodle Moot 2017JP
PDF
これからのクラウドネイティブアプリケーションの話をしよう
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
Web Operations and Perl kansai.pm#14
Azure Arc Jumpstart Update - HCIBox Edition
Awsデータレイク事例祭り dmm.com YUKI SASITO.pdf
少人数チームでのkubernetesへの移行事例
PostgreSQL UDF in Rust(Jpn) ver.2
PCIコンプライアンスに向けたビジネス指針〜MasterCardの事例〜 #cwt2015
Apache cloudstack4.0インストール
オトナのDocker入門
AWS re:Invent 2018 re:Cap
Treasure Dataを支える技術 - MessagePack編
Apache CloudStack 4.0 インストール(ver0.5)
[SAPPORO CEDEC] サービスの効果を高めるグリー内製ツールの技術と紹介
ConsulとNomadで簡単クッキング
10分で押さえる AWS re:Invent 2014 新サービス・アップデート
いまからでも遅くない Docker事始め&愉快な仲間達
第1回 松本勉強会 2012 05 11 - 公開版
マイクロサービス時代の生存戦略 with HashiCorp
スケーラブルMoodle@Moodle Moot 2017JP
これからのクラウドネイティブアプリケーションの話をしよう
Ad

More from Cloudera Japan (19)

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
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
基調講演: 「データエコシステムへの挑戦」 #cwt2015
基調講演:「ビッグデータのセキュリティとガバナンス要件」 #cwt2015

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