首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >0919-Apache Ozone安全架构

0919-Apache Ozone安全架构

作者头像
Fayson
发布于 2024-04-30 11:47:52
发布于 2024-04-30 11:47:52
5801
举报
文章被收录于专栏:Hadoop实操Hadoop实操

1 Ozone认证

身份认证是 Ozone 组件识别用户身份的过程,Apache Ozone支持使用Kerberos和security tokens的强身份认证。

1.1 基于 Kerberos 的身份认证

Ozone 依靠 Kerberos 来保证集群的安全,要在 Ozone 集群中启用安全,必须设置以下参数:

Property

Value

ozone.security.enabled

TRUE

hadoop.security.authentication

kerberos

下图说明了服务组件,例如 Ozone Manager (OM)、Storage Container Manager (SCM)、DataNode 和 Ozone Client,如何通过 Kerberos 相互进行身份认证:

每个服务都必须配置有效的 Kerberos Principal Name和相应的keytab文件,服务使用该文件在服务启动时以安全模式登录。 相应地,Ozone 客户端必须提供有效的 Kerberos ticket或security token才能访问 Ozone 服务,例如访问OM中的元数据或者读写DataNode中的block。

1.2 Security tokens

由于 Ozone 每秒处理数千个请求,每次通过 Kerberos 进行身份认证可能会造成负载过重且效率低下。 因此一旦身份认证完成,Ozone 就会向用户或客户端应用程序发出delegation和block token,以便他们可以对集群执行指定的操作,就好像他们拥有有效的 kerberos ticket一样。

当 OM 收到来自客户端的带有delegation token的请求时,它会通过使用其公钥检查签名来验证令牌。delegation token可以转移到其他客户端进程。 当令牌过期时,原始客户端必须请求新的delegation token,然后将其传递给其他客户端进程。delegation token操作:例如获取、更新和取消,只能通过 Kerberos 身份认证的连接执行。

1.3 Block token

Block token和delegation token类似,它们都是由OM发行/签名的。block token允许用户或客户端应用程序读取或写入 DataNode 中的block,与通过获取、更新或取消API请求的delegation token不同,block token透明地向客户端提供有关key或block位置的信息。当 DataNode 收到来自客户端的读/写请求时,DataNode 使用颁发者 (OM) 的证书或公钥来验证block token。客户端无法更新block token,当block token过期时,客户端必须检索key/block位置以获取新的block token。

1.4 S3 token

Ozone 通过 Ozone S3 Gateway支持 Amazon S3 协议。在安全模式下,OM 向经过 Kerberos 身份验证的用户或使用 S3 API 访问 Ozone 的客户端应用程序颁发 S3 secret key。可以将access key ID secret添加到 Ozone 的 AWS 配置文件中,以确保特定用户或客户端应用程序可以访问 Ozone bucket。S3 token由 Amazon S3 客户端创建的 S3 secret keys进行签名,Ozone S3 gateway为每个 S3 客户端请求创建token。用户必须拥有 S3 secret key才能创建 S3 token,与block token类似,S3 token对客户端来说是透明处理的。

1.5 Ozone 安全令牌如何工作

Ozone的安全使用基于证书的方法来验证安全令牌,这使得令牌更加安全,因为共享密钥永远不会通过网络传输。下图说明了 Ozone 安全令牌的工作原理:

在安全模式下,SCM 将自身引导为证书颁发机构 (certifying authority,CA),并创建自签名 CA 证书,OM 和 DataNode 必须通过证书签名请求 (Certificate Signing Request,CSR) 向 SCM CA 注册。SCM通过Kerberos验证OM和DataNode的身份并签署组件的证书,然后OM 和 DataNode 使用签名的证书来证明其身份,这对签名和验证delegation或block token。

对于block token,OM(token issuer,令牌发行者)使用其私钥对令牌进行签名,并且 DataNode(token validator,令牌验证者)使用 OM 的证书来验证block token,因为 OM 和 DataNode 信任 SCM CA 签名的证书。

对于delegation token,当 OM(既是令牌颁发者又是令牌验证者)在高可用性 (HA) 模式下运行时,有多个 OM 实例同时运行。当leader OM实例发生变化时,OM instance 2可以验证OM instance 1颁发和签名的delegation token,因为这两个实例都信任 SCM CA 签名的证书。

1.6 高可用SCM中基于证书的身份验证

Ozone的服务例如Storage Container Manager(SCM)、Ozone Manager (OM) 和 DataNodes之间的身份验证是使用证书实现的,并确保 Ozone 集群中的安全通信。 证书由 SCM 在安装过程中颁发给其他服务。下图说明了 SCM 如何向其他 Ozone 服务颁发证书:

HA环境中的primordial SCM使用自签名证书启动根证书颁发机构 (Certificate Authority,CA),primordial SCM 向其自身以及其他bootstrapped SCM 颁发签名证书。primordial SCM 还有一个subordinate CA,具有来root CA 的签名证书。当 SCM 引导时(bootstrapped),它会从primordial SCM 接收签名证书并启动其自己的从属(subordinate) CA。 成为leader的任何 SCM 的从属 CA 都会向 Ozone 集群中的 Ozone Manager和 DataNode 颁发签名证书。

2 Ozone授权

授权是指定对Ozone资源的访问权限的过程,用户通过身份验证后,授权能够指定用户可以在 Ozone 集群中执行哪些操作。 例如,允许用户读取卷、存储桶和key,同时限制他们创建卷。Ozone 支持通过 Apache Ranger 插件或原生的访问控制列表 (ACL) 进行授权。

2.1 使用 Ozone 原生 ACL 进行授权

Ozone 的原生ACL 可以独立使用,也可以与 Ozone ACL 插件(例如 Ranger)一起使用。 如果启用 Ranger 授权,则不会校验原生 ACL。Ozone原生ACL 是 POSIX 和 S3 的超集,ACL 的格式为object:who:rights

1.object,在 ACL 中,对象可以是以下内容:

  • • Volume - 一个Ozone卷,例如/volume1。
  • • Bucket - 一个Ozone桶,例如/volume1/bucket1。
  • • Key - 一个对象键或对象,例如/volume1/bucket1/key1。
  • • Prefix - 特定键的路径前缀,例如/volume1/bucket1/prefix1/prefix2。

2.who,在ACL中,who可以是以下内容:

  • • User - Kerberos 域中的用户,用户可以是已命名的,也可以是未命名的。
  • • Group - Kerberos 域中的组,该组可以已命名或未命名。
  • • World - Kerberos 域中所有经过身份验证的用户,这映射到 POSIX 域中的others。
  • • Anonymous - 表示应完全忽略用户字段,S3 协议需要此值来指示匿名用户。
    • • Ozone Manager 使用 AWS v4 签名协议将访问 Ozone 的 S3 用户转换为相应的 Kerberos 用户。

3.rights,在ACL中,right可以是以下内容:

  • • Create - 允许用户在卷中创建存储桶并在存储桶中创建key,只有管理员才能创建卷。
  • • List - 允许用户列出存储桶和密钥,此 ACL 附加到允许列出子对象的卷和存储桶,用户和管理员可以列出用户拥有的卷。
  • • Delete - 允许用户删除卷、存储桶或key。
  • • Read - 允许用户写入卷和存储桶的元数据,并允许用户覆盖现有的ozone key。
  • • Write - Allows a user to write the metadata of a volume and bucket and allows the user to overwrite an existing ozone key.
  • • Read_ACL - 允许用户读取特定对象上的 ACL。
  • • Write_ACL - 允许用户在特定对象上写入 ACL。

4.用于使用 Ozone ACL 的 API,Ozone 支持一组 API 来修改或操作 ACL,支持的API如下:

  • • SetAcl - 接受用户user principal、Ozone 对象的名称和类型以及 ACL 列表。
  • • GetAcl - 接受 Ozone 对象的名称和类型并返回相应的 ACL。
  • • AddAcl - 接受 Ozone 对象的名称和类型以及 ACL,以将其添加到 Ozone 对象的现有 ACL 条目中。
  • • RemoveAcl - 接受 Ozone 对象的名称和类型以及要删除的 ACL。

2.2 使用 Ranger 进行授权

Apache Ranger 提供了一个集中式安全框架,通过用户界面管理访问控制,确保跨 Cloudera Data Platform (CDP) 组件进行一致的策略管理。使用Cloudera Manager可以方便的将Ranger和Ozone集成并使用,如果启用 Ranger 授权,则会忽略原生的ACL。下表列出了各种 Ozone 操作对应的 Ranger 权限:

Operation / Permission

Volume Permission

Bucket Permission

Key Permission

Create Volume

CREATE

List Volume

LIST

Get Volume Info

READ

Delete Volume

DELETE

Create Bucket

READ

CREATE

List Bucket

LIST, READ

Get Bucket Info

READ

READ

Delete Bucket

READ

DELETE

List Key

READ

LIST, READ

Write Key

READ

READ

CREATE, WRITE

Read Key

READ

READ

READ

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
Kerberos 这个具体要怎么做呢,是不是不安装这个,无法开启s3的安全认证服务?
Kerberos 这个具体要怎么做呢,是不是不安装这个,无法开启s3的安全认证服务?
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
0918-Apache Ozone简介
Ozone 是 Hadoop 的分布式对象存储系统,具有易扩展和冗余存储的特点。Ozone 不仅能存储数十亿个不同大小的对象,还支持在容器化环境(比如 Kubernetes)中运行。Apache Spark、Hive 和 YARN 等应用无需任何修改即可使用 Ozone。Ozone 提供了 Java API、S3 接口和命令行接口,极大地方便了 Ozone 在不同应用场景下的使用。
Fayson
2024/04/30
1.4K0
0918-Apache Ozone简介
Ozone安装部署指南
Ozone 的安装和运行有多种方式,支持从简单的本地节点 docker 部署,到大规模多节点的 Kubernetes 或物理集群部署。
从大数据到人工智能
2022/03/30
3.7K0
0920-7.1.9-Apache Ozone命令行简介
Ozone 客户端可以将 Ozone 作为文件系统和key-value存储进行访问,当 Ozone 与 HDFS 依赖项一起安装时,Ozone支持HDFS客户端命令,如hdfs dfs,如果ozone不是defaultfs,需要指定URI路径。
Fayson
2024/04/30
3860
0920-7.1.9-Apache Ozone命令行简介
Ozone社区的领航者:腾讯Ozone EC的方案剖析
[导语] EC(Erasure Coding, 纠删码) 是现代分布式存储系统一个重要的能力。它可以保证在相同数据持久度的基础上大幅提高存储空间利用率,对降低存储成本有极为重要的意义。腾讯大数据存储团队全程参与了 Ozone 社区 EC 的设计与开发,并先于社区在内部完成了 EC offline recovery 的开发和测试。本文主要讲解 EC 在 Ozone 中的设计与实现,并讨论其中的利弊权衡。 0.引言 Apache Ozone 做为 Hadoop 生态的下一代分布式存储系统,是 Hadoop 生态
腾讯大数据
2022/08/26
1.1K0
Ozone社区的领航者:腾讯Ozone EC的方案剖析
Apache Ozone和密集型数据节点
该帖子也是由两名思科员工共同撰写的:Karthik Krishna,Silesh Bijjahalli
大数据杂货铺
2021/04/30
1.5K0
0908-CDP Private Cloud Base 7.1.9正式GA
八月再见,九月你好,今天是九月八日,新学年开始,Cloudera正式发布CDP Base 7.1.9和Cloudera Manager 7.11.3。此版本首次在CDP PvC Base上引入强大的Open Data Lakehouse分析功能,同时它和CDP Base 7.1.7一样,也是一个长期支持版本(long-term release, LTS),EOS的时间为2027年九月。
Fayson
2023/09/20
8260
0908-CDP Private Cloud Base 7.1.9正式GA
向成熟化迈进 - 腾讯Ozone千台能力突破
背景介绍 腾讯目前在HDFS上存储了海量的数据,但HDFS在可扩展性上的缺陷,以及对小文件的不友好,限制了HDFS在许多场景下的应用。 为了寻找能解决这些问题的存储系统,Ozone走入了我们的视野。Ozone是继HDFS的下一代统一数据湖对象存储系统,数据湖是一种在系统或存储库中以自然格式存储数据的方案,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。 HDFS缺陷 Apache Hadoop HDFS从出现到现在经过10多年的发展,已经到了非常成熟的状态,广泛应用于业界,解决海量文件的存储需
腾讯大数据
2020/07/23
2.3K0
0923-7.1.9-使用S3 Gateway访问Ozone
1.要访问不在 /s3v 卷下的已有bucket,我们可以在/s3v卷中创建symlink
Fayson
2024/05/09
4200
0923-7.1.9-使用S3 Gateway访问Ozone
Ozone-适用于各种工作负载的灵活高效的存储系统
Apache Ozone 是一种分布式、可扩展和高性能的对象存储,可与Cloudera 数据平台(CDP) 一起使用,可以扩展到数十亿个不同大小的对象。它被设计为原生的对象存储,可提供极高的规模、性能和可靠性,以使用 S3 API 或传统的 Hadoop API 处理多个分析工作负载。
大数据杂货铺
2022/12/02
2.9K0
Ozone-适用于各种工作负载的灵活高效的存储系统
0891-CDP Private Cloud Base 7.1.8正式GA
八月再见,九月你好,今天是九月一日,新学年开始,Cloudera正式发布CDP Base 7.1.8和Cloudera Manager 7.7.1。这个版本引入了诸多新功能,比如通过EC提升Ozone的存储效率,Cloudera Manager的HA,多NameNode支持,全面支持Impala4.0,Hive性能提升,HDFS/Schema Registry血缘功能的增强,改进Ranger RMS,以及实时平台的全面增强。 1.平台支持增强 1.新的操作系统支持 CDP Private Cloud Ba
Fayson
2022/09/02
1.1K1
告别裸奔,聊聊主流消息队列的认证和鉴权!
我们在使用消息队列时,经常关注的是消息队列收发消息的功能。但好多时候需要对客户端有一定的限制,比如只有持有令牌的客户端才能访问集权,不允许 Producer 发送消息到某一个 Topic,或者某一个 Topic 只能给固定 Consumer 消费。
jinjunzhu
2024/05/30
3650
告别裸奔,聊聊主流消息队列的认证和鉴权!
CDP的安全参考架构概要
本篇博客将总结 CDP 私有云基础(PvC Base)集群的安全架构。该架构反映了安全工程最佳实践的四大支柱:边界、数据、访问和可见性。CDP PvC Base的发布对安全架构进行了许多重大改进,包括:
大数据杂货铺
2022/03/29
1.6K0
CDP的安全参考架构概要
Kerberos基本概念及原理汇总
强大的身份验证和建立用户身份是Hadoop安全访问的基础。用户需要能够可靠地“识别”自己,然后在整个Hadoop集群中传播该身份。完成此操作后,这些用户可以访问资源(例如文件或目录)或与集群交互(如运行MapReduce作业)。除了用户之外,Hadoop集群资源本身(例如主机和服务)需要相互进行身份验证,以避免潜在的恶意系统或守护程序“冒充”受信任的集群组件来获取数据访问权限。
create17
2019/01/06
12.7K0
Kerberos基本概念及原理汇总
配置客户端以安全连接到Apache Kafka集群4:TLS客户端身份验证
在本系列的前几篇文章中,我们讨论了Kafka的Kerberos,LDAP和PAM身份验证。在这篇文章中,我们将研究如何配置Kafka集群和客户端以使用TLS客户端身份验证。
大数据杂货铺
2021/03/09
4.3K0
kubernetes API 访问控制之:认证
可以使用kubectl、客户端库方式对REST API的访问,Kubernetes的普通账户和Service帐户都可以实现授权访问API。API的请求会经过多个阶段的访问控制才会被接受处理,其中包含认证、授权以及准入控制(Admission Control)等。如下图所示:
看、未来
2022/06/05
7.8K0
kubernetes API 访问控制之:认证
Hadoop 对象存储 Ozone
Apache Hadoop 项目至今已经有十多年的历史了,作为大数据的基石,自从投放之社区之后就引来了不少的眼球,进而也孕育出了众多的Apache项目,例如HBase,Hive , Spark 等等这些优秀的数据存储和处理等项目,从而构造成了一个庞大的生态圈。参考了世界级标准的,也就是 Hadoop的HDFS,一直在跟IEEE的POSIX文件系统API标准靠拢,因此我觉得,HDFS是长久的,因为它的API足够的标准化。API足够的标准化也就意味着照着实现的东西考虑的是很全面的。但是这并不代表HDFS本身的设计不存在问题或缺陷。
Fayson
2019/10/31
6.3K0
Hadoop 对象存储 Ozone
0589-Cloudera Manager6.2的新功能
虚拟私有集群(Virtual Private Cluster)使用Cloudera共享数据体验(Shared Data Experience,SDX)来简化on-premise和on-cloud的应用程序的部署,并使运行在不同集群中的工作负载能够安全,灵活地共享数据。
Fayson
2019/04/28
2.2K0
Hadoop Ozone如何巧妙利用Multi-Raft机制优化数据节点吞吐量
背景 作为近期Hadoop社区的明星项目,Hadoop Ozone吸引了社区广泛的关注。它脱胎于HDFS,不仅同时支持文件系统和对象语义,能原生对接HDFS和S3两种访问模式,也将集群的读写性能和吞吐量视为重中之重。2019年年中,腾讯大数据团队开始上线Ozone集群承接大数据存储业务,数据湖小组也全力投入了Hadoop Ozone的开源项目中。在与Hadoop Ozone社区和Cloudera深度合作后,数据湖小组凭借在开源界多年的深耕和数据平台的业务对接实战经验,逐渐发现Ozone写入性能显现出了一定
腾讯大数据
2020/07/14
1.3K0
从场景学习常用算法
摘要算法:通过输入任意长度内容柔和而产生固定长度的伪随机输出内容的算法,它主要 的作用是用来验证数据的完整性
醉酒鞭名马
2020/07/05
2.5K0
从场景学习常用算法
大数据权限与安全
权限的管控,历来是大数据平台中最让人头疼的问题之一。管得严了,业务不流畅,用户不开心,放得宽了,安全没有底,你能放心?而且大数据平台组件,服务众多;架构,流程复杂,有时候,就是你想管,也未必能管得起来。
sparkle123
2018/12/05
3.6K0
相关推荐
0918-Apache Ozone简介
更多 >
LV.1
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档