The CyberArk Central Credential Provider (CCP) Store integrates with CyberArk’s enterprise-grade credential management platform. It retrieves credentials such as passwords, usernames, and database connection details directly from the CyberArk Vault through the CCP interface. This enables secure, centralized secret management and automated credential rotation without embedding secrets in configuration files. This page details the CyberArk CCP Store Parameters and a guide on how to configure CCP Certificates.
CyberArk CCP Store-Specific Parameters
Prerequisites
A configured CyberArk CCP instance is required, along with an Application ID (AppID) authorized to access the required secrets. Depending on your organization’s authentication model, the CCP can use TLS-Cert or TLF-PFX.
Ensure that the appropriate authentication certificates or credentials are available to the deployment environment.
| Parameter | Description | Environment Variable | Default | Required | Valid / Example Values |
|---|---|---|---|---|---|
auth.method |
Authentication method | CYBERARK_CCP_AUTH_METHOD |
- | Yes | Valid: TLS-Cert, TLS-PFXExample: TLS-Cert |
auth.pfxFileName |
PFX file name - relates to the TLS-PFX. | CYBERARK_CCP_AUTH_PFX_FILE_NAME |
- | Yes* | Example: /path/to/cert.pfx |
auth.pfxPassword |
PFX password - relates to the TLS-PFX. | CYBERARK_CCP_AUTH_PFX_PASSWORD |
- | Yes* | Example: ${CYBERARK_PFX_PASSWORD} |
.auth.caFileName |
CA file name - relates to the TLS-Cert. | CYBERARK_CCP_AUTH_CA_FILE_NAME |
- | Yes* | Example: /path/to/ca.pem |
auth.certFileName |
Certificate file name - relates to the TLS-Cert. | CYBERARK_CCP_AUTH_CERT_FILE_NAME |
- | Yes* | Example: /path/to/certificate.crt |
auth.keyFileName |
Key file name - relates to the TLS-Cert. | CYBERARK_CCP_AUTH_KEY_FILE_NAME |
- | Yes* | Example: /path/to/private.key |
details.url |
CCP server URL | CYBERARK_CCP_URL |
- | Yes | Example: https://cyberark-ccp.example.com |
details.method |
CCP API HTTP Request method (for CyberArcCCP v14.2+ POST is supported and recommended) | CYBERARK_CCP_REQUEST_METHOD |
POST |
No | Valid: GET, POSTExample: POST |
details.timeout |
Connection timeout | CYBERARK_CCP_CONNECTION_TIMEOUT |
30s |
No | Example: 30s |
details.skipVerify |
Disables or enables CyberArk certificate Validation | CYBERARK_CCP_SKIP_VERIFY |
false |
No | Valid: true, falseExample: false |
details.defaultPath |
The default path used for accessing the Secrets in this Store. | CYBERARK_CCP_DEFAULT_PATH |
- | No | Example: /AIMWebService/api/Accounts |
details.pathPrefix |
The prefix for all paths when accessing Secrets in this Store. | CYBERARK_CCP_PATH_PREFIX |
- | No | Example: Accounts |
details.appId |
Specifies the unique ID of the Application issuing the password request. | CYBERARK_CCP_APP_ID |
- | Yes | Example: MyAppID |
details.maxConcurrentRequests |
Maximum concurrent requests | CYBERARK_CCP_MAX_CONCURRENT_REQUESTS |
40 |
No | Example: 10 |
details.requestTimeout |
Request timeout | CYBERARK_CCP_REQUEST_TIMEOUT |
30s |
No | Example: 30s |
details.maxRetries |
Maximum retries | CYBERARK_CCP_MAX_RETRIES |
5 |
No | Example: 3 |
details.retryDelay |
Retry delay | CYBERARK_CCP_RETRY_DELAY |
10s |
No | Example: 1s |
details.forceAttemptHTTP2 |
Force HTTP/2 usage if supported by server | CYBERARK_CCP_FORCE_ATTEMPT_HTTP2 |
true |
No | Valid: true, falseExample: true |
Required based on TLS certificate type:
Based on the auth.method chosen:
TLS-Cert- certificate, key, and CA files should be provided and defined using:certFileName,keyFileName, andcaFileNameas required parameters.TLS-PFX- A.pfxfile should be provided and defined using:pfxFileNameandpfxPasswordas required parameters.
Example
The following example is based on the general store and store-specific parameters.
secretsMgmt:
enabled: true
plainIDConfig:
config.yaml:
secretStore:
- id: CYBERARK_CCP_STORE
type: CyberArkCCP
isDefault: false
auth:
method: TLS-Cert
certFileName: /path/to/cert.pem
keyFileName: /path/to/key.pem
caFileName: /path/to/ca.pem
details:
url: https://cyberark-ccp.example.com
defaultPath: /AIMWebService/api/Accounts
pathPrefix: Accounts
appId: MyAppID
timeout: 30s
maxConcurrentRequests: 10
maxRetries: 3
retryDelay: 1s
A typical use case is retrieving credentials from CyberArk—such as database passwords or API tokens—without storing them in configuration files. The CCP handles secret retrieval and renewal, providing seamless rotation and compliance with enterprise security Policies.
Returned Secret Format
CyberArk’s Central Credential Provider (CCP) always returns secrets in JSON format.
To support this flow, when using a secret key in the client, you must specify a JSON path expression in addition to the mandatory client_id and client_secret. The JSONPath guides the client where to extract the actual secret value from the JSON response.
CyberArk CCP responses include credentials in the following JSON structure:
{
"Content": "<PASSWORD>",
"UserName": "<USERNAME>",
"LogonDomain": "<LOGON_DOMAIN>",
"Address": "<ADDRESS>",
"Database": "<DATABASE>"
}
Secrets are retrieved using JSON path expressions. For example:
-
To extract a password:
"{{store=CYBERARK_CCP_STORE,key=my-secret,jsonpath=$.Content}}" -
To extract a username:
"{{store=CYBERARK_CCP_STORE,key=my-secret,jsonpath=$.UserName}}"
Certificate Configuration for CyberArk CCP Store
This section describes how to securely configure certificates for authenticating with the CyberArk CCP Store. Certificates can be provided either by mounting Kubernetes secrets or embedding certificate content directly into configuration files. The method you choose depends on your organization’s security and deployment model.
For a full reference on CyberArk CCP configuration and certificate-based authentication, see the CyberArk documentation.
Method 1: Mounted Certificates from Secrets
To create and mount certificates:
-
Create a Kubernetes secret containing your certificates:
kubectl create secret generic cyberark-cert-secret \ --from-file=ca.pem=/path/to/ca.pem \ --from-file=certificate.crt=/path/to/certificate.crt \ --from-file=private.key=/path/to/private.key -
Reference the secret in your deployment’s Helm values file:
extraVolumes: - name: cyberark-cert-secret secret: defaultMode: 420 secretName: cyberark-cert-secret extraVolumeMounts: - name: cyberark-cert-secret readOnly: true mountPath: /app/ca.pem subPath: ca.pem - name: cyberark-cert-secret readOnly: true mountPath: /app/certificate.crt subPath: certificate.crt - name: cyberark-cert-secret readOnly: true mountPath: /app/private.key subPath: private.key ### There are two methods for configuring reference to the file names: ### A: Using the manual Store configuration, referencing the mount paths: plainIDConfig: config.yaml: secretStore: - id: CYBERARK_CCP_STORE type: CyberArkCCP isDefault: false auth: method: TLS-Cert caFileName: /app/ca.pem certFileName: /app/certificate.crt keyFileName: /app/private.key details: url: ${CYBERARK_CCP_URL} appId: ${CYBERARK_CCP_APP_ID} ### B: Using the extraEnv and declaring environment variable referencing the mount paths: extraEnv: ENV_VAR_CCP_CERT_FILE_NAME: "/app/config/cert.crt" ENV_VAR_CCP_KEY_FILE_NAME: "/app/config/private.key" ENV_VAR_CCP_CA_FILE_NAME: "/app/config/ca.pem"
Method 2: Embedded Certificate Content
You can embed certificate content directly into your configuration:
plainIDConfig:
config.yaml:
secretStore:
- id: CYBERARK_CCP_STORE
type: CyberArkCCP
isDefault: false
auth:
method: TLS-Cert
caFileName: /app/ca.pem
certFileName: /app/certificate.crt
keyFileName: /app/private.key
details:
url: ${CYBERARK_CCP_URL}
appId: ${CYBERARK_CCP_APP_ID}
ca.pem: |
-----BEGIN CERTIFICATE-----
... your CA certificate content ...
-----END CERTIFICATE-----
certificate.crt: |
-----BEGIN CERTIFICATE-----
... your certificate content ...
-----END CERTIFICATE-----
private.key: |
-----BEGIN PRIVATE KEY-----
... your private key content ...
-----END PRIVATE KEY-----
Standalone Deployment
In a standalone deployment, certificate related files will be deployed on the machine, as an example under the Secret Manager service app folder and referenced from there.
In this pattern there is no need for environment variables or secrets and instead the store configuration will simply point to the files locations and the certificates will be be read from the file while authenticating to CCP.
Example (Standalone Format):
/app/config/cert.crt
/app/config/private.key
/app/config/ca.pem
Whenever these values are referenced (whether in manual configuration, platform-managed environment variables, or other input fields), you refer to them exactly by path, e.g.:
certFileName: /app/config/cert.crt
keyFileName: /app/config/private.key
caFileName: /app/config/ca.pem
This approach eliminates the need for Kubernetes secrets but should only be used in controlled environments where configuration files are securely managed.