atc run — حقن الأسرار

الأهم: تُوصّل الأسرار للتطبيق بدون env vars ومن غير أي ملف أو كود يحمل قيمة سرية.

الأعلام

العلمالقيمةالوظيفة
--modefd / tmpfs / envfileطريقة الحقن
--fd3رقم الـ file descriptor
--fd-envSECRET_FDمتغير بيئة يحتوي رقم FD
--tmpfs/tmp/vault-secretsنقطة تثبيت tmpfs
-p, --projectاسم أو NanoIDالمشروع
-e, --envاسمالبيئة
--secretkeyحقن سر محدد فقط

وضع FD — الأكثر أماناً

bash
1atc run --mode fd -- node app.js
2atc run --mode fd --fd-env SECRET_FD -- ./myapp
javascript|app.js
1const fs = require("fs");
2const fd = process.env.SECRET_FD || 3;
3const buf = Buffer.alloc(4096);
4fs.readSync(fd, buf, 0, 4096);
5const secrets = JSON.parse(buf.toString().replace(//g, ""));
6console.log(secrets.DB_PASSWORD);

وضع tmpfs — الأسهل

bash
1atc run --mode tmpfs -- python app.py
python|app.py
1import json, os
2secrets_file = os.getenv("VAULT_SECRETS_FILE", "/tmp/vault-secrets/secrets.json")
3with open(secrets_file) as f:
4 secrets = json.load(f)
5print(secrets["DB_PASSWORD"])

مقارنة الأوضاع

المواصفةfdtmpfsenvfile
الأمان✅ لا يمس القرص🟡 ملف مؤقت🟡 ملف
السهولة⚠️ برمجة بسيطة✅ سهل✅ سهل
الأفضل لـالإنتاجالتطوير/الاختبارالسكربتات
cmd/vault-client/internal/inject/fd.go