- Platform Release 6.5
- Privacera Platform Release 6.5
- Enhancements and updates in Privacera Access Management 6.5 release
- Enhancements and updates in Privacera Discovery 6.5 release
- Enhancements and updates in Privacera Encryption 6.5 release
- Deprecation of older version of PolicySync
- Upgrade Prerequisites
- Supported versions of third-party systems
- Documentation changelog
- Known Issues 6.5
- Platform - Supported Versions of Third-Party Systems
- Platform Support Policy and End-of-Support Dates
- Privacera Platform Release 6.5
- Privacera Platform Installation
- About Privacera Manager (PM)
- Install overview
- Prerequisites
- Installation
- Default services configuration
- Component services configurations
- Access Management
- Data Server
- UserSync
- Privacera Plugin
- Databricks
- Spark standalone
- Spark on EKS
- Portal SSO with PingFederate
- Trino Open Source
- Dremio
- AWS EMR
- AWS EMR with Native Apache Ranger
- GCP Dataproc
- Starburst Enterprise
- Privacera services (Data Assets)
- Audit Fluentd
- Grafana
- Ranger Tagsync
- Discovery
- Encryption & Masking
- Privacera Encryption Gateway (PEG) and Cryptography with Ranger KMS
- AWS S3 bucket encryption
- Ranger KMS
- AuthZ / AuthN
- Security
- Access Management
- Reference - Custom Properties
- Validation
- Additional Privacera Manager configurations
- Upgrade Privacera Manager
- Troubleshooting
- How to validate installation
- Possible Errors and Solutions in Privacera Manager
- Unable to Connect to Docker
- Terminate Installation
- 6.5 Platform Installation fails with invalid apiVersion
- Ansible Kubernetes Module does not load
- Unable to connect to Kubernetes Cluster
- Common Errors/Warnings in YAML Config Files
- Delete old unused Privacera Docker images
- Unable to debug error for an Ansible task
- Unable to upgrade from 4.x to 5.x or 6.x due to Zookeeper snapshot issue
- Storage issue in Privacera UserSync & PolicySync
- Permission Denied Errors in PM Docker Installation
- Unable to initialize the Discovery Kubernetes pod
- Portal service
- Grafana service
- Audit server
- Audit Fluentd
- Privacera Plugin
- How-to
- Appendix
- AWS topics
- AWS CLI
- AWS IAM
- Configure S3 for real-time scanning
- Install Docker and Docker compose (AWS-Linux-RHEL)
- AWS S3 MinIO quick setup
- Cross account IAM role for Databricks
- Integrate Privacera services in separate VPC
- Securely access S3 buckets ssing IAM roles
- Multiple AWS account support in Dataserver using Databricks
- Multiple AWS S3 IAM role support in Dataserver
- Azure topics
- GCP topics
- Kubernetes
- Microsoft SQL topics
- Snowflake configuration for PolicySync
- Create Azure resources
- Databricks
- Spark Plug-in
- Azure key vault
- Add custom properties
- Migrate Ranger KMS master key
- IAM policy for AWS controller
- Customize topic and table names
- Configure SSL for Privacera
- Configure Real-time scan across projects in GCP
- Upload custom SSL certificates
- Deployment size
- Service-level system properties
- PrestoSQL standalone installation
- AWS topics
- Privacera Platform User Guide
- Introduction to Privacera Platform
- Settings
- Data inventory
- Token generator
- System configuration
- Diagnostics
- Notifications
- How-to
- Privacera Discovery User Guide
- What is Discovery?
- Discovery Dashboard
- Scan Techniques
- Processing order of scan techniques
- Add and scan resources in a data source
- Start or cancel a scan
- Tags
- Dictionaries
- Patterns
- Scan status
- Data zone movement
- Models
- Disallowed Tags policy
- Rules
- Types of rules
- Example rules and classifications
- Create a structured rule
- Create an unstructured rule
- Create a rule mapping
- Export rules and mappings
- Import rules and mappings
- Post-processing in real-time and offline scans
- Enable post-processing
- Example of post-processing rules on tags
- List of structured rules
- Supported scan file formats
- Data Source Scanning
- Data Inventory
- TagSync using Apache Ranger
- Compliance Workflow
- Data zones and workflow policies
- Workflow Policies
- Alerts Dashboard
- Data Zone Dashboard
- Data zone movement
- Workflow policy use case example
- Discovery Health Check
- Reports
- How-to
- Privacera Encryption Guide
- Overview of Privacera Encryption
- Install Privacera Encryption
- Encryption Key Management
- Schemes
- Encryption with PEG REST API
- Privacera Encryption REST API
- PEG API endpoint
- PEG REST API encryption endpoints
- PEG REST API authentication methods on Privacera Platform
- Common PEG REST API fields
- Construct the datalist for the /protect endpoint
- Deconstruct the response from the /unprotect endpoint
- Example data transformation with the /unprotect endpoint and presentation scheme
- Example PEG API endpoints
- /authenticate
- /protect with encryption scheme
- /protect with masking scheme
- /protect with both encryption and masking schemes
- /unprotect without presentation scheme
- /unprotect with presentation scheme
- /unprotect with masking scheme
- REST API response partial success on bulk operations
- Audit details for PEG REST API accesses
- Make encryption API calls on behalf of another user
- Troubleshoot REST API Issues on Privacera Platform
- Privacera Encryption REST API
- Encryption with Databricks, Hive, Streamsets, Trino
- Databricks UDFs for encryption and masking on PrivaceraPlatform
- Hive UDFs for encryption on Privacera Platform
- StreamSets Data Collector (SDC) and Privacera Encryption on Privacera Platform
- Trino UDFs for encryption and masking on Privacera Platform
- Privacera Access Management User Guide
- Privacera Access Management
- How Polices are evaluated
- Resource policies
- Policies overview
- Creating Resource Based Policies
- Configure Policy with Attribute-Based Access Control
- Configuring Policy with Conditional Masking
- Tag Policies
- Entitlement
- Service Explorer
- Users, groups, and roles
- Permissions
- Reports
- Audit
- Security Zone
- Access Control using APIs
- AWS User Guide
- Overview of Privacera on AWS
- Configure policies for AWS services
- Using Athena with data access server
- Using DynamoDB with data access server
- Databricks access manager policy
- Accessing Kinesis with data access server
- Accessing Firehose with Data Access Server
- EMR user guide
- AWS S3 bucket encryption
- Getting started with Minio
- Plugins
- How to Get Support
- Coordinated Vulnerability Disclosure (CVD) Program of Privacera
- Shared Security Model
- Privacera Platform documentation changelog
Configure Policy with Attribute-Based Access Control
Privacera enables use of user, group, resource, classification, and the environment attributes in authorization policies. Attribute-Based Access Control (ABAC) makes it possible to express authorization policies without prior knowledge of specific resources or specific users, which helps avoid the need for new policies as new resources or users are introduced.
For more information, see How access policy enforcement works.
Overview
With the ABAC feature, you can configure resource policies based on user attributes from your LDAP or AD service.
You can assign attributes to users, groups and tags in policies. You can also implement logical conditions on the user attributes for the resource policies.
Attributes can be referenced using expressions, for example:
USER.employeeType != 'intern' TAG.piiType == 'email' TAG.sensitivityLevel <= USER.allowedSensitivityLevel
Attributes can be used to set up access control. For example, they can be used in row-filters, such as:
dept = ${{USER.dept}} state in ( ${{GET_UG_ATTR_Q_CSV('state')}} )
Attributes can also be used in resource names, for example:
path: /home/${{USER._name}} path: /departments/${{USER.dept}} database: dept_${{USER.dept}}p
Ranger service-def update might be required to support conditions in policies. For example:
"policyConditions": [ { "name": "expression", "evaluator": "org.apache.ranger.plugin.conditionevaluator.RangerScriptConditionEvaluator", "label": "Enter boolean expression" } ]
User attributes are typically managed in LDAP, and synced to Privacera.
The Privacera Portal user interface enables you to view and add and update user and group attributes.
This section covers:
Supported connectors for ABAC
How to sync new users from Privacera Ranger through the UI.
How to enable ABAC for a resource policy through the CLI.
How to test ABAC for a resource policy.
Supported connectors for ABAC
ABAC is supported for the following data sources.
Databricks/EMR Hive, Spark, and all services using
privacera_hive
service definitionsPolicySync Snowflake
S3
Note
For Databricks and all Hive-based services, ABAC is supported without any additional configuration. However, ABAC for S3 requires configuration as described in this section.
Prerequisites
Ensure the following prerequisites are met:
Import the users from the LDAP or AD directory to the Privacera Ranger database.
If you have not imported LDAP users yet, see LDAP / LDAP-S for Data Access User Synchronization for information.
Determine the resources you want to protect with ABAC-based policies.
Sync new users from Privacera Ranger
You need to add the new configuration in the resource policies to import only the new user entries from the Privacera Ranger database.
To add new configuration in the resource policies:
Login to the Privacera portal.
On the navigation menu, go to Access Management > Resource Policies.
On the S3 service, click the edit button.
The Add Service dialog will display.
In the Add New Configurations text box, add userstore.download.auth.users as a key and asterisk (*) as a value, and then click Save.
Enable ABAC in a resource policy
You need to update the service definition to enable user ABAC in your service.
Below is an example of S3 for configuring service definition:
To configure service definition for S3, run the following command:
curl -sS -L -k -u <User_Name>:<Password> -H "Content-type: application/json" -H "Accept: application/json" -X GET http://<YOUR_INSTANCE_IP>:6080/service/public/v2/api/servicedef/name/s3
You will get a response in the JSON format. In the response body, the values of the
contextEnrichers
andpolicyConditions
will be blank."policyConditions": [ ], "contextEnrichers": [ ], "enums": [], "dataMaskDef": { "maskTypes": [], "accessTypes": [], "resources": [] }, "rowFilterDef": { "accessTypes": [], "resources": [] } }
Add the following
policyConditions
andcontextEnrichers
tags in the response body:"policyConditions": [{ "itemId": 1, "name": "expression", "evaluator": "org.apache.ranger.plugin.conditionevaluator.RangerScriptConditionEvaluator", "evaluatorOptions": { "ui.isMultiline": "true", "engineName": "JavaScript" }, "label": "Enter Attribute condition", "description": "Attribute condition" }], "contextEnrichers": [{ "itemId": 1, "name": "UserEnricher", "enricher": "org.apache.ranger.plugin.contextenricher.RangerUserStoreEnricher", "enricherOptions": { "userStoreRetrieverClassName": "org.apache.ranger.plugin.contextenricher.RangerAdminUserStoreRetriever", "userStoreRefresherPollingInterval": "60000" } }]
Save the document in the JSON format, such as
update.json
.Note
Make sure that the
update.json
file format and tags are correct and properly aligned.To update the configuration, run the following command:
curl -sS -L -k -u admin:welcome1 -H "Content-type: application/json" -H "Accept: application/json" -X PUT http://<YOUR_INSTANCE_IP>:6080/service/public/v2/api/servicedef/name/s3 -d @update.json
In the response, you will get the updated JSON service definition.
Test ABAC in a resource policy
For testing, create two users with permissions to assume roles with the same tags. For example, “tony” and “odin” are the users. You can also use logical condition operator ('&&' and '||') which are allowed in the policy conditions expression.
To check available attributes for a user:
Go to the Privacera Portal.
Click Access Management > Users/Groups/Roles > Users.
Search user name, and then select Attributes.
Use givenName as an Attribute
Below are the attributes for "tony" and "odin". The attribute givenName
will be used to define access permissions in the resource policy.
User attributes for “tony”

User attributes for “odin”

To edit an ABAC-based policy:
Go to your service, and click your service type.
List of policies are displayed.
Click
on the policy in which you want to add attributes for "tony".
In the Bucket Name field, select the bucket in which you want to give access to “tony”.
On the Allow Conditions section:
In the Select Group field, select public.
In the Policy Conditions field, click Add Conditions +, and then enter attribute conditions, such as
givenName=="tony"
.
Click Save.
Now, "tony" can access all the buckets:
But "odin" cannot access all the buckets which "tony" can, because we have not added user attributes for "odin" in the Policy Conditions.
Use a logical condition operator
If you want to add logical condition on the attributes of the resource policy, then do the following steps:
In the Policy Conditions field, click Add Conditions +, and then add the following logical condition operator for your attributes:
(sync_source=="ad") && (givenName=="tony")
: Add this condition when both the attribute conditions to be validated and true.(givenName=="tony") || (givenName=="odin")
- Add this condition when only one of the attributes to be validated and true.