Ozone 访问控制列表

    Ozone 的 ACL 是 Posix ACL 和 S3 ACL 的超集。

    对象 可选的值包括:

    1. - 一个 Ozone 卷,比如 /volume
    2. - 一个 Ozone 桶,比如 /volume/bucket
    3. - 一个对象键,比如 /volume/bucket/key
    4. 前缀 - 某个键的路径前缀,比如 /volume/bucket/prefix1/prefix2
    1. 用户 - 一个 Kerberos 用户,和 Posix 用户一样,用户可以是已创建的也可以是未创建的。
    2. 所有人 - 所有通过 Kerberos 认证的用户,这对应 Posix 标准中的其它用户。
    3. 匿名 - 完全忽略用户字段,这是对 Posix 语义的扩展,使用 S3 协议时会用到,用于表达无法获取用户的身份或者不在乎用户的身份。

    S3 用户通过 AWS v4 签名协议访问 Ozone 时,OM 会将其转化为对应的 Kerberos 用户。

    1. 创建 – 此 ACL 为用户赋予在卷中创建桶,或者在桶中创建键的权限。请注意:在 Ozone 中,只有管理员可以创建卷。
    2. 列举 – 此 ACL 允许用户列举桶和键,因为列举的是子对象,所以这种 ACL 要绑定在卷和桶上。请注意:只有卷的属主和管理员可以对卷执行列举操作。
    3. 删除 – 允许用户删除卷、桶或键。
    4. 读取 – 允许用户读取卷和桶的元数据,以及读取键的数据流和元数据。
    5. 读 ACL – 允许用户读取某个对象的 ACL。
    6. 写 ACL – 允许用户修改某个对象的 ACL。

    ACL 可以通过 Ozone 提供的一系列 API 进行操作,支持的 API 包括:

    1. SetAcl – 此 API 的参数为用户主体、Ozone 对象名称、Ozone 对象的类型和 ACL 列表。
    2. GetAcl – 此 API 的参数为 Ozone 对象名称和 Ozone 对象类型,返回值为 ACL 列表。
    3. AddAcl - 此 API 的参数为 Ozone 对象名称、Ozone 对象类型和待添加的 ACL,新的 ACL 会被添加到该 Ozone 对象的 ACL 条目中。
    4. RemoveAcl - 此 API 的参数为 Ozone 对象名称、Ozone 对象类型和待删除的 ACL。