Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions hadoop-hdds/docs/content/security/SecurityAcls.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,16 @@ $ ozone sh bucket removeacl -a user:testuser:r[DEFAULT] /vol1/bucket2
ACL user:testuser:r[DEFAULT] removed successfully.
```

## Differences Between Ozone ACL and S3 ACL

Ozone ACLs and S3 ACLs differ primarily in their scope and support.

- **S3 ACLs**: Currently, only S3 Bucket ACL is implemented in Ozone (a beta feature). S3 Object ACL is not yet implemented. Any `PutObjectAcl` request will result in a `501: Not Implemented` response code.
- **Ozone ACLs**: Ozone ACLs provide a more comprehensive and flexible access control mechanism. They are designed to work seamlessly with Ozone's native architecture and support various rights and scopes as mentioned above.

## Ozone File System ACL API

- ACL-related APIs in Ozone file system implementation (`ofs` and `o3fs`), such as `getAclStatus`, `setAcl`, `modifyAclEntries`, `removeAclEntries`, `removeDefaultAcl`, and `removeAcl` are not supported. These operations will throw an UnsupportedOperationException.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC, currently it will return some instantly created ACL, instead of UnsupportedOperationException.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which one? https://github.com/apache/ozone/pull/8458/files
i added tests to confirm all throw UnsupportedOperationException.
the test doesn't include getAclStatus() but from a quick look at BasicRootedOzoneFileSystem, it doesn't look like it's implemented, and the default FileSystem.getAclStatus() throws UnsupportedOperationException

- Similarly, HttpFS ACL-related APIs.

These limitations should be taken into account when integrating Ozone with applications that rely on S3 or file system ACL operations.