このトピックでは、S3プロトコル互換性での権限の管理方法について説明します。
バケットの権限
S3プロトコル互換性機能は、バケットに対してREAD、WRITE、TRASH、ADMIN、およびSYSTEMの5つの権限をサポートしています。ADMIN権限はSYSTEM権限と同等です。
バケットの権限は、lfsdata 名前空間のバケットと同じ名前のテーブルによって定義されます。たとえば、testbucketという名前のバケットへの書き込み権限は、lfsdata 名前空間のtestbucketという名前のテーブルのWRITE権限と同じです。したがって、バケットを作成する前に、lfsdata 名前空間への書き込み権限を持っている必要があります。
次の表に、バケットの5つの権限と、各権限でサポートされている操作を示します。
権限 | 説明 | サポートされている操作 |
WRITE | バケットへの書き込み権限 | putObject、multipartUpload、setTagging、setLifecycleなど、バケットへの書き込み操作。 |
READ | バケットへの読み取り権限 | listObjects、getObject、headBucket、setTagging、getLifecycleなど、バケットへの読み取り操作。 |
TRASH | バケットへの削除権限 | deleteObject、deleteTagging、deleteLifecycleなど、バケットへの削除操作。 |
ADMIN | バケットへの完全な権限 | WRITE、READ、およびTRASH権限でサポートされているすべての操作。 |
SYSTEM | バケットへの完全な権限 | WRITE、READ、およびTRASH権限でサポートされているすべての操作。 |
バケットの権限の管理
デフォルトでは、LindormTableのルートユーザーは、すべてのバケットに対してADMIN権限とSYSTEM権限を持っています。
新しく作成されたユーザーは、バケットに対する権限を持っていません。ユーザーに権限を手動で付与する必要があります。
次のいずれかの方法を使用して、バケットの権限を管理できます。
方法 1:LindormTableのクラスタ管理システムで特定のユーザーに権限を付与します。この方法は、名前空間内のすべてのバケットに対する権限など、名前空間レベルまたはグローバルレベルの権限をユーザーに付与する場合にのみ使用できます。たとえば、この方法を使用して、user1にnamespace1に対するREAD権限を付与できます。この場合、user1はnamespace1内のすべてのバケットに対するREAD権限を持ちます。詳細については、「ユーザーの管理」の「ユーザーへの権限の付与」セクションをご参照ください。
重要Lindormのクラスタ管理システムで権限を付与する場合は、[名前空間] に
lfsdataを選択する必要があります。方法 2:Lindorm-cliを使用してLindormTableに接続し、GRANTステートメントまたはREVOKEステートメントを使用して、ユーザーに権限を付与したり、ユーザーから権限を取り消したりします。この方法を使用して、バケットに対するテーブルレベル、名前空間レベル、またはグローバルレベルの権限を管理できます。詳細については、「Lindorm-cli を使用して LindormTable に接続して使用する」をご参照ください。
次の例は、GRANTステートメントとREVOKEステートメントを使用してユーザーの権限を管理する方法を示しています。
例 1:user1にtestbucketに対するWRITE権限を付与します。
GRANT WRITE ON TABLE lfsdata.testbucket TO user1; // user1 に testbucket への WRITE 権限を付与例 2:user1からtestbucketに対するすべての権限を取り消します。
REVOKE ADMIN ON SCHEMA lfsdata FROM user1; // user1 から lfsdata スキーマの ADMIN 権限を削除
GRANTステートメントとREVOKEステートメントの詳細については、「GRANT」および「REVOKE」をご参照ください。