[Improvement] [authz] Implement Ranger URL Policy, support read/write permission control of cloud storage paths
- Dominant language
- Scala
- Stars
- 2.4k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
### Search before asking
- [X] I have searched in the [issues](https://github.com/apache/incubator-kyuubi/issues?q=is%3Aissue) and found no similar issues.
### What would you like to be improved?
Specify the cloud storage path (for example s3a://dev-admin/demo/) where the end-user permission is needed to read/write the Hive data from/to a cloud storage path.
Permissions:
- READ operation on the URL permits the user to perform SparkSQL operations which use S3 as data source for Hive tables.
- WRITE operation on the URL permits the user to perform SparkSQL operations which write data to the specified S3 location.

ref: https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.1/authorization-ranger/content/resource_policy_create_a_hive_policy.html
### How should we improve?
Get the locations of the DDL or Insert operation, construct the URL Privilege, and use the ranger interface for verify
### Are you willing to submit PR?
- [X] Yes. I can submit a PR independently to improve.
- [ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to improve.
- [ ] No. I cannot submit a PR at this time.
Contributor guide
Research direction
Start by tracing how DDL and INSERT operations expose their cloud storage locations, then review the referenced Ranger Hive policy documentation and the Ranger interface. The work is done when URL privileges are constructed for those locations and READ or WRITE access is verified for the corresponding SparkSQL operations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- authorization, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100