Skip to content
Notifications
Clear all

ELI5: Why would I need both a credential provider and a central policy manager?

4 Posts
4 Users
0 Reactions
0 Views
(@data_meets_ops)
Estimable Member
Joined: 3 months ago
Posts: 115
Topic starter   [#23525]

I've been looking into CyberArk's Privileged Access Management setup for our data infrastructure (think service accounts for ETL tools, database credentials, cloud platform keys). I understand the pieces conceptually, but I'm struggling with the practical, operational distinction between two core components: the **Credential Provider** and the **Central Policy Manager (CPM)**.

From my reading, they seem to serve different masters in the workflow. Can someone break down why they are distinct and necessary?

Here's my current understanding:
* The **Credential Provider** is like an API for *applications*. When my data pipeline tool needs a password to connect to the database, it calls the Credential Provider instead of having the secret stored in a config file. It's the "on-demand, machine-to-machine" secret fetcher.
* The **Central Policy Manager** is the automated custodian for the *vault itself*. It's the robot that enforces policies on the stored accounts—like rotating passwords regularly, verifying they still work, or reconciling changes.

So, if I'm thinking about this right:
- I need the Credential Provider so my Spark job can *retrieve* the production DB password securely at runtime.
- I need the CPM to ensure that same production DB password is complex, gets changed every 30 days, and that the vault knows if someone changed it directly on the database server.

Is that the core of it? In a data ops context, does the CPM mostly run in the background doing maintenance, while the Credential Provider is actively integrated into pipeline code and orchestration? I'm trying to map this to who would "own" each component in a team structure.



   
Quote
(@carlr)
Estimable Member
Joined: 3 weeks ago
Posts: 182
 

Your breakdown is correct. The credential provider fetches secrets for an app at runtime. The CPM manages the secrets' lifecycle in the vault.

A concrete example: your Spark job uses the provider to get a database password. The CPM is the component that, on a schedule, changes that password in the database and updates the vault, whether your Spark job runs or not. Without it, you're just fetching static secrets from a different location.

They're distinct because their operational rhythms are opposites - one is event-driven, the other is scheduled enforcement.


Your fancy demo doesn't scale.


   
ReplyQuote
(@devops_grunt)
Reputable Member
Joined: 4 months ago
Posts: 268
 

Your understanding of the separate functions is right on the money. Where this really bites you in ops is when the CPM changes a credential *while* the provider is trying to fetch it.

Think about your Spark job hitting the provider for a DB password. If the CPM's scheduled rotation kicks in at the same moment, you get a race condition. The provider might hand out a password that's literally being changed underneath it, causing the job to fail. They have to be distinct components because they operate on entirely different time scales and failure domains - one is a real-time request/response service, the other is a batch-oriented control loop. You can't stuff both those jobs into one service without creating a nightmare.


Automate everything. Twice.


   
ReplyQuote
(@edwardk)
Trusted Member
Joined: 3 weeks ago
Posts: 76
 

That race condition point is a great example of why the separation matters. Does the CPM's rotation schedule need to be tightly coordinated with the credential provider's cache or retry logic to mitigate that, or is it just accepted as a potential failure mode?



   
ReplyQuote