Hide secrets from `docker inspect` command (and commit, debug, etc.)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
Línea de trabajo
Start by reading the Docker secrets-engine documentation and tracing how se:// values are resolved into container environment variables; the issue does not name implementation files or tests. Investigate how resolved values reach inspectable container configuration and committed images, then define and test behavior that prevents secret values from persisting or being exposed while preserving the intended runtime use.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I understand this is beyond the scope of the secrets engine (which is primarily for guarding secrets access), but wanted to share my first impressions coming into docker pass, and I suspect other users.
My mental model was images get a se:// pointer, so secrets never get pushed to Hub. But the resolved secret value appears to be written back to disk, survive reference deletion and commited into image metadata.
Not sure what set my expectation. Probably secrets usage in cloud Sandboxes so 'credentials never enter the VM', or maybe 'you no longer need plaintext secrets on disk' in the readme, or 'secrets resolve just before the container starts' and 'the same reference can be reused across environments ... resolve against your local OS keychain in dev and against a prod vault in CI' in the docs docs made me think this was ephemeral runtime injection.
docker pass set db-password=supersecret123
cat > compose.yaml <<'EOF'
services:
db:
image: postgres:alpine
environment:
- POSTGRES_PASSWORD=se://db-password
EOF
docker compose up -d
docker inspect $(docker compose ps -q db) --format '{{json .Config.Env}}'
# ["POSTGRES_PASSWORD=supersecret123", ...] <- plaintext secret stored on disk
docker pass rm db-password
docker commit $(docker compose ps -q db) db:snapshot
docker inspect db:snapshot --format '{{json .Config.Env}}'
# ["POSTGRES_PASSWORD=supersecret123", ...] <- baked into any image you commit or push
Mostly concerned about accidental (agentic or otherwise) push/save, and anyone who pull/load the image reads the resolved secret value without access to the original keychain. Keeping the se:// reference in Config.Env would keep the value out of there but I doubt it's that trivial to solve.
- Lenguaje dominante
- Go
- Estrellas
- 95
- Forks
- 18
- Merge medio
- 7 h 52 min
- PR fusionados (30 d)
- 31
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de docker/secrets-engine
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
docker/secrets-engine#682 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
docker/secrets-engine#665 ·
Los mantenedores suelen responder en 1 día
-
Linux keychain dials a new D-Bus connection per operation, defeating per-entry access confirmationAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
docker/secrets-engine#648 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
docker/secrets-engine#584 · 1 comentario · 2 reacciones ·
Los mantenedores suelen responder en 1 día
-
`GetSecretsRequest` carries no caller context, making project-local plugin backends impossibleAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
docker/secrets-engine#551 · 3 comentarios · 3 reacciones ·
Los mantenedores suelen responder en 1 día
Todos los issues de docker/secrets-engine
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
praetorian-inc/augustus#334 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
TestTOMLBigFileParsesInLinearTime: a 1s wall-clock bound on a 3 MB parse fails under load (1.27s)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
peasant-labs/village#293 ·
Los mantenedores suelen responder en 1 día