S3协议权限管理
本文介绍如何管理S3兼容协议的访问权限。
桶的权限说明
S3兼容协议的访问控制功能支持桶(bucket)级别的权限设置,共有五种权限类型:READ,WRITE,TRASH,ADMIN和SYSTEM,对应桶的读、写、删除和所有权限。其中AMDIN权限等同于SYSTEM权限。
桶的访问权限固定由名为lfsdata
的Namespace控制,桶名即表名。例如,桶testbucket的写权限,等同于表testbucket的WRITE权限,且对应的Namespace为lfsdata
。如需创建桶,则需先获取lfsdata
的Namespace写权限。
桶的权限说明及支持的操作语法如下:
分类 | 描述 | 支持的操作语法 |
WRITE | 桶的写入权限。 | putObject、Multipart上传、setTagging、setLifecycle等。 |
READ | 桶的读取权限。 | listObjects、getObject、headBucket、setTagging、getLifecycle等。 |
TRASH | 桶的删除权限。 | deleteObject、deleteTagging、deleteLifecycle等。 |
ADMIN | 桶的所有权限。 | 支持WRITE、READ和TRASH的所有语法。 |
SYSTEM | 桶的所有权限。 | 支持WRITE、READ和TRASH的所有语法。 |
管理桶的访问权限
宽表引擎的root用户默认具有所有桶的ADMIN和SYSTEM权限。
新创建的用户默认无访问权限,需要手动添加权限。
您可以通过以下两种方式管理桶的访问权限:
方式一:通过集群管理系统,为指定用户添加权限。该方式仅支持Namespace及以上级别的访问控制,控制用户对所有桶的权限。例如,为用户user1添加命名空间namespace1的READ权限,则该用户将拥有namespace1下所有桶的读取权限。如何添加权限,请参见为指定用户添加权限。
重要在集群管理系统中为指定用户添加命名空间权限时,namespace必须选择
lfsdata
。方式二:通过Lindorm-cli连接宽表引擎并使用GRANT和REVOKE命令添加或收回指定用户的权限。该方式支持Table及以上级别的访问控制,控制用户对桶的访问权限。如何连接宽表引擎,请参见通过Lindorm-cli连接并使用宽表引擎。
GRANT和REVOKE命令的使用示例如下:
示例一:为用户user1添加桶testbucket的写权限。
GRANT WRITE ON TABLE lfsdata.testbucket TO user1;
示例二:回收用户user1所有桶的管理权限。
REVOKE ADMIN ON SCHEMA lfsdata FROM user1;
GRANT和REVOKE命令的更多说明,请参见GRANT PRIVILEGE和REVOKE PRIVILEGE。