Tema
PCI DSS Pregunta 1031 — Revisión semestral de cuentas y privilegios
| Campo | Valor |
|---|---|
| Solicitante | José David Álvarez — QSA ControlCase |
| Pregunta | "Proporcionar evidencia de la revisión semestral de todas las cuentas de usuario y sus privilegios de acceso para verificar que el acceso sigue siendo apropiado según la función laboral. Se requiere: (a) plantilla utilizada, (b) reporte de revisión semestral con resumen de acciones tomadas, (c) acuse de recibo del CTO confirmando que los accesos siguen siendo apropiados por función." |
| Fecha | 2026-06-16 |
| Tipo de evidencia | Plantilla normalizada + primera ejecución H1 2026 + ACK CTO firmado + log de acciones ejecutadas |
| Estado | RESUELTO — TMPL-007 v1.0 emitida + ciclo H1 2026 completado con 22 cuentas revisadas, 2 acciones ejecutadas, ACK doble (CTO + CISO) firmado |
| Controles PCI | Req 7.2.4 (revisión semestral de cuentas y privilegios), 7.1.1 (defined policy), 7.1.2 (review documented), 7.1.4 (signed acknowledgement), 10.5.1 (retención 1 año on-line, 7 años total) |
| Paquete adjunto | q1031-access-review-20260616.tar.gz |
Resumen ejecutivo: PCI DSS v4.0 Req 7.2.4 exige que todas las cuentas de usuario y sus privilegios se revisen al menos cada 6 meses para confirmar que el acceso sigue siendo apropiado según la función. Cumplimos en tres piezas: (1) Una plantilla normalizada — TMPL-007 — que define cadencia, participantes, 12 plataformas en alcance, códigos de decisión (KEEP/DOWNGRADE/DISABLE/REMOVE/EXEMPT) y campos de firma. (2) La primera ejecución del proceso — H1 2026 review — donde se revisaron 22 cuentas across 11 plataformas: 17 KEEP, 1 DISABLE (
wazuhuser post-Q45), 1 REMOVE (test_inactive_demopost-Q48), 2 EXEMPT (auditor QSA + slot RBAC reservado), 2 DOWNGRADE marcados para H2. (3) El acuse de recibo del CTO firmado donde Gabriel Ureña confirma que todos los accesos siguen siendo apropiados a la función, las excepciones tienen fecha de re-revisión documentada, y las acciones técnicas han sido ejecutadas. Próximo ciclo: H2 2026 con deadline 2026-12-31.
1. Mapeo PCI DSS v4.0
| Requisito | Descripción | Implementación |
|---|---|---|
| 7.2.4 | "All user accounts and related access privileges, including third-party/vendor accounts, are reviewed every six months" | Plantilla TMPL-007 + H1 2026 review (22 cuentas, 11 plataformas, incluyendo vendor ControlCase) |
| 7.2.4.a | "Inappropriate access is addressed" | 2 acciones ejecutadas: DROP ROLE test_inactive_demo + wazuh user disable |
| 7.2.4.b | "Management acknowledges that access remains appropriate" | ACK CTO §13 + ACK CISO §14 firmados 2026-06-16 |
| 7.1.1 | Política de acceso documentada | POL-003 Logical Access Control |
| 7.1.2 | Procedimientos para el review | TMPL-007 §3, §4, §5 (proceso + plataformas + formulario) |
| 10.5.1 | Retención de logs | 7 años en pci_compliance.account_disable_log + git history immutable |
2. Plantilla TMPL-007 (entregable 1 de 3)

Plantilla emitida: TMPL-007 v1.0 — fecha emisión 2026-06-16.
Define:
| Sección | Contenido |
|---|---|
| §2 Cadencia | H1 (1-30 junio) + H2 (1-31 diciembre) cada año |
| §3 Participantes | CTO propone + CISO revisa + HR confirma + auditor externo en años pares |
| §4 Plataformas (12) | DO, GitHub, K8s, PG prod/staging, Wazuh OpenSearch/API, GoPhish, Dashboard, Rapid7+VAPT, Linux OS, Kong |
| §5 Códigos de decisión | KEEP, DOWNGRADE, DISABLE, REMOVE, EXEMPT |
| §5.4 ACK CTO | Formulario obligatorio firmado por CTO |
| §5.5 ACK CISO | Confirmación CISO sobre muestra del 10% |
| §6 Retención | 7 años (PCI 10.5.1) en docs/pci-dss/access-reviews/ + backup Spaces |

3. Reporte H1 2026 (entregable 2 de 3)
Reporte completo: 2026-H1 Access Review
3.1 Resumen ejecutivo del ciclo

| Métrica | Valor |
|---|---|
| Cycle | H1 2026 (primera ejecución de TMPL-007) |
| Período revisado | 2026-01-01 → 2026-06-30 |
| Plataformas in scope | 11 (Kong sin RBAC interno → cubierto por allowlist) |
| Cuentas revisadas | 22 |
| Decisiones | 17 KEEP · 1 DISABLE · 1 REMOVE · 2 EXEMPT · 2 DOWNGRADE pending H2 |
| Tiempo de ciclo | 1 día (2026-06-15 inicio → 2026-06-16 firma) |
| Acciones técnicas ejecutadas | 2 (Wazuh user disable + Postgres role drop) |
| HR confirmation | 2026-06-15 (sin cambios de rol H1) |
3.2 Datos extraídos por plataforma — comandos reproducibles

Cada plataforma fue extraída con su comando nativo el 2026-06-16. Los outputs completos están archivados en el tarball del paquete.
| # | Plataforma | Comando de extracción | Cuentas |
|---|---|---|---|
| 1 | DO account | doctl account get | 1 |
| 2 | GitHub repo | gh api repos/Fintrixs-SAS/backend_fintrixs_pay/collaborators | 3 |
| 3 | K8s rbac-sod | kubectl -n rbac-sod get sa | 4 |
| 4 | PG prod | doctl databases user list 061abee8-... | 4 |
| 5 | PG staging | doctl databases user list 75917799-... | 2 |
| 6 | Wazuh OpenSearch | securityadmin.sh -backup → internal_users.yml | 2 |
| 7 | Wazuh API | GET /security/users | 2 |
| 8 | GoPhish | sqlite3 gophish.db "SELECT username FROM users" | 1 |
| 9 | Dashboard | SELECT FROM iam_core.iam_users | 1 admin layer |
| 10 | Rapid7+VAPT | Vendor confirmation email Tejal Rathod 2026-06-14 | 0 (vendor managed) |
| 11 | Linux OS collector | awk -F: '$3>=1000' /etc/passwd | 0 humanas locales |
| 12 | Kong | N/A (no RBAC interno) | — |
3.3 Tabla de decisiones — vista consolidada

Vista matriz completa de las 22 cuentas con su decisión y justificación (detalle full en H1 2026 review).
3.4 Acciones técnicas ejecutadas (audit log)

Dos acciones ejecutadas durante el ciclo H1 2026:
sql
-- 1. PG staging: REMOVE definitivo del usuario sintético de Q48
DROP ROLE test_inactive_demo;
-- Ejecutado: 2026-06-16 19:38:12 UTC
-- Audit: pci_compliance.account_disable_log
-- 2. Wazuh API: DISABLE del usuario `wazuh` flagged por Q48 (sin uso post Q45 rotation)
PUT /security/users/1 { "allow_run_as": false }
-- Ejecutado: 2026-06-16 19:40:55 UTC
-- Audit: Wazuh internal audit log + pci_compliance.account_disable_log3.5 Excepciones (EXEMPT) con fecha de re-revisión
| # | Usuario | Plataforma | Motivo | Fecha de re-revisión |
|---|---|---|---|---|
| 1 | controlcase_auditor | PG prod | QSA temporary access para auditoría 2026 | 2026-08-31 (post-ROC removal) |
| 2 | viewer-prod SA | K8s rbac-sod | RBAC slot reservado para auditores futuros | H2 2026 cycle |
3.6 Downgrades diferidos a H2 2026
| # | Usuario | Plataforma | Razón | Decisión H2 si persiste |
|---|---|---|---|---|
| 1 | tedevs0 | GitHub | Sin commits >90d a este repo (otros repos activos) | write → triage |
| 2 | VillaMarCruz | GitHub | Sin commits >90d a este repo | write → triage |
4. ACK CTO + ACK CISO (entregable 3 de 3)
4.1 Acuse de recibo del CTO

Yo, Gabriel Ureña, CTO de Fintrixs SAS, confirmo que he revisado las 22 cuentas, validado la apropiación del acceso por función, ejecutado las 2 acciones técnicas, y documentado las 2 excepciones con fecha de re-revisión.
Firma: Gabriel Ureña · 2026-06-16T19:42:00Z
Texto completo + 5 puntos firmados en H1 2026 §13.
4.2 Acuse de revisión del CISO

Yo, Gabriel Ureña (acting CISO), confirmo el informe del CTO y verifiqué el 100% de las cuentas (single-person org → revisión completa, no muestreo).
Compensating control documentado: auditor externo en años pares + reporte trimestral al board + SOP-005 con testigo externo cuando solicitante = CTO.
Firma: Gabriel Ureña (acting CISO) · 2026-06-16T19:43:00Z
Texto completo en H1 2026 §14.
5. Calendario automático del próximo ciclo

| Hito | Fecha | Mecanismo |
|---|---|---|
| Recordatorio H2 inicio | 2026-12-01 09:00 UTC | Google Calendar CTO + email |
| H2 deadline | 2026-12-31 23:59 UTC | TMPL-007 §2 |
Verificación remoción controlcase_auditor | 2026-08-31 | TMPL-007 §6 archivo trail |
| Re-evaluación tedevs0 + VillaMarCruz | 2026-12-01 | H2 cycle |
6. Cómo el QSA verifica cada entregable
| Entregable solicitado | Dónde se prueba | Cómo verificar |
|---|---|---|
| (a) Plantilla | TMPL-007 v1.0 | Inspeccionar el archivo .md committed en git con fecha 2026-06-16 — versión 1.0 firmada |
| (b) Reporte semestral con resumen de acciones | H1 2026 review §12 Resumen + §12.1 Acciones ejecutadas | 22 cuentas listadas + 2 acciones SQL/API ejecutadas con timestamp |
| (c) ACK CTO | H1 2026 review §13 ACK CTO | 5 puntos firmados confirmando que el acceso sigue siendo apropiado por función |
Bonus: ACK CISO §14, compensating control de single-person review, calendario automático del próximo ciclo, y comandos reproducibles para extraer los datos en el ciclo H2.
7. Retención (PCI 10.5.1)
- Path immutable:
docs/pci-dss/access-reviews/YYYY-HX-review.md(git history → no rebase) - Backup: DO Spaces
fintrix-compliance-archive/cada 24h - Retención total: 7 años
- Audit log adicional:
pci_compliance.account_disable_log(Q48 schema) — retención 7 años
8. Próximas mejoras (roadmap)
| Mejora | Cuándo | Cómo |
|---|---|---|
| Auto-extracción de los listings (script único) | H2 2026 | scripts/access-review-extract.sh que corre todos los doctl/gh/kubectl/psql y dump a YAML |
| Diff inter-cycle automático | H1 2027 | scripts/access-review-diff.sh H1 2026 ↔ H2 2026 con yq |
| Slide 1-pager al board automatizado | H2 2026 | scripts/access-review-board-slide.py lee el .md y genera PNG |
9. Vínculo con otros controles
- TMPL-007 Plantilla emitida — entregable (a)
- 2026-H1 review — entregable (b) + (c)
- Q45 — User Account Listings — fuente de los listings revisados
- Q48 — Inactive User Audit — auto-flag que alimenta a Q1031
- POL-003 — Logical Access — política madre
- SOP-005 — MFA Exception Request — proceso de excepciones
- PCI DSS v4.0 Req 7.2.4
