授权模型
Atlas 授权模型
简介
Atlas 是一套可扩展且可伸缩的核心基础治理服务,使企业能够在 Hadoop 环境中有效且高效地满足合规要求,并可与整个企业数据生态系统集成。Apache Atlas 为组织提供开放的元数据管理和治理能力,使其能够构建数据资产目录、对这些资产进行分类和治理,并为数据科学家、分析师和数据治理团队提供围绕这些数据资产的协作能力。
本文档详细介绍了 Apache Atlas 支持的授权模型,用于控制对 Atlas 所管理元数据的访问。
类型访问授权
Apache Atlas 提供了类型系统,允许用户对希望管理的元数据对象进行建模。该模型由称为“类型(type)”的定义组成。Apache Atlas 类型系统支持以下几类类型:
- 实体(Entity)
- 分类(Classification)
- 关系(Relationship)
- 结构体(Struct)
- 枚举(Enum)
该授权模型支持基于类型名称和类型类别,控制哪些用户、用户组可以对类型执行以下操作:
- 创建
- 更新
- 删除
以下是该模型支持的一些访问控制示例:
- 管理员用户可以创建/更新/删除所有类别的类型
- 数据管理员可以创建/更新/删除分类类型
- 医疗健康数据管理员可以创建/更新/删除名称以 “hc” 开头的类型
实体访问授权
实体是实体类型的一个实例,此类实例表示现实世界中的对象——例如 Hive 中的表、HDFS 文件、Kafka 主题。该授权模型支持基于实体类型、实体分类、实体 ID,控制哪些用户、用户组可以对实体执行以下操作:
- 读取
- 创建
- 更新
- 删除
- 读取分类
- 添加分类
- 更新分类
- 移除分类
以下是该模型支持的一些访问控制示例:
- 管理员用户可以对所有类型的实体执行全部实体操作
- 数据管理员可以对所有类型的实体执行除删除之外的全部实体操作
- 数据质量管理员可以添加/更新/移除 DATA_QUALITY 分类
- 特定用户组中的用户可以读取/更新带有 PII 分类或其子分类的实体
- 财务用户可以读取/更新 ID 以 ‘finance’ 开头的实体
管理操作授权
该授权模型支持控制哪些用户、用户组可以执行以下管理操作:
- 导入实体
- 导出实体
拥有上述访问权限的用户可以在无需获得细粒度实体级访问授权的情况下导入/导出实体。
可插拔授权
Apache Atlas 支持可插拔的授权接口,如下所示,使替代实现能够处理授权逻辑。
实现授权接口的类名可通过配置项 atlas.authorizer.impl 注册到 Apache Atlas。当该属性未设置时,Apache Atlas 将使用其默认实现,即 org.apache.atlas.authorize.simple.AtlasSimpleAuthorizer。
package org.apache.atlas.authorize;
public interface AtlasAuthorizer {
void init();
void cleanUp();
boolean isAccessAllowed(AtlasAdminAccessRequest request) throws AtlasAuthorizationException;
boolean isAccessAllowed(AtlasEntityAccessRequest request) throws AtlasAuthorizationException;
boolean isAccessAllowed(AtlasTypeAccessRequest request) throws AtlasAuthorizationException;
}Simple Authorizer
Simple authorizer 是 Apache Atlas 中默认包含的授权器实现。有关将 Apache Atlas 配置为使用 simple authorizer 的详细信息,请参阅 Setting up Atlas to use Simple Authorizer。
Ranger Authorizer
要配置 Apache Atlas 使用 Apache Ranger 提供的授权实现,请在 application.properties 配置文件中加入以下属性:
atlas.authorizer.impl=rangerApache Ranger Authorizer 需要配置文件的支持,例如需要指定 Apache Ranger 管理服务器 URL、包含授权策略的服务名称等。有关更多详情,请参阅为 Atlas 设置 Ranger Authorizer。
None 授权器
除了默认授权器之外,Apache Atlas 还包含一个对所有用户放行所有访问的授权器。该授权器在测试环境和单元测试中非常有用。要使用此授权器,请设置以下配置:
atlas.authorizer.impl=NONE评论
登录后参与评论
KnowForge