@@ -175,3 +175,54 @@ Ozone ACLs and S3 ACLs differ primarily in their scope and support.
175175- Similarly, HttpFS ACL-related APIs.
176176
177177These limitations should be taken into account when integrating Ozone with applications that rely on S3 or file system ACL operations.
178+
179+ ## Permission comparison table
180+
181+ The table below shows the mapping between Ozone operations and the required Native ACL permissions.
182+
183+ `<admin>`: for native ACL, all access is granted for all operations
184+
185+ `<owner>`: for native ACL, owner of volume / bucket have all access to further hierarchy
186+
187+ ### Volume related operation
188+
189+ | `Operation` | `Volume permission` | `Bucket permission` | `Key permission` |
190+ |--------------------------|---------------------|---------------------|------------------|
191+ | `Create volume` | `<admin>` | | |
192+ | `List volume` | `<admin>, <configuration: listall>` | | |
193+ | `Get volume info` | `READ, <admin>, <owner>` | | |
194+ | `Delete volume` | `DELETE, <admin>, <owner>` | | |
195+ | `Set Quota` | `WRITE, <admin>, <owner>` | | |
196+ | `Set Owner` | `WRITE_ACL, <admin>, <owner>` | | |
197+ | `Create Tenant (and volume)` | `CREATE, <admin>, <owner>` | | |
198+ | `Delete Tenant` | `WRITE_ACL, <admin>, <owner>` | | |
199+ | `Read ACL` | `READ_ACL, <admin>, <owner>` | | |
200+ | `Write ACL` | `WRITE_ACL, <admin>, <owner>` | | |
201+
202+ ### Bucket related operation
203+
204+ | `Operation` | `Volume permission` | `Bucket permission` | `Key permission` |
205+ |--------------------------|---------------------|---------------------|------------------|
206+ | `Create bucket` | `WRITE, <admin>, <owner>` | | |
207+ | `List bucket` | `LIST, <admin>, <owner>` | | |
208+ | `Get bucket info` | `READ, <admin>, <owner>` | `READ, <admin>, <owner>` | |
209+ | `Delete bucket` | `READ, <admin>, <owner>` | `DELETE, <admin>, <owner>` | |
210+ | `Update bucket property (quota, replication, ...)` | `READ` | `<admin>, <owner>` | |
211+ | `List Snapshot` | `READ, <admin>, <owner>` | `LIST, <admin>, <owner>` | |
212+ | `List Trash` | `READ, <admin>, <owner>` | `LIST, <admin>, <owner>` | |
213+ | `Trash Recover` | `READ, <admin>, <owner>` | `WRITE, <admin>, <owner>` | |
214+ | `Set Owner` | `READ, <admin>, <owner>` | `WRITE_ACL, <admin>, <owner>` | |
215+ | `Read ACL` | `READ, <admin>, <owner>` | `READ_ACL, <admin>, <owner>` | |
216+ | `Write ACL` | `READ, <admin>, <owner>` | `WRITE_ACL, <admin>, <owner>` | |
217+
218+ ### FSO / OBS related operation for key and files
219+
220+ | `Operation` | `Volume permission` | `Bucket permission` | `Key permission` |
221+ |--------------------------|---------------------|---------------------|------------------|
222+ | `List key` | `READ, <admin>, <owner>` | `LIST, READ, <admin>, <owner>` | |
223+ | `Write key` | `READ, <admin>, <owner>` | `WRITE, <admin>, <owner>` | `CREATE, WRITE, <admin>` |
224+ | `Delete key` | `READ, <admin>, <owner>` | `READ, <admin>, <owner>` | `DELETE (*recursive check all child), <admin>` |
225+ | `Read key` | `READ, <admin>, <owner>` | `READ, <admin>, <owner>` | `READ, <admin>, <owner>` |
226+ | `Read ACL` | `READ, <admin>, <owner>` | `READ, <admin>, <owner>` | `READ_ACL, <admin>, <owner>` |
227+ | `Write ACL` | `READ, <admin>, <owner>` | `READ, <admin>, <owner>` | `WRITE_ACL, <admin>, <owner>` | |
228+
0 commit comments