Integrating Cloud Protect with PPC (Protegrity Provisioned Cluster)

Concepts for integrating with PPC (Protegrity Provisioned Cluster)

This guide describes how to configure the Protegrity Policy Agent and Log Forwarder to connect to a Protegrity Provisioned Cluster (PPC), highlighting the differences from connecting to ESA.

Key Differences: PPC vs ESA

FeatureESA 10.2PPC (this guide)
Datastore Key FingerprintOptional/RecommendedRequired
CA Certificate on AgentOptional/RecommendedOptional/Recommended
CA Certificate on Log ForwarderOptional/RecommendedNot supported
Client Certificate Authentication from Log ForwarderOptional/RecommendedNot supported
IP AddressESA IP addressPPC address

Prerequisites

  • Access to PPC and required credentials.
  • Tools: curl, kubectl installed.

Policy Agent Setup with PPC

Follow these instructions as a guide for understanding specific inputs for Policy Agent integrating with PPC:

  1. Obtain the Datastore Key Fingerprint

    To retrieve the fingerprint for your Policy Agent:

    curl -k -H "Authorization: Bearer ${TOKEN}" -X POST https://${HOST}/pty/v2/pim/datastores/1/export/keys  -H "Content-Type: application/json" --data '{
      "algorithm": "RSA-OAEP-256",
      "description": "example-key-from-kms",
      "pem": "-----BEGIN PUBLIC KEY-----\nABC123... ...890XYZ\n-----END PUBLIC KEY-----"
    }'
    

    Sample Output:

    {"uid":"1","algorithm":"RSA-OAEP-256","fingerprint":"4c:46:d8:05:35:2e:eb:39:4d:39:8e:6f:28:c3:ab:d3:bc:9e:7a:cb:95:cb:b1:8e:b5:90:21:0f:d3:2c:0b:27","description":"example-key-from-kms"}
    

    Record the fingerprint value and configure it as the PTY_DATASTORE_KEY for the Policy Agent.

  2. Retrieve the PPC CA Certificate

    To obtain the CA certificate from PPC:

    kubectl -n api-gateway get secret ingress-certificate-secret -o jsonpath='{.data.ca\.crt}' | base64 -d > CA.pem
    

    Use the CA.pem that was returned as described in Policy Agent Installation.

  3. Configure the PPC Address

    Use the PPC address in place of the ESA IP address wherever required in your configuration.

Log Forwarder Setup with PPC

  • The Log Forwarder will proceed without certificates and will print a warning if PtyEsaCaServerCert and PtyEsaClientCertificatesSecretId are not provided.
  • No additional certificate or CA configuration is needed for PPC.

Troubleshooting

Protector Lambda fails with “AWS KMS Decrypt failed”

Symptom:

After a successful Policy Agent run and layer update, the Protector Lambda returns:

{
  "body": "{\"error_msg\":\"Failed to open decoder: rpdecode decrypt failure: dek callback failed: AWS KMS Decrypt failed: \",\"success\":false}",
  "isBase64Encoded": false,
  "statusCode": 400
}

The Protector Lambda logs show:

[SEVERE] [utils.cpp:185] AWS KMS Decrypt failed:

Cause:

The public key configured in the PPC/ESA datastore does not match the KMS key pair used by the Policy Agent. The policy package is encrypted with the public key stored in the datastore. If that key does not correspond to the KMS key pair whose private key is used for decryption, the Protector Lambda will fail to decrypt the policy.

Resolution:

  1. Identify the KMS key pair used by the Policy Agent (the key ARN configured during pre-configuration).
  2. Export the public key from that KMS key pair.
  3. In PPC/ESA, ensure the datastore’s export key is configured with the public key from that same KMS key pair. See Obtain the Datastore Key Fingerprint above.
  4. Re-run the Policy Agent to generate a new policy package encrypted with the correct key.
  5. Test the Protector Lambda again.

Additional Notes


    Last modified : March 27, 2026