Access Control Identity Audit
Overview
This skill performs identity and access management (IAM) audits mapped to:
- SOC 2 CC6.1–CC6.8: logical access, credential management, access removal
- HIPAA §164.312(a)(1): access control implementation specifications
- PCI-DSS Req 7: restrict access to CHD by business need-to-know
- PCI-DSS Req 8: identify and authenticate users
AI agent deployments introduce non-human identities: MCP service accounts, LLM API keys, agent runtime roles, and deanonymization tools. These require the same rigor as human admin accounts.
When to Use
Use this skill when:
- Quarterly access reviews or SOC 2 CC6.2/CC6.3 evidence collection
- Auditing cloud IAM (AWS IAM, Azure RBAC, GCP IAM) for least privilege
- Reviewing MCP OAuth scopes and agent tool permissions
- Joiner-mover-leaver (JML) process validation
- MFA coverage assessment for privileged and ePHI/CDE access
- Investigating ** excessive permissions** on service accounts running agents
Do not use this skill when:
- Network segmentation and firewall rules (use
pci-dss-network-segmentation)
- BAA legal review (use
hipaa-baa-vendor-assessment)
- Log integrity architecture (use
audit-logging-integrity)
Core Process
Execute steps in order.
Step 1: Identity inventory
- Export all identities from authoritative IdP and cloud IAM:
- Human users, groups, roles
- Service accounts, API keys, OAuth clients (MCP, agent, CI/CD)
- Classify each identity:
- Human standard, Human privileged, Non-human service, Emergency break-glass
- Tag data access scope: ePHI, CHD, Confidential, Public
- Artifact:
identity-inventory-{id}.csv.
Step 2: SOC 2 CC6 mapping
| Criterion |
Audit action |
| CC6.1 |
Logical access security software/infrastructure |
| CC6.2 |
User registration and authorization before issuance |
| CC6.3 |
User modification and removal on role change |
| CC6.4 |
Access restrictions to confidential information |
| CC6.5 |
Protection against unauthorized access during transmission/session |
| CC6.6 |
System boundaries and segmentation (cross-ref network skill) |
| CC6.7 |
Transmission, movement, removal restrictions |
| CC6.8 |
Prevention of unauthorized software |
Document PASS/FAIL per criterion with evidence source.
Step 3: Least privilege analysis
For each identity with ePHI, CHD, or admin access:
- Export effective permissions (policy simulation, IAM analyzer).
- Compare to role baseline (intended permission set).
- Flag:
* actions on * resources
- Unused permissions (90-day access advisor idle)
- Direct user policies instead of group/role-based access
- Shared API keys across multiple services
- Severity: CRITICAL for CDE/PHI over-permission; HIGH for admin; MEDIUM for stale access.
Step 4: MFA and authentication (PCI Req 8, HIPAA §164.312(d))
- Verify MFA enforced for:
- All privileged human accounts
- Remote access to CDE/ePHI systems
- Agent admin consoles and deanonymization functions
- Verify service accounts use key rotation, short-lived tokens, or workload identity—not long-lived static keys in repos.
- Test: password-only login to privileged console must fail.
Step 5: MCP and agent-specific access
- Inventory MCP server credentials:
- OAuth clients: scopes, redirect URIs, PKCE requirement
- Postgres MCP: DB roles, read-only vs write, schema limits
- Playwright MCP: target URL allowlist, no arbitrary navigation
- Inventory agent tools:
deanonymize_response: restricted to authorized roles
redaction_status: read-only, logged
- Verify no shared agent runtime credential across prod and dev.
Step 6: Joiner-mover-leaver validation
- Sample HR-triggered access tickets (hire, transfer, terminate) from examination period.
- Verify:
- Provisioning within SLA with manager approval
- Transfer: old permissions removed within SLA
- Termination: same-day disable of all accounts and API keys
- FAIL if terminated user retains MCP or cloud access.
Step 7: Access certification (recertification)
- Run quarterly certification campaign:
- Managers attest direct reports' access
- Service account owners attest non-human identities
- Export certification completion rate; unreviewed accounts → revoke or escalate.
- Store signed attestation for
soc2-evidence-collection.
Step 8: Remediation and evidence
- Remediation priorities: CRITICAL revoked within 24h, HIGH within 7 days.
- Package: IAM exports, MFA report, JML samples, certification exports, hashes.
Common Rationalizations
| Excuse the agent might generate |
Required rebuttal |
| "Service accounts don't need MFA." |
Non-human identities need equivalent controls: workload identity, key rotation, scope limitation—not passwordless permanence. |
| "Admin needs . for emergencies." |
Break-glass accounts must be named, logged, time-bound—standing admin . is a CC6.1 FAIL. |
| "MCP OAuth scopes are dev-only convenience." |
Production MCP scopes are in-scope for CC6.4 and HIPAA access control. |
| "We'll remove terminated user access next week." |
PCI/HIPAA/SOC 2 require timely deprovisioning—same-day is industry standard for termination. |
| "Access review is HR's job, not IT security." |
CC6.3 requires demonstrable removal/modification process with evidence. |
| "API key in repo is fine if private." |
Keys in git are credential management failures (CC6.1)—rotate and use secret manager. |
Red Flags
- Terminated employee active in IAM or MCP OAuth sessions
- Deanonymization tool callable without role check
- Postgres MCP service account has SUPERUSER or write on PHI/CDE tables
- MFA optional for cloud root/admin accounts
- Shared long-lived API key for agent and CI pipeline
- Access certification completion below 95% with no revocation follow-up
- Break-glass account used without post-use review log entry
Verification
1---2name: access-control-identity-audit3description: Audits identity and access management—least privilege, RBAC, MFA, privileged access, joiner-mover-leaver—for SOC 2 CC6.1–CC6.8, HIPAA §164.312(a), and PCI Req 7/8. Trigger when reviewing IAM policies, agent/MCP service accounts, access certifications, or admin console permissions. Do not use for network firewall segmentation (use pci-dss-network-segmentation) or tamper-evident logging design (use audit-logging-integrity).4---56# Access Control Identity Audit78## Overview910This skill performs **identity and access management (IAM) audits** mapped to:1112- **SOC 2 CC6.1–CC6.8**: logical access, credential management, access removal13- **HIPAA §164.312(a)(1)**: access control implementation specifications14- **PCI-DSS Req 7**: restrict access to CHD by business need-to-know15- **PCI-DSS Req 8**: identify and authenticate users1617AI agent deployments introduce **non-human identities**: MCP service accounts, LLM API keys, agent runtime roles, and deanonymization tools. These require the same rigor as human admin accounts.1819## When to Use2021Use this skill when:2223- **Quarterly access reviews** or SOC 2 CC6.2/CC6.3 evidence collection24- Auditing **cloud IAM** (AWS IAM, Azure RBAC, GCP IAM) for least privilege25- Reviewing **MCP OAuth scopes** and agent tool permissions26- **Joiner-mover-leaver (JML)** process validation27- **MFA coverage** assessment for privileged and ePHI/CDE access28- Investigating ** excessive permissions** on service accounts running agents2930Do **not** use this skill when:3132- Network segmentation and firewall rules (use `pci-dss-network-segmentation`)33- BAA legal review (use `hipaa-baa-vendor-assessment`)34- Log integrity architecture (use `audit-logging-integrity`)3536## Core Process3738Execute steps **in order**.3940### Step 1: Identity inventory41421. Export all identities from authoritative IdP and cloud IAM:43 - Human users, groups, roles44 - Service accounts, API keys, OAuth clients (MCP, agent, CI/CD)452. Classify each identity:46 - **Human standard**, **Human privileged**, **Non-human service**, **Emergency break-glass**473. Tag data access scope: **ePHI**, **CHD**, **Confidential**, **Public**484. Artifact: `identity-inventory-{id}.csv`.4950### Step 2: SOC 2 CC6 mapping5152| Criterion | Audit action |53| --- | --- |54| CC6.1 | Logical access security software/infrastructure |55| CC6.2 | User registration and authorization before issuance |56| CC6.3 | User modification and removal on role change |57| CC6.4 | Access restrictions to confidential information |58| CC6.5 | Protection against unauthorized access during transmission/session |59| CC6.6 | System boundaries and segmentation (cross-ref network skill) |60| CC6.7 | Transmission, movement, removal restrictions |61| CC6.8 | Prevention of unauthorized software |6263Document PASS/FAIL per criterion with evidence source.6465### Step 3: Least privilege analysis6667For each identity with ePHI, CHD, or admin access:68691. Export effective permissions (policy simulation, IAM analyzer).702. Compare to **role baseline** (intended permission set).713. Flag:72 - `*` actions on `*` resources73 - Unused permissions (90-day access advisor idle)74 - Direct user policies instead of group/role-based access75 - Shared API keys across multiple services764. Severity: CRITICAL for CDE/PHI over-permission; HIGH for admin; MEDIUM for stale access.7778### Step 4: MFA and authentication (PCI Req 8, HIPAA §164.312(d))79801. Verify MFA enforced for:81 - All privileged human accounts82 - Remote access to CDE/ePHI systems83 - Agent admin consoles and deanonymization functions842. Verify service accounts use **key rotation**, **short-lived tokens**, or **workload identity**—not long-lived static keys in repos.853. Test: password-only login to privileged console must **fail**.8687### Step 5: MCP and agent-specific access88891. Inventory MCP server credentials:90 - OAuth clients: scopes, redirect URIs, PKCE requirement91 - Postgres MCP: DB roles, read-only vs write, schema limits92 - Playwright MCP: target URL allowlist, no arbitrary navigation932. Inventory agent tools:94 - `deanonymize_response`: restricted to authorized roles95 - `redaction_status`: read-only, logged963. Verify **no shared** agent runtime credential across prod and dev.9798### Step 6: Joiner-mover-leaver validation991001. Sample HR-triggered access tickets (hire, transfer, terminate) from examination period.1012. Verify:102 - Provisioning within SLA with manager approval103 - Transfer: old permissions removed within SLA104 - Termination: **same-day** disable of all accounts and API keys1053. FAIL if terminated user retains MCP or cloud access.106107### Step 7: Access certification (recertification)1081091. Run quarterly certification campaign:110 - Managers attest direct reports' access111 - Service account owners attest non-human identities1122. Export certification completion rate; unreviewed accounts → revoke or escalate.1133. Store signed attestation for `soc2-evidence-collection`.114115### Step 8: Remediation and evidence1161171. Remediation priorities: CRITICAL revoked within 24h, HIGH within 7 days.1182. Package: IAM exports, MFA report, JML samples, certification exports, hashes.119120## Common Rationalizations121122| Excuse the agent might generate | Required rebuttal |123| --- | --- |124| "Service accounts don't need MFA." | Non-human identities need **equivalent controls**: workload identity, key rotation, scope limitation—not passwordless permanence. |125| "Admin needs *.* for emergencies." | Break-glass accounts must be **named, logged, time-bound**—standing admin *.* is a CC6.1 FAIL. |126| "MCP OAuth scopes are dev-only convenience." | Production MCP scopes are **in-scope** for CC6.4 and HIPAA access control. |127| "We'll remove terminated user access next week." | PCI/HIPAA/SOC 2 require **timely** deprovisioning—same-day is industry standard for termination. |128| "Access review is HR's job, not IT security." | CC6.3 requires **demonstrable** removal/modification process with evidence. |129| "API key in repo is fine if private." | Keys in git are **credential management failures** (CC6.1)—rotate and use secret manager. |130131## Red Flags132133- Terminated employee active in IAM or MCP OAuth sessions134- Deanonymization tool callable without role check135- Postgres MCP service account has SUPERUSER or write on PHI/CDE tables136- MFA optional for cloud root/admin accounts137- Shared long-lived API key for agent and CI pipeline138- Access certification completion below 95% with no revocation follow-up139- Break-glass account used without post-use review log entry140141## Verification142143- [ ] Complete identity inventory with human/non-human classification144- [ ] CC6.1–CC6.8 assessed with PASS/FAIL and evidence per criterion145- [ ] Least privilege analysis completed with over-permission findings prioritized146- [ ] MFA enforced and tested for all privileged and remote access paths147- [ ] MCP OAuth scopes and agent tool permissions documented and restricted148- [ ] JML sample validated with timely deprovisioning evidence149- [ ] Quarterly access certification completed or gaps flagged with revocation plan150- [ ] CRITICAL findings remediated or under emergency exception with expiry151- [ ] Evidence exports hashed and mapped to control IDs152- [ ] Service account key rotation policy verified (no stale keys >90 days)