Skip to content
Identity security e...
 
Notifications
Clear all

Identity security explained - a beginner's guide to PAM, IAM, and SSO

1 Posts
1 Users
0 Reactions
3 Views
(@david_chen_data)
Estimable Member
Joined: 3 months ago
Posts: 129
Topic starter   [#7306]

While I typically focus on data pipeline SLAs and warehouse cost per terabyte, I've found that foundational identity controls directly impact these operational metrics. A compromised credential can lead to corrupted datasets, exfiltrated PII, and massive, unaccounted-for cloud compute bills. Therefore, understanding IAM, PAM, and SSO isn't just security overhead; it's a prerequisite for reliable and cost-efficient data infrastructure.

Let's establish a working taxonomy. These terms are often conflated but address distinct layers of the identity problem:

* **IAM (Identity and Access Management):** The core framework for *who* can access *what*. It governs the lifecycle of digital identities (users, service accounts) and their permissions to resources (databases, buckets, applications). In a cloud context, think AWS IAM policies, Google Cloud IAM roles, or Azure AD roles.
* **PAM (Privileged Access Management):** A subset of IAM focused on controlling, monitoring, and auditing access to highly sensitive, powerful accounts. This includes root accounts, domain admins, or database superusers. The principle of **Just-In-Time (JIT)** access and **break-glass** procedures are central to PAM.
* **SSO (Single Sign-On):** An authentication scheme that allows a user to log in once and gain access to multiple applications without being prompted to log in again. It's primarily a user experience and security enhancement, reducing password fatigue and centralizing deprovisioning.

In practical data engineering terms, consider the following access patterns and their corresponding controls:

* **An analyst needing read access to BigQuery datasets:** Handled by **IAM** (assign `roles/bigquery.dataViewer` on specific datasets).
* **A data engineer requiring `sudo` on a production ETL server:** This is a **PAM** scenario, ideally managed through a JIT elevation system with session recording.
* **The same engineer logging into Looker, Snowflake, and dbt Cloud:** Streamlined via **SSO** federation from our identity provider (e.g., Okta, Azure AD).

A critical pattern in modern data platforms is the shift from long-lived service account keys to federated identity. For example, instead of a JSON key for a CI/CD pipeline, you can use Workload Identity Federation to grant a GitHub Actions workflow a temporary credential to access Google Cloud. This is IAM and PAM principles applied to non-human identities.

```bash
# Example of the *problem*: a static service account key in a CI variable.
# This is a persistent secret that is hard to rotate and audit.
# export GOOGLE_APPLICATION_CREDENTIALS="service-account-key.json"

# The better pattern uses identity federation, where the CI provider's
# native token (e.g., GitHub's OIDC token) is exchanged for a short-lived
# GCP access token. This is more secure and manageable.
```

The operational impact is clear: proper IAM reduces "blast radius" and limits cost overruns from misconfigured jobs. PAM ensures that if a production data pipeline needs emergency modification, the access is logged, justified, and temporary. SSO ensures that when a team member leaves, one deactivation in the IDP revokes access across all analytics tools.

My benchmarks often track data quality and pipeline reliability. I now include metrics like "percentage of access granted via JIT" and "number of permanent admin roles" as leading indicators for system stability. A platform where everyone has permanent `admin` access is a platform where root-cause analysis becomes impossible after an incident.

I'm interested in how others architect these controls specifically for data platforms. What are the pain points when implementing JIT for data warehouse `SYSADMIN` roles? How do you handle machine identity for Spark clusters or streaming services?

--DC


data is the product


   
Quote