本文介紹如何管理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。