CP2A2.2B: Fix worker UID/GID to 10000/10000 (hermes user in base image) - non-root hardening correction
This commit is contained in:
parent
7a4220d86d
commit
a0c388ab18
4 changed files with 9 additions and 9 deletions
|
|
@ -5,7 +5,7 @@
|
|||
# Basis: nousresearch/hermes-agent:latest (Hermes oneshot `hermes -z`).
|
||||
#
|
||||
# HAERTUNG:
|
||||
# - non-root hermes-User (UID 10010 / GID 10000, im Basis-Image definiert)
|
||||
# - non-root hermes-User (UID 10000 / GID 10000, im Basis-Image definiert)
|
||||
# - read-only rootfs (docker-compose: read_only: true)
|
||||
# - cap_drop ALL, no-new-privileges (docker-compose)
|
||||
# - kein Docker-Socket, keine Host-Root-Mounts, keine Host-Namespaces
|
||||
|
|
@ -34,12 +34,12 @@ COPY worker-tick.sh /opt/l1-worker/worker-tick.sh
|
|||
COPY worker-config.yaml /opt/l1-worker/worker-config.yaml
|
||||
|
||||
# State-Verzeichnis (worker-owned, wird als Volume gemountet)
|
||||
# Der hermes-User (UID 10010) ist der Worker. Das State-Volume wird im
|
||||
# Der hermes-User (UID 10000) ist der Worker. Das State-Volume wird im
|
||||
# Compose als bind-mount von /opt/l1-worker-state gemountet (Host-root-angelegt,
|
||||
# auf 10010:10000 gechownt) — nur der Worker kann schreiben.
|
||||
# auf 10000:10000 gechownt) — nur der Worker kann schreiben.
|
||||
RUN mkdir -p /opt/l1-worker/state && chown -R hermes:hermes /opt/l1-worker
|
||||
|
||||
# Non-root: der Worker laeuft als hermes-User (UID 10010 / GID 10000).
|
||||
# Non-root: der Worker laeuft als hermes-User (UID 10000 / GID 10000).
|
||||
USER hermes:hermes
|
||||
|
||||
# Inert idle Entrypoint: KEIN autonomer Loop, KEIN Tick-Start.
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ Report: NUR PRESENT/ABSENT. NIEMALS Secret-Werte ausgeben.
|
|||
|
||||
## 4. Container-Hardening
|
||||
|
||||
- non-root UID/GID: hermes-User (UID 10010 / GID 10000)
|
||||
- non-root UID/GID: hermes-User (UID 10000 / GID 10000)
|
||||
- read-only rootfs
|
||||
- cap_drop ALL
|
||||
- no-new-privileges
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ cd "$(dirname "$0")"
|
|||
|
||||
echo "=== CP2A2.2B L1 WORKER DEPLOY ==="
|
||||
|
||||
# 1. Worker-State-Volume vorbereiten (worker-owned, UID 10010)
|
||||
# Das Volume wird als named volume gemountet; der hermes-User (UID 10010)
|
||||
# 1. Worker-State-Volume vorbereiten (worker-owned, UID 10000)
|
||||
# Das Volume wird als named volume gemountet; der hermes-User (UID 10000)
|
||||
# ist der Worker und besitzt das State-Verzeichnis.
|
||||
echo "[1/4] Worker-State-Volume vorbereiten..."
|
||||
docker volume create l1-worker-state >/dev/null 2>&1 || true
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
# `hermes-red-queen` bleibt UNVERAENDERT (wird hier NICHT referenziert).
|
||||
#
|
||||
# HAERTUNG:
|
||||
# - non-root hermes-User (UID 10010 / GID 10000, im Basis-Image definiert)
|
||||
# - non-root hermes-User (UID 10000 / GID 10000, im Basis-Image definiert)
|
||||
# - read-only rootfs
|
||||
# - cap_drop ALL, no-new-privileges
|
||||
# - kein Docker-Socket, keine Host-Root-Mounts, keine Host-Namespaces
|
||||
|
|
@ -38,7 +38,7 @@ services:
|
|||
tmpfs:
|
||||
- /tmp
|
||||
volumes:
|
||||
# Worker-eigenes persistentes State-Volume (worker-owned, UID 10010).
|
||||
# Worker-eigenes persistentes State-Volume (worker-owned, UID 10000).
|
||||
# Nur der Worker kann schreiben. Bestehende interaktive RQ darf dieses
|
||||
# Volume NICHT schreiben (separate Security Domain).
|
||||
- l1-worker-state:/opt/l1-worker/state
|
||||
|
|
|
|||
Loading…
Reference in a new issue