- 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
Trino UDFs for encryption and masking on Privacera Platform
This topic provides instruction on how to install and configure the Privacera crypto plugin for Trino. Doing so will allow you to use Privacera-supplied encryption user-defined functions (UDFs) in Trino to encrypt or decrypt data.
The protect and unprotect UDFs work with privacera_starburstenterprise
but not with privacera_hive
. Starburst has three possible configurations (Hive, System, and Hive + System), of which only the system-level has been verified.
Privacera Encryption UDFs for Trino
The Privacera crypto plugin includes the following UDFs:
Encrypt: With the quoted
<encryption_scheme_name>
, theprotect
UDF encrypts all values of<column_name>
in a table:select protect(<column_name>, '<encryption_scheme_name>') from <table_name>;
Decrypt: With the
<encryption_scheme_name>
, theunprotect
UDF decrypts all values of<column_name>
in a table:select unprotect(<column_name>, '<encryption_scheme_name>') from <table_name>;
Decrypt with obfuscation: With the quoted
<encryption_scheme_name>
, theunprotect
UDF decrypts all values of<column_name>
in a table, further obfuscates the decrypted data via<presentation_scheme_name>
, and writes the decrypted, obfuscated data to<optional_column_name_for_obfuscated_data>
:select unprotect(<column_name>, '<encryption_scheme_name>', <presentation_scheme_name>) <optional_column_name_for_obfuscated_data> from <table_name>;
Decrypt with obfuscation: With the quoted
<encryption_scheme_name>
, theunprotect
UDF decrypts all values of<column_name>
in a table, further obfuscates the decrypted data via<presentation_scheme_name>
, and writes the decrypted, obfuscated data to<optional_column_name_for_obfuscated_data>
:select unprotect(<column_name>, '<encryption_scheme_name>', <presentation_scheme_name>) <optional_column_name_for_obfuscated_data> from <table_name>;
For example usage, see Example Queries to Verify Privacera-supplied UDFs.
Prerequisites for installing Privacera crypto plugin for Trino
Before installing the Privacera crypto plugin for Trino, do the following:
Install Trino. In this topic, the location of the installed Trino software is shown as:
<absolute_path_to_trino_home_directory>
Identify the users who will use the UDFs and ensure they have access to the pertinent tables.
Determine the required paths to the crypto JAR and
crypto.properties file
. The Encryption plugin for Trino relies on these files. The paths for each file depend on whether you have deployed Trino in a container (such as Docker). These different paths are detailed in the following sections.
Install the Privacera crypto plugin for Trino using Privacera Manager
To install the Privacera crypto plugin, follow these steps:
See the following sections for details about how to complete each step.
Upgrade Privacera Manager
To install the Privacera crypto plugin, you first need to update Privacera Manager to get a shell script. This shell script downloads the Privacera Encryption crypto plugin for Trino.
To do so, run the following commands:
# Change to Privacera Manager directory cd ~/privacera/privacera-manager # Upgrade Privacera Manager itself ./privacera-manager.sh upgrade-manager
Configure the Privacera crypto plugin for Trino
# Copy the Trino properties file to Privacera Manager config/custom-vars directory cp config/sample-vars/vars.starburst.enterprise.trino.yml config/custom-vars/ # Set property STARBURST_TRINO_ENABLE to true vi config/custom-vars/vars.starburst.enterprise.trino.yml ... STARBURST_TRINO_ENABLE: "true" ... # Save the file # Edit starburst-trino-crypto.yml to specify Trino home directory vi ansible/privacera-docker/roles/defaults/main/starburst-trino-crypto.yml ... STARBURST_TRINO_INSTALL_DIR: <absolute_path_to_trino_home_directory> ... # Save the file
Run shell script to install Privacera crypto plugin
# Change to Privacera Manager directory cd ~/privacera/privacera-manager # Update Privacera Manager to get shell script ./privacera-manager.sh update # Change to new directory created by privacera-manager update cd output/starburst-trino-crypto/ # Make the script executable chmod +x privacera_crypto_trino_setup.sh # ###################################### # NOTE: You must copy the script to your Trino or Starburst instance ###################################### # # Run the script on your instance from where you copied it ./privacera_crypto_trino_setup.sh
Verify that the shell script ran correctly
Verify the following:
The location of the Privacera crypto JAR:
# For non-container deployment ls -l <absolute_path_to_trino_home_directory>/plugin/privacera/privacera-crypto-jar-with-dependencies.jar # For container deployment ls -l /data/starburst/plugin/privacera/privacera-crypto-jar-with-dependencies.jar
The location of the
crypto.properties
file in Trino'setc
directory:# Verify existence of crypto.properties file # For non-container deployment ls -l <absolute_path_to_trino_home_directory>/etc/crypto.properties # For non-container deployment ls -l /data/starburst/etc/crypto.properties
Restart Trino to register the Privacera crypto UDFs for Trino
# Go to Trino bin directory cd /<trino_installation_directory>/bin # Restart Trino ./launcher restart
privacera.unprotect with optional presentation scheme
The unprotect
UDF supports an optional specification of a presentation scheme that further obfuscates the decrypted data.
Syntax:
select <id>, privacera.unprotect(<COLUMN_NAME>, <ENCRYPTION_SCHEME_NAME>, <PRESENTATION_SCHEME_NAME>) <OPTIONAL_NAME_FOR_COLUMN_TO_WRITE_OBFUSCATED_OUPUT> from <DB_NAME>.<TABLE_NAME>;
where:
<PRESENTATION_SCHEME_NAME>
is the name of the chosen Privacera presentation scheme with which to further obfuscate the decrypted data.<OPTIONAL_NAME_FOR_COLUMN_TO_WRITE_OBFUSCATED_OUTPUT>
is a "pretty" name for the column that the obfuscated data is written to.Other arguments are the same as in the preceding
unprotect
example.
Example queries to verify Privacera-supplied UDFs
See the syntax detailed in Syntax of Privacera Encryption UDFs for Trino.
Encrypt: The following example query with the
protect
UDF encrypts the cleartextCUSTOMER_EMAIL
column of theCUSTOMERS
table using the quoted'EMAIL'
encryption scheme:select protect(CUSTOMER_EMAIL, `EMAIL`) from CUSTOMERS;
Decrypt: The following example query with the
unprotect
UDF decrypts the encryptedCUSTOMER_EMAIL
column of theCUSTOMERS
table using the quoted'EMAIL'
encryption scheme:select unprotect(CUSTOMER_EMAIL, 'EMAIL') from CUSTOMERS;
Decrypt with obfuscation: The following example query with the
unprotect
UDF decrypts the encryptedCUSTOMER_EMAIL
column of theCUSTOMERS
table using the quoted'EMAIL'
encryption scheme, obfuscates the decrypted data with the presentation schemePRESENTATION_EMAIL
, and writes the decrypted, obfuscated data toOPTIONAL_OUTPUT_COLUMN_FOR_OBFUSCATED_DATA
:select unprotect(CUSTOMER_EMAIL, 'EMAIL', PRESENTATION_EMAIL) OPTIONAL_OUTPUT_COLUMN_FOR_OBFUSCATED_DATA from CUSTOMERS;