Ranger tag-based policies
Ranger enables you to create tag-based services and add access policies to those services.
Tag-Based Policies Overview
An important feature of Ranger tag-based authorization is the separation of resource-classification from access-authorization. For example, resources (HDFS file/directory, Hive database/table/column etc.) containing sensitive data such as social security numbers, credit card numbers, or sensitive health care data can be tagged with PII/PCI/PHI – either as the resource enters the Hadoop ecosystem or at a later time. Once a resource is tagged, the authorization for the tag would be automatically enforced, thus eliminating the need to create or update policies for the resource.
Using tag-based policies also enables you to control access to resources across multiple Hadoop components without creating separate services and policies in each component.
Tag details are stored in a tag store. Ranger TagSync can be used to synchronize the tag store with an external metadata service such as Apache Atlas.
Details of tags associated with resources are stored in a tag store. Apache Ranger plugins retrieve the tag details from the tag store for use during policy evaluation. To minimize the performance impact during policy evaluation (in finding tags for resources), Apache Ranger plugins cache the tags and periodically poll the tag store for any changes. When a change is detected, the plugins update the cache. In addition, the plugins store the tag details in a local cache file – just as the policies are stored in a local cache file. On component restart, the plugins will use the tag data from the local cache file if the tag store is not reachable.
Apache Ranger plugins download the tag details from the store managed by Ranger Admin. Ranger Admin persists the tag details in its policy store and provides a REST interface for the plugins to download the tag details.
Ranger Tags can have attributes. Tag attribute values can be used in Ranger tag-based policies to influence the authorization decision.
For example, to deny access to a resource after a specific date:
- Add the EXPIRES_ON tag to the resource.
- Add an
exipry_datetag attribute and set its value to the expiry date.
- Create a Ranger policy for the EXPIRES_ON tag.
- Add a condition in this policy to deny access when the date specified the in
expiry_datetag attribute is later than the current date.
Note that the EXPIRES_ON tag policy is created as the default policy in tag service instances.
Ranger TagSync is used to synchronize the tag store with an external metadata service such as Apache Atlas. TagSync is a daemon process similar to the Ranger UserSync process.
Ranger TagSync receives tag details from Apache Atlas via change notifications. As tags are added to, updated, or deleted from resources in Apache Atlas, Ranger TagSync receives notifications and updates the tag store.