Use the Decrypt command to decrypt data in the Ingest Processor solution
The Ingest Processor solution allows you to send encrypted data through your pipelines, and decrypt it before it reaches its destination. That way, you do not have to decrypt your data before processing it in Ingest Processor pipelines. To decrypt your data, apply the Decrypt command to your pipelines.
The Decrypt command is an SPL2 command that requires a private key, which must be stored in a lookup table. The Decrypt command has four required fields: the field to decrypt, the name of the lookup table that your private key is stored under, the specific lookup field name within your lookup table where your private key is stored, and the name of the field where the decrypted value will be outputted.
The Ingest Processor itself does not encrypt data, so your data must already be encrypted before it enters the pipeline.
Prerequisites
- The data must already be encrypted using the RSA algorithm and PKCS1#1 v1.5 padding.
- The private key must be stored in a lookup table. If an invalid private key is used, the decrypt command will return a placeholder NIL string. For more information on using lookups for the Ingest Processor solution, see
Enrich Data with Lookups using an Ingest Processor. One column in the lookup table must have the exact title private_key. See the following example of a lookup table CSV file:
private_key, device_id MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCO0wIiso9DBXCIR82prtAf+TnN1aKvZ7oC7rSpaJSIoAI2ijmJh/q+5fhn7Ku7ktBXvM5fw+UcknVBJJewz9MVb3OzvL2DFUydq7dpU+1hEWkNH6skSFVX, 3F2504E0 Note: Please note that RSA decryption is a resource-intensive operation. As a result, you may observe a decrease in throughput depending on the amount of load being sent, especially when compared to a regular pipeline without decryption enabled. This behavior is expected due to the additional computational overhead introduced by RSA decryption. |
Use the decrypt command
Navigate to the Pipelines page.
Select the Actions icon (
) in the row that lists your pipeline, and then select Edit. This will take you to the pipeline editor for that pipeline.
Select the plus icon (
) in the Actions area of the pipeline builder and select Decrypt field using lookup.
In the menu, provide the name of the Lookup table that your private key is stored under, the name of the specific Lookup match field, the Field to decrypt and the Decrypted output field where you will store your output.
Select Apply.
Example: Use the Decrypt command to decrypt data
{"device_id": "3F2504E0", "device_type": "router", "serial_number": "U2FsdGVkX1+9K2pQ7c3gX0yH4mN5v6wR1aB8zLpDqFjEwXcVxYtZsGhIuO0P1r2sY"} |
private_key, device_id MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCO0wIiso9DBXCIR82prtAf+TnN1aKvZ7oC7rSpaJSIoAI2ijmJh/q+5fhn7Ku7ktBXvM5fw+UcknVBJJewz9MVb3OzvL2DFUydq7dpU+1hEWkNH6skSFVX, 3F2504E0 |
decrypt encrypted_payload='serial_number' keystore='cproc-decrypt.csv' key_config='device_id' decrypted_output_field='decrypted_field_output' |
encrypted_payload
is the encrypted data field to be decryptedkeystore
is the lookup table name that contains the private key to decrypt the encrypted fieldkey_config
is the specific lookup field name within your lookup table where your private key is storeddecrypted_output_field
is the name of the field where the decrypted value will be stored