Seven projects.
One connected system.

Each project solves a distinct layer of the identity security problem — from provisioning an identity on day one to auditing its policy posture years later.

P1 — IAM

Keycloak IAM Lab

Enterprise equivalent: Microsoft Entra ID · Okta · Any OIDC/SAML Identity Provider

Complete

Production-grade Keycloak 26.2.4 on RHEL 10 with PostgreSQL 16, TLS hardening, OIDC and SAML 2.0 client configuration, and Python-automated Joiner-Mover-Leaver lifecycle. Generates real audit events that feed the platform's shared data lake and GRC1 certification workflow downstream. Enhanced with Kubernetes Operator deployment, Prometheus/Grafana/Alertmanager observability stack (provisioned via Ansible), default-deny NetworkPolicy with negative testing, per-workload ServiceAccounts, and scoped Grafana DB role — each fix traced to a verified root cause including a silent RBAC denial that was invisible only because the deployment ran a single replica.

Keycloak 26.2.4 PostgreSQL 16 Python 3.12 OIDC · SAML 2.0 Kubernetes · k3s Prometheus · Grafana · Alertmanager Ansible Jenkins CI/CD Podman TLS RSA-4096 RHEL 10
PCI DSS v4.0
Req 7, 8, 10
NIST 800-53
AC-2, IA-2, AU-2
SOX ITGC
CC6.1, CC6.2
ISO 27001
A.9, A.12
CIS RHEL 10
6 controls
Total Controls
51 mapped
Repo · On Request
P2 — PAM

PAM Simulation

Enterprise equivalent: CyberArk EPV · BeyondTrust Password Safe

Complete

Production-grade PAM environment using HashiCorp Vault with KV secrets engine, AppRole authentication, Ansible-automated credential rotation, TLS-secured API endpoints, SHA-256 tamper-evident audit logs, and a Flask audit dashboard. Enhanced with Vault Agent Injector on Kubernetes — including root-cause investigation of a silent cert-injection failure masked by a permissive webhook failure policy and swallowed by the rotation script's own error handling, fixed durably via cert-manager with a root → CA → issuer chain and corroborated against a known upstream HashiCorp issue. RBAC and NetworkPolicy hardening caught two real gaps via testing, not review.

HashiCorp Vault AppRole Auth Vault Agent Injector cert-manager Kubernetes · k3s Ansible Python 3.12 TLS RSA-2048 SHA-256 Flask RHEL 10
PCI DSS v4.0
Req 7, 8, 10, 12
NIST 800-53
AC-6, IA-5, AU-9
SOX ITGC
CC6.1–CC6.3, S.404
ISO 27001
A.8.2, A.8.5, A.8.24
HIPAA
§164.308, §164.312
Total Controls
44 mapped
Repo · On Request
P3 — SIEM

Okta AWS SIEM Pipeline

Enterprise equivalent: Splunk ES · Microsoft Sentinel · Okta ThreatInsight

Complete

Hybrid local-to-cloud SIEM pipeline ingesting Okta system logs via a cron-driven EC2 poller (every 5 min, DynamoDB cursor state) into Kinesis Firehose and an S3 data lake. Lambda triggers on EventBridge failed-login rules, generates AI risk narratives via Amazon Bedrock (Claude Sonnet 4.6), and routes alerts via SNS. Multi-region CloudTrail with ApiCallRateInsight captures AWS control plane activity. QuickSight SOC dashboard connected to Athena dataset. Three GitHub Actions workflows: push-triggered deploy, PR validation (fmt + validate + plan), and scheduled daily drift detection — all running on a self-hosted EC2 runner. Full Terraform infrastructure with remote state in S3.

Okta API Amazon Bedrock Kinesis Firehose Lambda (Python 3.12) EventBridge CloudTrail QuickSight S3 Data Lake Athena · Glue DynamoDB Secrets Manager SNS Terraform GitHub Actions EC2 · RHEL 10
PCI DSS v4.0
Req 10.2, 10.6
NIST 800-53
AU-2, AU-9, SI-12
NIST CSF
DE.CM-3, RS.RP-1
SOX ITGC
Continuous monitoring
Stage 1 · On Request Stage 2 · On Request
P4 — Audit

IAM Policy Auditor AI

Enterprise equivalent: Palo Alto Prisma Cloud CSPM · CrowdStrike Falcon CSPM · AWS IAM Access Analyzer

Complete

Audits AWS IAM policies for least-privilege violations via a 13-rule weighted engine — wildcard actions, missing MFA conditions, stale credentials, privilege escalation paths. Bedrock AI risk narratives per finding with Guardrails PII blocking. Async Flask job engine decouples scan execution from the browser. CRITICAL findings publish to the shared P3 SNS topic and S3 data lake. The ITDR Wave extended P4 into a detection-and-response layer: Azure RBAC detection (6 rules, fixture-modeled after confirming no live Azure tenant was reachable — a real infrastructure constraint, documented), JIT time-bound access remediation using the Azure PIM eligible/active state-migration model, Prometheus/Grafana/Alertmanager observability on k3s via Ansible, and shared Alertmanager routing with MIG. A real FP/FN test pass caught two live production bugs before they shipped — a wildcard-prefix check that missed realistic bucket patterns, and a malformed-date parse that silently dropped a credential-staleness check.

Amazon Bedrock AWS IAM · Credential Report Bedrock Guardrails Azure RBAC (fixture) Prometheus · Grafana · Alertmanager Kubernetes · k3s · Ansible Athena · Glue · S3 Flask · ThreadPoolExecutor SQLite Python 3.12 RHEL 10
PCI DSS v4.0
Req 7.2, 8.2, 8.4, 10.5, 10.8
NIST 800-53
AC-6, AC-6(1), IA-5, SI-10, SI-12
NIST CSF
ID.AM-3, PR.AC-1, DE.AE-3
SOX ITGC
CC6.1, CC7.2 — access control evidence
Repo · On Request
GRC1 — Certification

Access Certification Platform

Enterprise equivalent: SailPoint IdentityNow · Saviynt · Any IGA Platform

Complete

AI-hardened MFA certification pipeline pulling live identity and MFA state from Keycloak 26, invoking Bedrock to render CERTIFY/REVOKE verdicts with mandatory PCI DSS Req 8.4.2 citations, writing tamper-evident audit evidence to SQLite, and firing SNS REVOKE alerts. Prompt injection protection and fail-secure REVOKE default on Bedrock error. Enhanced with full Kubernetes deployment, OIDC/Keycloak login gate, green Jenkins CI/CD, NetworkPolicy hardening, shared SNS/Alertmanager alerting path, and a duplicate-campaign race condition fixed using Kubernetes' own atomic name uniqueness guarantee.

Amazon Bedrock Keycloak 26.2.4 Kubernetes · k3s Jenkins CI/CD Prometheus · Alertmanager Bedrock Guardrails SQLite ThreadPoolExecutor Flask SNS Python 3.12
PCI DSS v4.0
Req 8.4.2, 10.5, 10.8
NIST 800-53
AC-2, IA-2, IA-5, SI-10, SI-17
NIST CSF
PR.AC
SOX ITGC
CC6.1 SoD
Repo · On Request
GRC2 — Monitoring

Compliance Monitor

Enterprise equivalent: Qualys Policy Compliance · AWS Security Hub · ServiceNow GRC

Complete

EventBridge → Lambda → Bedrock pipeline detecting AWS Config drift events in real time. XML-isolated prompt engineering blocks indirect injection from raw Config payloads. Concurrent Bedrock inference via ThreadPoolExecutor produces QSA-ready risk narratives with false-positive-free classification. CRITICAL findings publish to the shared SNS topic. Idempotent SQLite evidence store with INSERT OR REPLACE handles overlapping cron windows without duplicates. Flask reviewer dashboard with 30s auto-refresh and JSON API.

Amazon Bedrock EventBridge · Lambda AWS Config Bedrock Guardrails S3 · Athena · Glue SQLite SNS Flask Python 3.12
PCI DSS v4.0
Req 6.4.3, 10.4.1, 10.4.1.1
NIST 800-53
CA-7, SI-4, SI-10, SI-12
NIST CSF
DE.CM, ID.RA
SOX ITGC
Operational effectiveness
Repo · On Request
MIG — IAM · Multicloud

Multicloud Identity Governance & Entitlement Engine

Enterprise equivalent: SailPoint · Saviynt · CrowdStrike Falcon Identity · Prisma Cloud CSPM

Complete

Reconciliation and entitlement engine pulling live state from Okta, AWS IAM, and GCP Cloud Asset Inventory concurrently on a 6-hour cadence — detecting orphaned accounts, inactive credentials, GCP service account key sprawl, identity map drift, and ungoverned service accounts across all three planes, then auto-remediating under a circuit breaker. The ITDR Wave extended this into a full detection-and-response layer: Prometheus/Grafana/Alertmanager/Pushgateway observability on k3s (provisioned via Ansible), shared Alertmanager routing with P4, and a cross-project Athena correlation dashboard joining MIG findings against P4 IAM findings. NHI governance caught the reconciliation engine's own GCP service account as ungoverned in its first live run. A meta-monitoring heartbeat detects pipeline failures invisible to the pipeline itself. Dead-letter alerting ensures SNS failures fail closed rather than crashing mid-run. GCP static hosting for this site is a direct byproduct — Terraform-managed, deployed via WIF-federated GitHub Actions with zero stored credentials. 10 ADRs document every major design decision.

Okta API AWS IAM GCP Cloud Asset Inventory Prometheus · Grafana · Alertmanager Pushgateway · k3s Workload Identity Federation Terraform Ansible ThreadPoolExecutor SQLite · S3 · Athena · Glue SNS · Secrets Manager GitHub Actions CI/CD Python 3.12 RHEL 10 systemd timer
NIST 800-53
AC-2, AC-2(3), AC-6, IA-5, SA-10, CM-2, AU-2
NIST CSF
PR.AC, DE.CM, ID.AM, RS.RP
PCI DSS v4.0
Req 7.2, 8.2.6, 8.3.4, 10.4.1.1
GCP CIS
1.4 — SA key sprawl
ISO 27001:2022
A.5.18, A.8.2, A.8.5
SOX ITGC
CC6.1, CC6.2 — access governance
Repo · On Request

Framework coverage
across the platform.

Framework P1 IAM P2 PAM P3 SIEM P4 Audit GRC1 GRC2 MIG
PCI DSS v4.0 Req 7,8,10 Req 7,8,10,12 Req 10 Req 7,8 Req 7 Req 10 Req 8.3.4, 8.4.2
NIST SP 800-53 r5 AC-2, IA-2 AC-6, IA-5 AU-2, SI-12 AC-6, AC-2 AC-2 CA-7 AC-2(3), AC-6, IA-2(1)
NIST CSF PR.AC PR.AC, PR.IP DE.CM ID.AM PR.AC DE.CM PR.AC, DE.CM, RS.RP
SOX ITGC CC6.1, CC6.2 S.404 Continuous Access ctrl CC6.1 SoD Oper. eff. CC6.1, CC6.2
ISO 27001:2022 A.9, A.12 A.8.2, A.8.24 A.12, A.16 A.9, A.18 A.9 A.18 A.5.18, A.8.2
HIPAA Security Rule §164.308, §164.312 §164.308(a)(3) §164.308(a)(8) §164.308(a)(3),(5)
CIS Benchmarks RHEL 10 GCP 1.4