为Hadoop数据细粒度的、基于角色的认证功能:Apache Sentry
jopen
10年前
Apache Sentry 是一个高度模块化的系统。它为存储在Apache Hadoop集群中的数据和元数据提供了细粒度的、基于角色的认证功能。
Hadoop生态圈中的项目有着各自不同的、需要单独配置的认证系统。Hadoop的灵活性使得生态圈中不同的项目(如Hive、Solr、 MapReduce,Pig)能访问相同的数据。由于每个项目的认证配置都是独立的,管理员很可能在企图保证策略一致的情况下得到不一致的、相重叠的策略。
Sentry提供了一套集中的策略。这套策略能被应用于许多不同的访问途径。通过这个方法,Sentry解决了这个IT管理和安全上的挑战。因此,IT管理员能够对数据集进行权限设置。并且知道无论通过何种途径访问数据,这些权限控制都会得到一致地执行。
Sentry的技术细节:
Sentry通过一组特权,如SELECT和INSERT,控制着对Hive Metastore中每个schema对象的访问。schema对象是数据管理中常见的实体,例如SERVER、DATABASE、TABLE、 COLUMN和URI,也就是HDFS中文件的位置。Cloudera Search有它自己的一组特权(如QUERY)和对象(如COLLECTION)。
和IT团队已经熟悉的其他RBAC系统一样,Sentry提供了:
- 有层次结构的对象,自动地从上层对象继承权限;
- 包含了一组多个对象/权限对的规则;
- 用户组可以被授予一个或多个角色;
- 用户可以被指定到一个或多个用户组中。
Sentry通常被配制成默认不允许访问服务和数据。因此,在被划分到设有指定访问角色的用户组之前,用户只有有限的权限访问系统。