RANGER-5825: Fix HDFS authz optimization on directory rename - review comments addressed
1 file changed
tree: 2e59d923a08c49fdbeb72bb8ea7e3a70fceb4bce
  1. .cursor/
  2. .github/
  3. agents-audit/
  4. agents-common/
  5. agents-cred/
  6. agents-installer/
  7. audit-server/
  8. authz-api/
  9. authz-embedded/
  10. authz-remote/
  11. common-utils/
  12. credentialbuilder/
  13. dev-support/
  14. distro/
  15. docs/
  16. embeddedwebserver/
  17. functional-tests/
  18. hbase-agent/
  19. hdfs-agent/
  20. hive-agent/
  21. intg/
  22. jisql/
  23. kms/
  24. knox-agent/
  25. migration-util/
  26. mkdocs/
  27. pdp/
  28. plugin-atlas/
  29. plugin-elasticsearch/
  30. plugin-kafka/
  31. plugin-kms/
  32. plugin-kudu/
  33. plugin-kylin/
  34. plugin-nestedstructure/
  35. plugin-nifi/
  36. plugin-nifi-registry/
  37. plugin-ozone/
  38. plugin-presto/
  39. plugin-schema-registry/
  40. plugin-solr/
  41. plugin-sqoop/
  42. plugin-trino/
  43. plugin-yarn/
  44. ranger-atlas-plugin-shim/
  45. ranger-authn/
  46. ranger-common-ha/
  47. ranger-elasticsearch-plugin-shim/
  48. ranger-examples/
  49. ranger-hbase-plugin-shim/
  50. ranger-hdfs-plugin-shim/
  51. ranger-hive-plugin-shim/
  52. ranger-kafka-plugin-shim/
  53. ranger-kms-plugin-shim/
  54. ranger-knox-plugin-shim/
  55. ranger-kylin-plugin-shim/
  56. ranger-metrics/
  57. ranger-ozone-plugin-shim/
  58. ranger-plugin-classloader/
  59. ranger-presto-plugin-shim/
  60. ranger-solr-plugin-shim/
  61. ranger-sqoop-plugin-shim/
  62. ranger-storm-plugin-shim/
  63. ranger-tools/
  64. ranger-util/
  65. ranger-yarn-plugin-shim/
  66. security-admin/
  67. storm-agent/
  68. tagsync/
  69. ugsync/
  70. ugsync-util/
  71. unixauthclient/
  72. unixauthnative/
  73. unixauthpam/
  74. unixauthservice/
  75. .asf.yaml
  76. .gitattributes
  77. .gitignore
  78. .travis.yml
  79. AGENTS.md
  80. build_ranger_using_docker.sh
  81. DISCLAIMER.txt
  82. enunciate.xml
  83. LICENSE.txt
  84. NOTICE.txt
  85. pom.xml
  86. ranger_in_docker
  87. README.md
  88. release-build.xml
  89. SECURITY.md
  90. THREAT_MODEL.md
README.md

Apache Ranger

License CI Documentation Docker Pulls PyPI Downloads

Apache Ranger is a framework for centralized, fine-grained authorization and auditing across data and AI platforms. Policies are managed in one place, Ranger Admin, through its web UI or REST API, and are enforced by Ranger plugins inside the protected services, which also record an audit trail of access decisions. Policies can be based on resources, tags or attributes, and can filter rows and mask columns.

Documentation, release notes and downloads: https://ranger.apache.org/

Quick start

Released versions of Ranger Admin are published on Docker Hub as apache/ranger. It runs with a database, apache/ranger-db (PostgreSQL), and an audit store, apache/ranger-solr; the apache/ranger page has the commands to start all three. Then open http://localhost:6080 and log in as admin / rangerR0cks!.

These images are for evaluation and development; they use well-known default passwords.

Plugins

Ranger Admin stores policies; each service enforces them through a Ranger plugin that runs inside it. To protect a service, set up its plugin. The plugin downloads the service's policies from Ranger Admin, authorizes each request locally and sends audit events to the audit store.

ServicePlugin runs inPlugin ships with
Apache PolarisPolaris serverApache Polaris
TrinoTrino coordinatorTrino
Apache Impalaimpalad and catalogdApache Impala
Apache OzoneOzone ManagerApache Ranger
Apache KuduKudu masterApache Kudu
Schema RegistrySchema Registry serverSchema Registry
PrestoPresto coordinatorApache Ranger
ElasticsearchElasticsearch nodesApache Ranger
Apache KylinKylin serverApache Ranger
Apache SqoopSqoop 2 serverApache Ranger
Apache NiFi RegistryNiFi Registry serverApache NiFi
Apache NiFiNiFi nodesApache NiFi
Apache AtlasAtlas serverApache Ranger
Apache KafkaKafka brokersApache Ranger
Apache SolrSolr nodesApache Ranger
Apache Ranger KMSRanger KMS serverApache Ranger
Apache Hadoop YARNResourceManagerApache Ranger
Apache KnoxKnox gatewayApache Ranger
Apache StormNimbusApache Ranger
Apache HBaseHBase Master and RegionServersApache Ranger
Apache HiveHiveServer2Apache Ranger
Apache Hadoop HDFSNameNodeApache Ranger

Plugins that ship with Apache Ranger are released as ranger-<version>-<service>-plugin.tar.gz archives, also written to target/ by a source build; the KMS plugin is part of this repo. The other services ship the plugin themselves and enable it in their own configuration. Applications not listed above can authorize requests with the Ranger authorization API (authz-api), either evaluating policies in process (authz-embedded) or sending each request to the PDP server (authz-remote, available from the 2.9 release onwards).

Build from source

Requirements

  • Linux or macOS
  • JDK 17
  • Apache Maven 3.6.3 or newer
  • Git
  • Python 3, for the Python client tests (not needed with -DskipTests)
  • Docker with Compose v2, only to build or run Ranger in containers

Build

git clone https://github.com/apache/ranger.git
cd ranger
mvn clean install                # full build: unit tests and code checks
mvn clean package -DskipTests    # faster: skips unit tests and code checks

The build writes a ranger-<version>-<component>.tar.gz archive for each service, plugin and tool to target/, for example ranger-<version>-admin.tar.gz.

To build without a local JDK or Maven, use the build container in dev-support/ranger-docker; it writes the archives to dev-support/ranger-docker/dist/.

To work in an IDE, open the root pom.xml as a Maven project. An IntelliJ IDEA code style scheme is in dev-support/RangerCodeScheme-IntelliJ.xml.

Run your build in Docker

dev-support/ranger-docker builds images from these archives and runs Ranger Admin with its database and audit store, the other Ranger services, and services with Ranger plugins enabled, such as Trino, Ozone, Kafka, Hive and HBase. CI uses the same setup. Its README has the steps; like the Docker Hub images, it is meant for development only.

Contributing

Contributions are accepted as GitHub pull requests.

  1. Find or file an issue in the RANGER JIRA project. Discuss larger changes on dev@ranger.apache.org first.
  2. Open a pull request against master titled RANGER-XXXX: <subject> and fill in the template.
  3. Keep CI green. It runs mvn clean verify on JDK 17 (unit tests, checkstyle, PMD, SpotBugs, RAT) and checks that the Docker containers start.

A committer merges the pull request once it is approved. See the contributing guide and the code style guide.

Reporting security issues

Report suspected vulnerabilities privately to security@apache.org, not in JIRA, GitHub or the mailing lists. See SECURITY.md.

Community

License

Apache Ranger is licensed under the Apache License, Version 2.0.