《CDP企业数据云平台从入门到实践》——CDP之数据储存(5) https://developer.aliyun.com/article/1226385?groupCode=ClouderaCDP
2) Ozone 授权
授权是指定对 Ozone 资源的访问权限的过程。用户通过身份验证后,授权使您能够指定用户在 Ozone 集群中可以执行的操作。例如,您可以允许用户读取卷、存储桶和密钥,同时限制他们创建卷。Ozone 支持通过 Apache Ranger 插件或通过本机访问控制列表(ACL)进行授权。
a) 使用 Ozone 原生 ACL 进行授权
Ozone 的原生 ACL 可以独立使用,也可以与 Ozone ACL 插件(例如 Ranger)一起使用。如果启用了 Ranger 授权,则不会评估本机 ACL。
Ozone 的 ACL 是 POSIX ACL 和 S3 ACL 的超集。ACL 的通用格式是对象:角色:权限。对象可选的值包括:
• 卷:一个 Ozone 卷,例如,/volume1。
• 桶:一个 Ozone 桶,例如,/volume1/bucket1。
• 键:一个 Ozone 桶,例如,/volume1/bucket1/key1。
• 前缀:某个键的路径前缀,例如,/volume1/bucket1/prefix1/prefix2。
角色可选的值包括:
• 用户:一个 Kerberos 用户,和 Posix 用户一样,用户可以是已创建的也可以是
未创建的。
• 组:一个 Kerberos 组,和 Posix 组一样,组可以是已创建的也可以是未创建的。
• 所有人:所有通过 Kerberos 认证的用户,这对应 Posix 标准中的其它用户。
• 匿名:完全忽略用户字段,这是对 Posix 语义的扩展,使用 S3 协议时会用到,
用于表达无法获取用户的身份或者不在乎用户的身份。
S3 用户通过 AWS v4 签名协议访问 Ozone 时,OM 会将其转化为对应的 Kerberos 用
户。
权限可选的值包括:
• 创建:此 ACL 为用户赋予在卷中创建桶,或者在桶中创建键的权限。请注意:
在 Ozone 中,只有管理员可以创建卷。
• 列表:此 ACL 允许用户列举桶和键,因为列举的是子对象,所以这种 ACL 要绑
定在卷和桶上。请注意:只有卷的属主和管理员可以对卷执行列举操作。删除:
允许用户删除卷、存储桶或键。
• 读取:允许用户读取卷和存储桶的元数据以及读取键的数据流和元数据。
• 写入:允许用户写入卷和存储桶的元数据,以及重写一个已存在的键。
• 读 ACL:允许用户读取特定对象的 ACL。
• 写 ACL:允许用户修改特定对象的 ACL。
Ozone 原生 ACL API
Ozone 支持一组 API 来修改或操作 ACL。支持的 API 如下:
• SetAcl:接受用户主体、Ozone 对象的名称和类型以及 ACL 列表。
• GetAcl:接受 Ozone 对象的名称和类型并返回相应的 ACL。
• AddAcl:接受 Ozone 对象的名称和类型,以及将其添加到 Ozone 对象的现有ACL 条目的 ACL。
• RemoveAcl:接受 Ozone 对象的名称和类型,以及要删除的 ACL。
b) 使用 Ranger 进行授权
Apache Ranger 提供了一个集中式安全框架,通过用户界面管理访问控制,确保Cloudera Data Platform(CDP)组件的一致策略管理。为了使 Ozone 与 Ranger 一起工作,您可以使用 Cloudera Manager 并启用要使用 Ozone 的 Ranger 服务实例。
如果启用了 Ranger 授权,则将忽略本机 ACL,并考虑通过 Ranger 指定的 ACL。
下表列出了 Ozone 各种操作对应的 Ranger 权限:
3. Ozone 如何管理读取操作
客户端请求与其要读取的密钥对应的块位置。如果客户端具有所需的读取限,
Ozone 管理器(OM)将返回块位置。
以下步骤解释了 Ozone 如何管理读取操作:
• 客户端向 OM 请求与要读取的密钥对应的块位置。
• OM 检查 ACL 以确认客户端是否具有所需的权限,并返回允许客户端从
DataNode 读取数据的块位置和块标记。
• 客户端连接到与返回的块 ID 关联的 DataNode 并读取数据块。
4. Ozone 如何管理写操作
客户端请求来自 Ozone 管理器(OM)的块来写入密钥。OM 返回 Block ID和对应的 DataNodes,供客户端写入数据。
以下步骤解释了 Ozone 如何管理写入操作:
• 客户端向 OM 请求块写入密钥。该请求包括密钥、管道类型和复制计数。
• OM 找到与 SCM 请求匹配的块,并将它们返回给客户端。
• 客户端连接到与返回的块信息关联的 DataNodes 并写入数据。
• 客户端写入数据后,通过发送 commit 请求更新 OM 上的区块信息。
• OM 记录关联的密钥信息。
《CDP企业数据云平台从入门到实践》——CDP之数据储存(7) https://developer.aliyun.com/article/1226375?groupCode=ClouderaCDP