《CDP企业数据云平台从入门到实践》——CDP平台的安全和治理(4) https://developer.aliyun.com/article/1228320?groupCode=ClouderaCDP
5. 访问授权
6) Apache Ranger 提供的安全策略
a) 基于动态标签的安全策略
在企业数据湖中的实体(HDFS、Hive 表、HBase 表等)通过 Atlas 进行 Tag 或分类,在 Ranger 中通过 Atlas 客户端订阅对应主题并获取元数据更新,同时基于 Tag的安全控制(如基于分类、禁令、时间、位置等)设置对应的安全策略。
b) 动态行过滤和列掩码
在下图的示例中,一个跨国银行有来自美国和欧洲的数据,在这个数据平台里有两类用户,分别是美国的分析师组 Joe 和欧洲的 HR 用户组 Ivanna,他们都执行类似的 Select From 语句无任何过滤条件。美国分析师组 Joe 将具有 CC 和国民 ID(SSN)的美国人员的数据视为掩码值,并且 MRN 为无效,而欧洲的 Ivanna 则可以看到未掩码的内容,但受到行过滤策略限制,只能查看仅适用于欧洲人员的数据。
在这个示例中运用了 Ranger 的两类策略:按区域过滤行和列掩码,在列掩码中还包含基于资源的权限控制和基于 Tag 的权限控制,在后面的示例中会进行详细介绍。
7) Apache Ranger 策略评估流程
在授权访问请求时,Apache Ranger 插件会评估适用于被访问资源的 Ranger 策略。下图显示了策略评估流程的详细信息。
a) 寻找标签
Apache Ranger 支持注册上下文增强器的服务,用于将上下文数据更新为访问请求。Ranger 标 签 服务是 基 于 标 签 的策略 功 能的一 部 分,它 添 加 了一个 名 为RangerTagEnricher 的上下文增强器。此上下文丰富器负责为请求的资源查找标签并将标签详细信息添加到请求上下文中。这个上下文丰富器保留可用标签的缓存;在处理访问请求时,它会找到适用于所请求资源的标签,并将标签添加到请求上下文中。context enricher 通过定期轮询 Ranger Admin 来更新缓存。
b) 评估基于标签的策略
一旦找到所请求资源的标签列表,Apache Ranger 策略引擎就会评估适用于这些标签的基于标签的策略。如果这些标签之一的策略导致拒绝,则访问将被拒绝。如果没有拒绝任何标签,并且如果策略允许其中一个标签,则将允许访问。如果没有任何标签的结果,或者没有资源的标签,策略引擎将评估基于资源的策略来做出授权决定。
c) 在条件中使用标签
Apache Ranger 允许在评估授权策略时使用自定义条件。Apache Ranger 策略引擎使各种请求详细信息(例如用户、组、资源和上下文)可用于条件。由增强器添加的请求上下文中的标签可用于条件,可用于影响授权决策。
标签服务实例中的默认策略,EXPIRES_ON 标签,使用这样的条件来检查请求日期是否晚于标签属性 expiry_date 中指定的值。除非在 Atlas 中创建了 EXPIRES_ON标签,否则此默认策略不起作用。
d) Ranger 准入条件
Apache Ranger 访问策略模型由两个主要部分组成:应用策略的资源规范,例如HDFS 文件和目录、Hive 数据库、表和列、HBase 表、列族和列等;以及特定用户和组访问条件的规范。
e) 允许拒绝和排除条件
Apache Ranger 支持以下访问条件:
• 允许
• 从允许中排除
• 拒绝
• 从拒绝中排除
这些访问条件使您能够设置细粒度的访问控制策略。
例如,您可以允许“finance”组中的所有用户访问“finance”数据库,但拒绝“interns”组中的所有用户访问。假设“实习生”组的成员之一“斯科特”需要完成一项需要访问“财务”数据库的任务。在这种情况下,您可以添加一个 Exclude from Deny 条件,允许用户“scott”访问“finance”数据库。下图显示了如何在Apache Ranger 中设置此策略:
f) 准入条件政策评估
Apache Ranger 策略按特定顺序进行评估,以确保可预测的结果(如果没有允许访问的访问策略,授权请求通常会被拒绝)。下图显示了政策评估工作流程:
《CDP企业数据云平台从入门到实践》——CDP平台的安全和治理(6) https://developer.aliyun.com/article/1228316?groupCode=ClouderaCDP