日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是 Apache Sentry , Apache Sentry 介绍

發布時間:2024/8/23 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是 Apache Sentry , Apache Sentry 介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Apache Sentry是Hadoop中的一個基于角色的細粒度授權組件。Sentry可以在Hadoop集群上對通過身份認證的用戶和應用程序控制數據訪問權限。Sentry開箱即用的支持Hive,Hive Metastore/HCatalog,Solr,Impala,HDFS(僅限Hive表數據),Kafka和Kudu(通過Impala)。

?

Sentry旨在成為Hadoop各組件的可插拔授權引擎。它允許您定義授權規則以驗證用戶或應用程序對Hadoop資源的訪問請求。Sentry是高度模塊化的,可以支持Hadoop中各種數據模型的授權。

?

1?架構概述

?

1.1?Sentry組件

?

授權過程涉及三個組件:

?

  • Sentry Server

Sentry的RPC服務管理授權元數據。它支持安全檢索和操作元數據的接口。在CDH5.13及更高版本中,您可以配置多個Sentry服務以實現高可用性。

?

  • Data Engine

這是一個數據處理應用程序,比如Hive或Impala,它們需要授權訪問數據或元數據資源。數據引擎(data engine)加載Sentry插件,攔截所有客戶端訪問資源的請求并將其路由到Sentry插件進行驗證。

?

  • Sentry Plugin

Sentry plugin在data engine中運行。它提供了操作存儲在Sentry Server中的授權元數據的接口,包括授權策略引擎,該引擎使用從服務器檢索的授權元數據來評估訪問請求。

?

1.2?關鍵概念

?

  • Authentication - 驗證憑據以識別用戶

  • Authorization - 限制用戶訪問指定的資源

  • User - 由認證系統識別的用戶

  • Group - 由認證系統維護的一組用戶

  • Privilege - 允許訪問對象的指令或規則

  • Role - 一組privilege,用于組合多個訪問規則的模板

  • Authorization models - 定義要受授權規則約束的對象以及允許的操作粒度。例如,在SQL中,對象可以是數據庫或表,操作是SELECT,INSERT和CREATE。在Solr中,對象是indexes,configs,collections和documents;訪問模式包括query和update。

?

1.3?用戶身份和組映射

?

Sentry依賴底層的身份認證系統,比如Kerberos或LDAP來識別用戶。它還使用Hadoop中配置的組映射(group mapping)機制來確保Sentry看到與Hadoop生態系統的其他組件相同的組映射(group mapping)。

?

假設有一個組織機構,用戶Alice和Bob屬于名為finance-department的Active Directory(AD)組。Bob同時也屬于一個名為finance-managers的組。在Sentry中,首先創建角色,然后為這些角色授予權限。例如,您可以創建一個名為Analyst的角色,并將表Customer和Sales上的SELECT授予此角色。

?

1.4?基于角色的訪問控制

?

基于角色的訪問控制(Role-based access control, RBAC)是一種典型的用于管理企業中大量用戶和數據對象授權的強大機制。經常發生的新數據對象添加或刪除,用戶加入,移動或離開。RBAC可以使這些管理更加容易。我們繼續繼續上章提到的例子,如果新員工Carol加入財務部門,您需要做的就是將她添加到AD中的finance-managers組。這就可以實現Carol訪問Sales和Customer表中的數據。

?

2?Sentry與Hadoop生態系統的集成

?

?

如上圖所示,Apache Sentry可以與多個Hadoop組件一起工作。從本質上講,您擁有存儲授權元數據的Sentry Server,并提供API工具以安全地檢索和修改此元數據。

?

請注意,Sentry Server主要用于管理元數據。實際的授權決策由在Hive或Impala等數據處理應用程序中運行的策略引擎判斷。每個組件都加載Sentry插件,其中包括用于處理Sentry服務的客戶端和用于驗證授權請求的策略引擎。

?

2.1?Hive和Sentry

?

舉一個例子來說明Hive獲取客戶端以特定模式訪問對象的請求。如果Bob提交以下Hive查詢:

?

select?*?from?production.sales

?

Hive將識別用戶Bob正在請求對Sales表的SELECT訪問。此時,Hive將要求Sentry插件驗證Bob的訪問請求。該插件將檢索Bob與Sales表相關的權限,策略引擎將確定該請求是否有效。

?

?

Sentry服務和策略文件都可以管理Hive權限。Cloudera建議您使用Sentry服務,這樣可以更輕松地管理用戶權限。

?

2.2?Impala和Sentry

?

Impala中的授權處理與Hive中的授權處理類似。主要區別在于權限的緩存。Impala的Catalog服務管理緩存schema元數據并將其傳播到所有Impala Daemon節點。此Catalog服務也緩存Sentry元數據。因此,Impala的授權在本地就可以實現,速度更快。

?

?

2.3?Sentry-HDFS同步

?

Sentry-HDFS授權主要針對Hive倉庫數據 - 也即Hive或Impala中表的數據。Sentry與HDFS的集成的真正目標是將相同的授權檢查擴展到從任何其他組件(如Pig,MapReduce或Spark)訪問Hive倉庫數據?;谶@一點可以利用HDFS已有的ACL功能,但與Sentry無關的表將保留其舊ACL。

?

?

Sentry權限與HDFS ACL的映射關系如下:

  • SELECT -> 文件的Read權限

  • INSERT -> 文件的Write權限

  • ALL -> 文件的Read和Write權限

?

NameNode會加載一個Sentry插件,用于緩存Sentry權限以及Hive元數據。這有助于HDFS保持文件權限和Hive表權限同步。Sentry插件定期輪詢Sentry以保持元數據更改同步。

?

例如,如果Bob運行從Sales表讀取數據文件的Pig作業,Pig將嘗試從HDFS獲取文件句柄。此時,NameNode上的Sentry插件將確定該文件是Hive數據的一部分,并在文件ACL之上覆蓋Sentry權限。因此,跟Hive執行SQL一樣,HDFS會為該Pig客戶端強制實施相同的權限檢查。

?

2.4?Solr和Sentry

?

Sentry可以對各種Solr任務實施權限管控,包括訪問數據和創建collection。無論用戶嘗試執行何種操作,Sentry都會進行權限管控。例如,不管查詢是來自命令行,瀏覽器還是管理控制臺,都會對collection中的數據進行相同的權限檢查。

?

Sentry對Solr的權限控制信息可以保存到Sentry服務的數據庫中,也可以以策略文件形式保存,該文件存儲在HDFS中,比如:hdfs://ha-nn-uri/user/solr/sentry/sentry-provider.ini。

?

? ? Solr集成Sentry不支持為多個服務配置同一個策略文件。如果選擇使用策略文件而不是Sentry服務的數據庫,則必須為每個啟用Sentry的服務使用單獨的策略文件。比如,如果Hive和Solr都使用策略文件授權,如果你把這2個服務的授權放到同一個策略文件中,將導致配置無效并且兩個服務商的授權失敗。

?

Sentry服務和策略文件都可以管理Solr權限。Cloudera建議您使用Sentry服務,這樣可以更輕松地管理用戶權限。

?

2.5?授權管理

?

Sentry Server支持API以安全地操縱角色和權限。Hive和Impala都支持SQL語句管理權限。Sentry會認為運行HiveServer2和Impala服務的用戶為超級管理員,通常為hive和impala。如果要管理權限,必須使用超級管理員登錄Sentry。您可以使用Beeline或Impala shell來執行以下示例語句:

?

GRANT?ROLE?Analyst?TO?GROUP?finance_managers

?

2.5.1?禁用Hive CLI

?

要執行Hive查詢,您必須使用Beeline。Sentry不支持Hive CLI,因此必須禁用其對Hive Metastore的訪問權限。如果Hive Metastore中有敏感數據,尤其需要注意這一點。因此需要在Cloudera Manager配置Hive服務的Hive Metastore Access Control and Proxy User Groups Override屬性。例如,讓hive用戶僅模擬hive和hue組成員的權限,請將該屬性設置為:hive,hue。

?

2.5.2?使用Hue管理Sentry權限

?

Hue中有一個安全模塊可以提供界面化管理Sentry授權。這允許用戶瀏覽和更改表權限。

?

參考:

https://www.cloudera.com/documentation/enterprise/latest/topics/sg_sentry_overview.html#sentry_overview

總結

以上是生活随笔為你收集整理的什么是 Apache Sentry , Apache Sentry 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。