Secretos del piloto de captura privada¶
Estado: plantilla; no contiene valores y no autoriza un despliegue.
Nombres canónicos¶
| Docker secret | Montaje en el contenedor | Consumidor |
|---|---|---|
eppa_private_capture_s3_access_key |
/run/secrets/eppa_private_capture_s3_access_key |
API y worker |
eppa_private_capture_s3_secret_key |
/run/secrets/eppa_private_capture_s3_secret_key |
API y worker |
eppa_private_capture_kek |
/run/secrets/eppa_private_capture_kek |
API y worker; exactamente 32 bytes |
eppa_minio_bootstrap_access_key |
no se monta en runtime | operador de bootstrap |
eppa_minio_bootstrap_secret_key |
no se monta en runtime | operador de bootstrap |
El JWT existente conserva su propio secreto. Las credenciales root/admin de MinIO nunca se montan en la API, el frontend ni el worker.
Plantilla Compose sin valores¶
Los archivos host viven fuera del checkout, con propietario del servicio y
modo 0400. La misma definición se puede montar en el color azul o verde:
services:
eppa-private-capture-candidate:
secrets:
- eppa_private_capture_s3_access_key
- eppa_private_capture_s3_secret_key
- eppa_private_capture_kek
environment:
EPPA_PRIVATE_CAPTURE_S3_ACCESS_KEY_FILE: /run/secrets/eppa_private_capture_s3_access_key
EPPA_PRIVATE_CAPTURE_S3_SECRET_KEY_FILE: /run/secrets/eppa_private_capture_s3_secret_key
EPPA_PRIVATE_CAPTURE_KEK_FILE: /run/secrets/eppa_private_capture_kek
secrets:
eppa_private_capture_s3_access_key:
file: ${EPPA_PRIVATE_CAPTURE_S3_ACCESS_KEY_HOST_FILE:?required}
eppa_private_capture_s3_secret_key:
file: ${EPPA_PRIVATE_CAPTURE_S3_SECRET_KEY_HOST_FILE:?required}
eppa_private_capture_kek:
file: ${EPPA_PRIVATE_CAPTURE_KEK_HOST_FILE:?required}
Variables no secretas obligatorias:
EPPA_PRIVATE_CAPTURE_ENABLED=false
EPPA_PRIVATE_CAPTURE_TTL_SECONDS=86400
EPPA_PRIVATE_CAPTURE_BUCKET=eppa-private-capture-pilot
EPPA_PRIVATE_CAPTURE_S3_ENDPOINT=https://minio.internal.example
EPPA_PRIVATE_CAPTURE_S3_REGION=us-east-1
EPPA_PRIVATE_CAPTURE_KEY_VERSION=v1
EPPA_PRIVATE_CAPTURE_ALLOWED_ORIGIN=https://eppa-pilot.example
EPPA_PRIVATE_CAPTURE_MAX_BYTES=<limite-aprobado>
EPPA_PRIVATE_CAPTURE_MAX_PIXELS=<limite-aprobado>
EPPA_PRIVATE_CAPTURE_ENABLED queda en false hasta que todos los gates del
runbook estén aprobados. No se usan variables NEXT_PUBLIC_* para secretos.
Rotación y revocación¶
- Crear una identidad runtime nueva con la misma política acotada.
- Montar sus secretos sólo en el color candidato.
- Probar CRUD y purge con un fixture sintético.
- Conmutar tráfico; verificar que el color anterior ya no recibe sesiones.
- Deshabilitar la identidad anterior y confirmar que sus requests reciben
AccessDenied. - Destruir las copias host anteriores según el procedimiento del vault.
La KEK requiere un plan de re-encriptado o purga total antes de retirarla. No se elimina una versión de KEK mientras exista un objeto cifrado que la referencie.