启用“Hadoop”的哨兵 - Sentry 的通用权限管理模型

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础.
2011/11,12 南台資管 吳昭儀. 1. 使用者介面 (User Interface)  使用者操作畫面的安排  Textbox, ComboBox, ListBox, CheckList, … 2. 流程控制 (Process Control)  使用者輸入資料檢查  計算  資料輸出.
Java 技术与应用 数据库应用 ( 第 14 章 ) 西安交大 卫颜俊 2008 年 12 月 电子信箱: QQ: 网站 : /java.
第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
动态网站开发 【HTTP与网络基础】 李博杰
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
Big Data Ecosystem – Hadoop Distribution
第八讲 基于Hadoop的数据仓库Hive (PPT版本号:2016年4月6日版本)
第六章 資料倉儲與採礦技術 6.1 資料倉儲與採礦定義 6.2 資料採礦之步驟與技術分類 6.3 資料採礦在顧客關係管理之應用
“大云”大数据平台及应用 中国移动通信研究院 郭磊涛 2013年11月.
穆公(朱金清 微博:淘穆公 阿里HBase业务设计实践 穆公(朱金清 微博:淘穆公
ADO .NET 簡介.
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
巨量資料平台: Hadoop的生態系.
MySQL 使用者名稱:USERNAME (上限16個字元)
MySQL資料庫安全管理.
第4讲 MySQL服务器的配置与应用.
文科计算机小公共课规划教材 Access 程序设计.
Chap 13 視界與資料庫程式設計.
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
第2章 计算机网络的协议与体系结构 2.1 计算机网络体系结构的形成 2.2 协议与划分层次 2.3 计算机网络的原理体系结构
为教师开展大数据课程教学提供全方位、一站式服务
An Introduction to Database System
AaaS: ACL as a Service TEAM 2
Introduction to database
關聯式資料庫.
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
第六章 學習SQL語言.
課程名稱:資料庫系統 授課老師:李春雄 博士
第十一章 資料庫設計與權限設定.
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
基于Hadoop的数据仓库Hive.
二.資料庫系統建立與管理 Access 資料庫:windows下的單機資料庫 Access 操作 Mysql資料庫介紹.
Chap 10 SQL定義、操作與控制指令.
从UNIX到Windows的 电信软件移植实践
資料庫安全 (Database Security)
彰化縣政府補助辦理網頁設計資料庫應用班 ASP與資料庫介紹 建國技術學院資管系 饒瑞佶.
第九讲 Hadoop架构再探讨 (2016春季学期)
HBase简介与实践分享 剑英.
SQL Server 2000 数据库入门.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
第5章 資料倉儲的資料建置.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
教 师:曾晓东 电 话: 数据库技术 教 师:曾晓东 电 话:
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
Ch4.SQL Server 2005資料庫組成員元件介紹
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
PubMed整合显示图书馆电子资源 医科院图书馆电子资源培训讲座.
Introduction to Opensocial
第20章 MySQL数据库.
Spark SQL 介绍 付士涛. Spark SQL 介绍 付士涛 大纲 Architecture(架构) 像Hive一样的User Interface(用户操作界面) DataFrame的使用(1.3以前叫做SchemaRDD)
Microsoft SQL Server 2008 報表服務_設計
資料庫 靜宜大學資管系 楊子青.
Microsoft TechNet 技術講座--資料庫技術升級系列三 精誠公司恆逸資訊 楊先民
An Introduction to Database System
橫跨電腦、手機與軟體的全方位端點管控解決方案
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
OceanBase 0.4:从API到SQL 日照
第三章 SQL Server数据管理.
模式与实践:Windows Mobile 5.0应用程序架构
第六類 資料庫備份與回復.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
蔺华 ISV开发合作经理 平台及开发技术部 微软(中国)有限公司
大数据应用人才培养系列教材 大数据实践 刘 鹏 张 燕 总主编 袁晓东 主编 黄必栋 副主编.
Microsoft SharePoint Portal Server 2003 的部署、建置 與系統整合(上)
数据库应用技术 天津电大 翟迎建.
高擴充高穩定高安全 企業級資料管理平台 Report Builder概論 錢曉明 資策會 資深講師 台灣微軟 資深講師.
Presentation transcript:

启用“Hadoop”的哨兵 - Sentry 的通用权限管理模型 Hao Hao - hao.hao@cloudera.com Anne Yu - anneyu@cloudera.com Beijing Strata + Hadoop World, Aug 4 - 5 2016

关于我们 Cloudera (美国加州硅谷)软件工程师 Apache Sentry 的 PMCs 和 Committers Hao, 曾工作于eBay 的 Search Backend 团队 Anne, 曾工作于Amazon 的 Search Backend 团队

会议议程 Sentry 概观 Sentry 通用权限管理模型 Sentry 其他的重要特征 引言 (Introduction) 架构 (Architecture) Sentry 通用权限管理模型 动机 (Motivation): 提供机制使得任意的大数据处理引擎可以使用Sentry的细敉度访问控制 (easy integration with Apache data engines, even third-party data applications) 成功地与 Apache Hive, Impala, Solr, Kafka and Sqoop2整合 成功整合案例详解 Sentry 其他的重要特征

Sentry 概观 权限控制后台 (Authorization Service) Sentry 对hadoop上的数据提供基于角色的细粒度授权服务 (enforce role-based access control,RBAC。  数据的安全管理可以达到企业级的标准,现阶段已经应用于企业、银行等机构。 对于hadoop上的各种模块提供一个统一的授权平台。 提供可插拔接口(pluggable)和高度模块化。 目前的代码内置与Apache Hive, Hive metastore/HCataglog, Apache Solr, Apache Kafka, Apache Sqoop and Apache Impala的整合。下载编译可用。

(Policy Metadata Store) Sentry Architecture Hive Solr Sqoop Hook Hook Hook Server Client Model Thrift client APIs Get privileges; Grant/Revoke role; Grant/Revoke privileges; List roles Sentry Client Plugin Thrift APIs Sentry Server (Policy Metadata Store)

Authorization Provider Sentry Architecture Hive Solr Sqoop Access Binding Layer Authorization Provider DB Policy Engine Solr Policy Engine Sqoop Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Authorization Provider Sentry Architecture Hive Solr Sqoop Binding Layer: takes the authorization requests in the native format of requestors and converts that into a authz request based on the authorization data model that can be handled by Sentry authorization provider. Access Binding Layer Authorization Provider DB Policy Engine Solr Policy Engine Sqoop Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Authorization Provider Sentry Architecture Hive Solr Sqoop Authorization provider: an abstraction for making the authorization decision for the authz request from binding layer. Currently, supplies a RBAC authorization model implementation. Access Binding Layer Authorization Provider DB Policy Engine Solr Policy Engine Sqoop Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Authorization Provider Sentry Architecture Hive Solr Sqoop Policy Engine: gets the requested privileges from the binding layer and the required privileges from the provider layer.  It looks at the requested and required privileges and makes the decision whether the action should be allowed. Access Binding Layer Authorization Provider DB Policy Engine Solr Policy Engine Sqoop Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Authorization Provider Sentry Architecture Hive Solr Sqoop Policy Backend: making the authorization metadata available for the policy engine. It allows the metadata to be pulled out of the underlying repository independent of the way that metadata is stored. Access Binding Layer Authorization Provider DB Policy Engine Solr Policy Engine Sqoop Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Authorization Provider Sentry Architecture Hive Solr Sqoop Sentry policy store and Sentry Service: persist the role to privilege and group to role mappings in an RDBMS and provide programmatic APIs to create, query, update and delete it. This enables various Sentry clients to retrieve and modify the privileges concurrently and securely. Access Binding Layer Authorization Provider DB Policy Engine Solr Policy Engine Sqoop Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Authorization Model for SQL Engines 目前代码已经与 Apache SQL engines整合,下载编译即可使用。 Apache Hive, Impala (incubating) 定制的安全控制Apache SQL engines的所有DML 和 DDL操作。 定制的安全控制Apache SQL engines的所有数据形式: 数据库,表,视图和列 定制的客户端接口 DB policy engine 如果需要把这个定制的模型扩展到其他模块上需要大量的开发工作。

Generic Authorization Model Motivation Supports various data applications out of box Easy integration with any new components Very few implementation A more flexible design Generic authorization data model for defining sensitive resources Generic policy engine that includes: access actions and privileges abstraction could be interpreted by various engines

Generic Authorization Model Hive Solr Kafka Access Binding Layer Authorization Provider Policy Engine Provider Backend Policy Metadata Store Local File/HDFS Sentry Database

Server Client Model Thrift client APIs Get privilege; Grant/Revoke role; Grant/Revoke privilege; List roles Provide SentryCLI to manage policies and metadata sentryShell --grant_role_privilege --role analyst --privilege server=server1->db=db2->table=tab1->action=select --conf sentry-site.xml RESTful client APIs (Ongoing) Use HTTP requests to manage roles and privileges

Generic Authorization Model Hive Solr Kafka Access Binding Layer Authorization Provider Policy Engine Provider Backend Sentry Shell REST API Policy Metadata Store Local File/HDFS Sentry Database

详解如何实现通用的授权管理(1) Sentry 内部定义了一个通用的数据模型 定义通用的模块数据表现形式 URL 例如 Solr:///collection=c1/field=f1; Hive:///database=db/table=tbl/column=cl 组件数据可以是 server, database, table, view, column或者是connection, link 等等 内部机制可翻译各个模块的各种操作和之上的授权协议 例如Solr授权用户可以 “search search through collection”,授权协议可为基于 collection数据的read操作 例如Hive授权用户可以 “show databases”,授权协议可以为基于 database数据的read操作 其余的内部操作可以是 create, insert, select,write, update 其余的授权形协议可以是 create database, insert into table, select column etc

详解如何实现通用的授权管理(2) 核心通用授权引擎 (policy engine/policy provider) 可以解析各个组件数据上的数据,授权协议和理解他们的操作 核心通用结合层和可插拔的通用接口(pluggable hook) 提供通用的泛义hook函数可插入到各个组件的compile或者是execute的不同阶段。 例如 HS2 integrate hook into build stage; HMS integrate hook into a pre metadata change event 重新设计内部系统数据库 重建模块数据 重建模块操作和协议

Apache Sentry 最新成果 Sentry支持授权审计日志 (例如:Cloudera nagivator) Sentry支持不同集群间授权协议的导入和导出。例如 export/import to dump or load Sentry metadata Sentry目前支持Apache hive, impala, kafka, solr and sqoop2的数据安全管理 Sentry的通用权限访问控制模型简化了跟Hadoop其他生态组件之间的整合 Sentry hdfs sync (Cloudera cdh 5.3+) Column level privileges (Cloudera cdh5.5+) 支持在Amazon s3上的transactional data(Cloudera cdh5.7+) Sentry的系统和用户数据可以创建在amazon的 rds engine (Cloudera cdh 5.8+)

Sentry Upstream Releases Integrate Sqoop2 with Sentry by using generic authorization model 2016年6月Sentry 1.7.0发布 Sentry 和 Hive v2整合 Sentry 通用权限管理模型和 Kafka整合 Sentry 通用权限管理模型和 Solr 整合

Sentry hdfs sync Sentry 的授权和协议可以同步为hdfs data的acls Namenode维护一个基于内存的授权协议数据库 目前支持 Hive/Impala查询引擎的database/table/partition上的授权协议, 但是不支持 HMA HA 例如 Grant select on database database_name to role role_name; 拥有这个角色的用户可以被赋予hdfs的acls:group:user:r-x; 用户可以读database在hdfs filesystem上的目录和下面的文件。 hdfs dfs -ls -r /user/hive/warehouse/database.db

Column level privileges 支持基于查询引擎的表列级别的细粒度权限管理 在此之前用户创建大量的views来实现对表列的安全管理 例如: Grant select (column name) on table table_name to role role_name; Revoke select(column name) on table table_name from role role_name; 赋予此项权限的用户可以看到表列的数据: Select column_name from table table_name Desc table_name Show columns; 可以看到赋予权限的表列 Show grant command: 可以看到表列的权限 目前支持 Apache Hive/Impala/Hue

Sentry支持hdfs data on Amazon s3 hdfs的数据可以存储在s3云。 <property><name>fs.s3a.access.key</name><value>your-access-key</value></property> <property><name>fs.s3a.secret.key</name><value> your-secret-key</value></property> Hive 的用户数据也相应地可以存储在s3云。 另外Hive Warehouse也可以创建的s3云。 例如: CREATE EXTERNAL TABLE my_s3_table (viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User', country STRING COMMENT 'country of origination') COMMENT 'This is the staging page view table' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054' STORED AS TEXTFILE LOCATION 's3a://sentry-s3/cdh-sentry/db/tbl'; Grant all on uri ‘s3a://sentry-s3/cdh-sentry/db/tbl’ to role role_name 如果用户没有uri privilege on s3,sentry会拒绝用户的创建表操作

在amazon rds engine上创建sentry 用户可以创建Amazon rds mysql instance,然后设置成 sentry的 meta database。这样数据就可以存储在rds上面而不是hdfs filesystem; 例如: <property> <name>sentry.store.jdbc.url</name> <value>jdbc:mysql://rdsname.us-west-1.rds.amazonaws.com:3306/sentryserver9026323198f56d1932dd2d7bce2d171e?useUnicode=true&characterEncoding=UTF-8</value> </property> 于此同时Hive的 metadata 数据也可以放在 Amazon rds上: <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://rdsname.us-west-1.rds.amazonaws.com:3306/hive1?useUnicode=true&characterEncoding=UTF-8</value> </property>

Sentry 最新进度 2013年sentry成为apache的孵化项目,经过两年半的开发,开发社区增长很快,很多组织为其贡献代码,现已经有50多个贡献者,其中31个成为committer。 2016年sentry成为apache的顶级开源项目。

Future Work Sentry HA (high availabitity) 可以支持 HMS HA 和 HDFS ACLs Sync 为通用权限管理提供 RESTful client APIs Attribute Based Access Control (abac)

Reference Apache Sentry: https://cwiki.apache.org/confluence/display/SENTRY/Home Integrating with Sentry New Universal Authorization Model: https://cwiki.apache.org/confluence/display/SENTRY/Integrating+with+Sentry+New+Universal+Authorization+Model

Questions?