Data protection
Last updated
Last updated
The Data Protection feature utilizes Data Encryption to ensure the confidentiality and integrity of data.
This process involves transforming readable data (plaintext) into an unreadable format (ciphertext) using advanced cryptographic algorithms and a secure encryption key. Only authorized parties with the corresponding decryption key can revert the data to its original form.
By encrypting data during storage, transmission, and processing, this feature protects sensitive information from unauthorized access, theft, and tampering.
Some of the use cases include:
Analytics querying: unless authorized, a user is not able to query privacy-sensitive data, even though they have all access to the database
Data querying: an authorized user can run a query to get the data, which reveals the privacy-sensitive data
Access control: the data owner can conveniently grant/revoke access to privacy-sensitive data
In the current version, Recurve supports data encryption through:
Key management: Organization owners or admins can create encryption keys using symmetric cryptographic algorithms, AES-128 or AES-256.
Column-level encryption: Users can apply their database or data warehouse's built-in encryption and decryption functions with the created keys.
Only organization owners or admins can create and edit encryption keys.
To create an encryption key:
Log in to your Recurve organization.
Navigate to Data Governance > Data Protection in the sidebar.
Click Create key.
Provide the following details:
Key name: This name must be unique and will be used in transformation scripts for encryption and decryption.
Description: Optional, but recommended.
Encryption algorithm: Choose between AES-128 and AES-256.
Click Create.
Recurve currently supports data encryption in advanced pipeline's operators only.
You can use the {{ secret('key_name') }}
macro to reference your encryption key in SQL snippets. Use your database's encryption functions in a SQL opearator as follows:
You can use the aes_encrypt
and aes_decrypt
utility functions. For example, in a Transfer operator, we can encrypt column data before loading it into destination: