授权模型
Atlas 授权模型
简介
Atlas 是一套可扩展、可伸缩的核心基础治理服务——使企业能够在 Hadoop 环境中有效且高效地满足合规要求,并可与整个企业数据生态系统集成。Apache Atlas 为组织提供了开放的元数据管理和治理能力,用于构建其数据资产目录、对这些资产进行分类和治理,并为数据科学家、分析师和数据治理团队提供围绕这些数据资产的协作能力。
本文档详细介绍了 Apache Atlas 支持的授权模型,用于控制对 Atlas 所管理元数据的访问。
类型访问授权
Apache Atlas 提供了一个类型系统,允许用户对希望管理的元数据对象进行建模。该模型由称为“类型”的定义组成。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)是 Apache Atlas 默认包含的授权器实现。有关将 Apache Atlas 配置为使用简单授权器的详细信息,请参阅设置 Atlas 以使用简单授权器。
Ranger 授权器
要将 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