Moatgator Vault
آپ کے بیک اینڈ، CI اور موبائل ایپ کے سیکرٹس کے لیے ایک جگہ
جہاں پہلے ویلیو ہوتی تھی وہاں mg:// ریفرنس رکھیں۔ CLI، GitHub Actions اور موبائل SDK چلتے وقت اسے حل کرتے ہیں، اور آپ کی ایپ کو سیکرٹ صرف اسی ڈیوائس پر ملتا ہے جو Attest میں کامیاب ہوئی ہو۔
Startup پلان سے شامل۔
$ moatgator secrets run --env-file .env.tpl -- npm start$ moatgator secrets inject -i .env.tpl -o .env$ moatgator secrets get mg://api/prod/DATABASE_URLmg:// ریفرنسز
ویلیو نہیں، ریفرنس کمٹ کریں
ریفرنس ایک پروجیکٹ، ایک انوائرنمنٹ اور ایک سیکرٹ کا نام بتاتا ہے، جیسے mg://api/prod/DATABASE_URL۔ اسے Git میں رکھنا محفوظ ہے: صرف رسائی رکھنے والی شناخت ہی اسے ویلیو میں بدل سکتی ہے۔
01
آپ کی ریپوزٹری میں ایک .env.tpl
ریفرنسز والا ایک ٹیمپلیٹ رکھیں۔ moatgator secrets inject فائل .env کو 0600 اجازتوں کے ساتھ لکھتا ہے اور --force کے بغیر کسی موجودہ فائل کو اوور رائٹ نہیں کرتا۔
.env.tplمثال # .env.tpl: safe to commitDATABASE_URL=mg://api/prod/DATABASE_URLSTRIPE_KEY=mg://api/prod/STRIPE_KEYSENTRY_DSN=mg://api/prod/SENTRY_DSN02
moatgator secrets run
آپ کی کمانڈ کو سیکرٹس کے ساتھ بطور انوائرنمنٹ ویری ایبلز چلاتا ہے اور کمانڈ کے آؤٹ پٹ میں ان کی ویلیوز چھپا دیتا ہے۔ moatgator secrets get ایک ریفرنس پڑھتا ہے۔
terminalمثال $ moatgator secrets run --env-file .env.tpl -- npm start$ moatgator secrets inject -i .env.tpl -o .env$ moatgator secrets get mg://api/prod/DATABASE_URL03
ایپ میں وہی ریفرنس
Android SDK میں، Moatgator.vault.get("mg://mobile/prod/PARTNER_KEY") وہ انوائرنمنٹ پڑھتا ہے جو کنسول میں ایپ سے منسلک ہے۔ ویلیو کبھی APK میں شامل نہیں ہوتی۔
Kotlinمثال // Android (Kotlin), off the main threadMoatgator.startSession(playIntegrityProvider)val key = Moatgator.vault.get("mg://mobile/prod/PARTNER_KEY")
پروجیکٹس، انوائرنمنٹس اور ورژنز
پروجیکٹس اور انوائرنمنٹس
ہر پروجیکٹ dev، staging اور prod کے ساتھ شروع ہوتا ہے۔ ضرورت ہو تو اپنے انوائرنمنٹس شامل کریں۔
وراثت اور اوور رائیڈ
ایک انوائرنمنٹ دوسرے سے وراثت لے سکتا ہے، تین سطحوں تک۔ اسی نام کا سیکرٹ وراثت میں ملے سیکرٹ کو اوور رائیڈ کر دیتا ہے۔
محفوظ انوائرنمنٹس
prod محفوظ حالت میں شروع ہوتا ہے: صرف مالکان اور ایڈمنز ہی اس کی ویلیوز پڑھ سکتے ہیں یا اس میں لکھ سکتے ہیں۔
ورژنز اور رول بیک
ہر تبدیلی ہسٹری کے ساتھ ایک ورژن بناتی ہے۔ رول بیک ایک نیا ورژن بناتا ہے، اس لیے ہسٹری کبھی دوبارہ نہیں لکھی جاتی۔
فوری منسوخی
کسی سیکرٹ یا سروس ٹوکن کو منسوخ کریں تو اگلی بار پڑھنے کی درخواست مسترد ہو جاتی ہے، میعاد ختم ہونے کی تاریخ کا انتظار کیے بغیر۔
رولز
مالک، ایڈمن، ڈیولپر اور ریڈر کے رولز طے کرتے ہیں کہ کون ویلیوز دیکھ سکتا ہے اور کون انہیں بدل سکتا ہے۔
صرف تصدیق شدہ ڈیوائسز پر
وہی سیکرٹ، آپ کی موبائل ایپ کو صرف اس ڈیوائس پر پہنچایا جاتا ہے جو Attest میں کامیاب ہوئی ہو
سیکرٹس مینیجرز عموماً سرورز، ڈیولپرز اور CI کے کام آتے ہیں۔ Vault آپ کے صارفین کے ہاتھ میں موجود ایپ کے بھی کام آتا ہے: SDK رن ٹائم پر درخواست کرتا ہے، API ڈیوائس کا Attest جانچتی ہے (Play Integrity یا App Attest، ساتھ میں Moatgator کے RASP اشارے) اور ویلیو کو اس سیشن کی ایک عارضی کلید کے لیے انکرپٹ کر کے بھیجتی ہے۔ بائنری میں کچھ بھی شامل نہیں ہوتا۔
SDK ویلیو کو صرف میموری میں رکھتا ہے، کبھی ڈسک یا لاگز میں نہیں۔ mg:// ریفرنسز Android SDK میں دستیاب ہیں۔
ہر سیکرٹ کے لیے پالیسیاں
- کم از کم فیصلہہر سیکرٹ کے لیے Attest کا سب سے نچلا فیصلہ منتخب کریں جسے وہ سیکرٹ مل سکے۔
- پلیٹ فارم کی تصدیق لازمیپلیٹ فارم کی تصدیق کا نتیجہ لازمی کریں، صرف SDK کے اپنے اشارے کافی نہ ہوں۔
- تصدیق کی زیادہ سے زیادہ عمرجب ڈیوائس کی تصدیق آپ کی اجازت سے زیادہ پرانی ہو تو سیکرٹ دینے سے انکار کریں۔
CI اور سرورز
آپ کے CI میں کوئی طویل مدتی ٹوکن محفوظ نہیں
GitHub Action moatgator-hq/github-action/vault جاب کے OIDC ٹوکن کے بدلے صرف پڑھنے والا ایک ٹوکن دیتا ہے جو 15 منٹ تک چلتا ہے۔ pull requests کو کبھی ٹوکن نہیں ملتا۔ جہاں OIDC دستیاب نہ ہو، وہاں سروس ٹوکن استعمال کریں۔
- سروس ٹوکنز (mgvt_…) صرف پڑھنے کے لیے ہیں اور ایک پروجیکٹ اور آپ کے منتخب کردہ انوائرنمنٹس سے بندھے ہوتے ہیں۔
- میعاد لازمی ہے: بطور ڈیفالٹ 90 دن، زیادہ سے زیادہ ایک سال۔
- ویلیوز جاب لاگ میں ماسک کی جاتی ہیں اور کبھی اسٹیپ آؤٹ پٹس نہیں بنتیں۔
- جو ریفرنس حل نہ ہو وہ کچھ بھی ایکسپورٹ کیے بغیر اسٹیپ کو ناکام کر دیتا ہے۔
permissions: { contents: read, id-token: write }steps: - uses: moatgator-hq/github-action/vault@v1 with: project-id: vpj_… secrets: | DATABASE_URL=mg://api/prod/DATABASE_URL - run: ./deploy.sh # $DATABASE_URL, *** in the logسنک اور روٹیشن
سیکرٹس وہاں بھیجیں جہاں آپ ڈیپلائے کرتے ہیں، اور انہیں مقررہ وقت پر روٹیٹ کریں
ایک سنک کسی انوائرنمنٹ کو، وراثت سمیت، GitHub Actions سیکرٹس، Railway یا Vercel میں کاپی رکھتا ہے۔ یہ بنتے وقت چلتا ہے، اور پھر اس انوائرنمنٹ میں یا جس انوائرنمنٹ سے وہ وراثت لیتا ہے اس میں ہر تبدیلی کے بعد دوبارہ چلتا ہے۔
GitHub Actions سیکرٹس
کسی ریپوزٹری یا GitHub انوائرنمنٹ میں سنک کریں۔ ہر ویلیو Moatgator سے نکلنے سے پہلے ریپوزٹری کی پبلک کلید سے انکرپٹ کی جاتی ہے۔
Railway
کسی Railway پروجیکٹ اور انوائرنمنٹ کے ویری ایبلز میں، یا کسی ایک سروس کے ویری ایبلز میں سنک کریں۔
Vercel
کسی Vercel پروجیکٹ کے production، preview یا development ویری ایبلز میں سنک کریں، جو انکرپٹڈ ویری ایبلز کے طور پر محفوظ ہوتے ہیں۔
واضح اجازت اور اسٹیٹس
آپ ہر ڈیسٹینیشن کی تصدیق کرتے ہیں اور اسے صرف اسی ڈیسٹینیشن کا ٹوکن دیتے ہیں، جو انکرپٹ کر کے محفوظ ہوتا ہے۔ ہر سنک دکھاتا ہے کہ وہ آخری بار کب چلا، اس نے کتنے سیکرٹس لکھے اور کوئی خرابی ہوئی یا نہیں۔
شیڈولڈ روٹیشن
- مقررہ وقت پر نئی رینڈم ویلیوان سیکرٹس کے لیے جو صرف آپ کی کمپنی استعمال کرتی ہے، جیسے HMAC کلیدیں اور سیشن سیکرٹس: Moatgator نئی ویلیو بناتا ہے، ایک ورژن بناتا ہے اور سنکس چلاتا ہے۔
- دوسرے پرووائیڈرز کی کلیدوں کے لیے یاد دہانیکسی دوسری سروس کی جاری کردہ کلید کے لیے، وقت آنے پر مالکان اور ایڈمنز کو ای میل ملتی ہے، اور جب تک نئی ویلیو محفوظ نہ ہو، کنسول روٹیشن کو تاخیر شدہ دکھاتا ہے۔
سنک ڈیسٹینیشن میں صرف لکھتا ہے، اور وہاں سے صرف وہی سیکرٹس حذف کرتا ہے جو اس نے خود لکھے تھے۔ سنک حذف کرنے سے ڈیسٹینیشن جیسی ہے ویسی ہی رہتی ہے۔
ہر ادارے کے لیے الگ انکرپشن، ہر بار پڑھنے کا آڈٹ
ہر ٹیننٹ کے لیے انویلپ انکرپشن
ہر ادارے کی اپنی کلید ہوتی ہے، جسے ایک ماسٹر کلید سے ریپ کیا جاتا ہے۔
اپنی جگہ سے بندھا ہوا سائفر ٹیکسٹ
ہر سائفر ٹیکسٹ اپنے پروجیکٹ، انوائرنمنٹ، نام اور ورژن سے بندھا ہوتا ہے، اس لیے اسے کسی دوسرے سیکرٹ میں منتقل نہیں کیا جا سکتا۔
ویلیوز لاگز سے باہر رہتی ہیں
سیکرٹ ویلیوز کبھی ہمارے لاگز میں نہیں لکھی جاتیں، اور CLI اور Action انہیں آپ کے آؤٹ پٹ میں چھپا دیتے ہیں۔
ہر بار پڑھنے کا آڈٹ ٹریل
ہر بار پڑھنے پر: کس نے پڑھا، کہاں سے، کون سا ورژن اور نتیجہ۔
موازنہ
Moatgator Vault، 1Password اور Doppler
1Password اور Doppler جانے مانے سیکرٹس مینیجرز ہیں، اور دونوں وہ بہت کچھ کرتے ہیں جو Vault کرتا ہے۔ جدول دکھاتی ہے کہ ہر ایک کہاں کھڑا ہے، اور ان کے بارے میں ہر خانے کے ساتھ ایک عوامی ماخذ اور وہ تاریخ دی گئی ہے جب ہم نے اسے جانچا۔ Vault لوگوں کے لیے پاس ورڈ مینیجر نہیں: اس کی توجہ ایپس، CI اور موبائل ڈیوائسز پر ہے۔
| صلاحیت | Moatgator Vault | 1Password | Doppler |
|---|---|---|---|
| ویلیوز کی جگہ ریفرنسز | mg://project/environment/NAME، موبائل SDK میں بھی | 1 op://vault/item/field | جزوی23 Doppler کے اندر ${…} ریفرنسز؛ فائلوں کے لیے {{.NAME}} ٹیمپلیٹس |
| سیکرٹس کو انوائرنمنٹ ویری ایبلز بنا کر کمانڈ چلانا | آؤٹ پٹ میں ویلیوز چھپی رہتی ہیں | 4 op run، آؤٹ پٹ میں ویلیوز بطور ڈیفالٹ ماسک | 56 doppler run؛ CLI کے لیے آؤٹ پٹ ماسکنگ دستاویزی نہیں |
| ٹیمپلیٹ سے فائل بنانا | فائل 0600 اجازتوں کے ساتھ لکھی جاتی ہے | 7 op inject | 3 secrets substitute اور --mount |
| وراثت والے انوائرنمنٹس | 3 سطحوں تک، نام کے ذریعے اوور رائیڈ | جزوی8 Environments موجود ہیں، ایک دوسرے سے آزاد | 910 branch configs روٹ کنفیگ سے وراثت لیتے ہیں؛ کنفیگ کی وراثت Team اور Enterprise پر |
| ورژن ہسٹری اور رول بیک | رول بیک نیا ورژن بناتا ہے | 11 آئٹم ہسٹری اور بحالی | 12 لاگز سے رول بیک |
| میعاد کے ساتھ محدود دائرے والے مشین ٹوکنز | صرف پڑھنے کے لیے، ہر پروجیکٹ اور انوائرنمنٹ کے لیے، میعاد لازمی | 1314 service accounts، ہر vault کی اجازتوں اور اختیاری میعاد کے ساتھ | 15 ہر config کے لیے service tokens، اختیاری میعاد |
| ٹوکن کی فوری منسوخی | 16 | 15 | |
| OIDC کے ساتھ CI، محفوظ کردہ ٹوکن کے بغیر | GitHub Actions، 15 منٹ کا ٹوکن | جزوی1718 load-secrets-action محفوظ کردہ ٹوکن استعمال کرتا ہے؛ OIDC کے ساتھ Credential Broker پبلک پریویو میں | 196 service account identities، Team اور Enterprise پلانز |
| GitHub Actions، Railway اور Vercel میں سنک | ہر تبدیلی کے بعد؛ صرف لکھتا ہے، صرف اپنا لکھا ہوا حذف کرتا ہے | جزوی820 Environments کا AWS Secrets Manager میں سنک (beta)؛ GitHub، Railway اور Vercel نہیں ملے | 2122 GitHub، Vercel اور Railway انٹیگریشنز سیکرٹس خود بخود بھیجتی ہیں |
| شیڈولڈ روٹیشن | جزوی آپ کے اپنے سیکرٹس کے لیے نئی رینڈم ویلیو؛ تھرڈ پارٹی کلیدوں کے لیے ای میل یاد دہانی | عوامی دستاویزات میں نہیں ملا2316 service account ٹوکنز ہاتھ سے روٹیٹ ہوتے ہیں؛ محفوظ سیکرٹس کی شیڈولڈ روٹیشن نہیں ملی | 24 Team اور Enterprise پر سپورٹ شدہ سروسز، جیسے ڈیٹا بیسز، کی خودکار روٹیشن |
| رولز اور محفوظ پروڈکشن | مالک، ایڈمن، ڈیولپر اور ریڈر؛ prod محفوظ | 258 vault اور Environment کی اجازتیں | 26 پروجیکٹ اور انوائرنمنٹ رولز |
| ہر سیکرٹ کو پڑھنے کا آڈٹ | کس نے، کہاں سے، ورژن اور نتیجہ | 27 1Password Business پر استعمال کی رپورٹس | جزوی28 ایکسیس لاگ ہر ایکٹر کے لیے پہلی اور تازہ ترین ریڈ رکھتا ہے |
| موبائل ایپ کو ترسیل، صرف تصدیق شدہ ڈیوائس پر | Attest کے ساتھ RASP، ہر سیشن کے لیے انکرپٹڈ | عوامی دستاویزات میں نہیں ملا2930 SDK اور Connect کی دستاویزات میں نہیں ملا | عوامی دستاویزات میں نہیں ملا3121 SDK اور انٹیگریشن کی دستاویزات میں نہیں ملا |
1Password کہاں مضبوط ہے
ماخذ
- 1. 1Password CLI — Secret references · جانچ کی تاریخ
- 2. Doppler — Secrets (referencing) · جانچ کی تاریخ
- 3. Doppler — Secret injection with templates · جانچ کی تاریخ
- 4. 1Password CLI — op run · جانچ کی تاریخ
- 5. Doppler — Accessing secrets (run, --mount) · جانچ کی تاریخ
- 6. Doppler — GitHub OIDC examples · جانچ کی تاریخ
- 7. 1Password — Load secrets into config files (op inject) · جانچ کی تاریخ
- 8. 1Password Environments · جانچ کی تاریخ
- 9. Doppler — Branch configs · جانچ کی تاریخ
- 10. Doppler — Config inheritance · جانچ کی تاریخ
- 11. 1Password — View and restore previous versions of items · جانچ کی تاریخ
- 12. Doppler — Versioning · جانچ کی تاریخ
- 13. 1Password CLI — op service-account · جانچ کی تاریخ
- 14. 1Password CLI — op connect · جانچ کی تاریخ
- 15. Doppler — Service tokens · جانچ کی تاریخ
- 16. 1Password — Manage service accounts · جانچ کی تاریخ
- 17. 1Password — GitHub Actions (load-secrets-action) · جانچ کی تاریخ
- 18. 1Password Credential Broker — GitHub Actions (public preview) · جانچ کی تاریخ
- 19. Doppler — Service account identities (OIDC) · جانچ کی تاریخ
- 20. 1Password — Sync Environments to AWS Secrets Manager (beta) · جانچ کی تاریخ
- 21. Doppler — Integrations · جانچ کی تاریخ
- 22. Doppler — GitHub Actions integration · جانچ کی تاریخ
- 23. 1Password Secrets Automation · جانچ کی تاریخ
- 24. Doppler — Secrets rotation · جانچ کی تاریخ
- 25. 1Password — Create, share, and manage vaults · جانچ کی تاریخ
- 26. Doppler — Project permissions · جانچ کی تاریخ
- 27. 1Password — Reports (usage reports) · جانچ کی تاریخ
- 28. Doppler — Access logs · جانچ کی تاریخ
- 29. 1Password SDKs · جانچ کی تاریخ
- 30. 1Password Connect · جانچ کی تاریخ
- 31. Doppler — Future SDKs and integration roadmap · جانچ کی تاریخ
- 32. 1Password — About the 1Password security model · جانچ کی تاریخ
- 33. 1Password — About your Secret Key · جانچ کی تاریخ
- 34. Doppler — Security fact sheet · جانچ کی تاریخ
- 35. Doppler — Pricing · جانچ کی تاریخ
1Password اور Doppler اپنے مالکان کے ٹریڈ مارکس ہیں، جن کا نام صرف موازنہ کی گئی پروڈکٹس کی شناخت کے لیے لیا گیا ہے۔ ان کے بارے میں ہم جو کہتے ہیں وہ دکھائی گئی تاریخ پر ان کی عوامی دستاویزات سے لیا گیا ہے۔ “نہیں ملا” کا مطلب ہے کہ ہمیں یہ حوالہ دیے گئے صفحات میں نہیں ملا، یہ نہیں کہ پروڈکٹ میں یہ موجود نہیں۔ اگر کچھ بدل گیا ہو تو ہمیں لکھیں، ہم اسے درست کر دیں گے۔
پلانز
Vault، Startup، Scale اور Enterprise پلانز میں شامل ہے۔
| پلان | فی ادارہ پروجیکٹس | فی انوائرنمنٹ سیکرٹس |
|---|---|---|
| Startup | 5 | 100 |
| Scale | 50 | 500 |
| Enterprise | 200 | 1,000 |
اکثر پوچھے جانے والے سوالات
کیا Vault استعمال کرنے کے لیے مجھے اپنا کوڈ بدلنا ہوگا؟
سرورز اور CI پر نہیں: آپ کا کوڈ انوائرنمنٹ ویری ایبلز ہی پڑھتا رہتا ہے، اور آپ پروسیس کو moatgator secrets run یا GitHub Action کے ساتھ شروع کرتے ہیں۔ Android ایپ میں، ریفرنس کے ساتھ Moatgator.vault.get کال کریں۔
کیا جس کے پاس میری APK ہو وہ Vault کا کوئی سیکرٹ پڑھ سکتا ہے؟
ویلیو APK میں نہیں ہوتی۔ API اسے صرف اس ڈیوائس کو بھیجتی ہے جو سیکرٹ کی پالیسی کے تحت Attest میں کامیاب ہوئی ہو، اس سیشن کے لیے انکرپٹ کر کے، اور SDK اسے صرف میموری میں رکھتا ہے۔ کامیاب ہونے کے بعد بھی ڈیوائس کمپرومائز ہو سکتی ہے، اس لیے رقم کی منتقلی والی ہر چیز کے لیے سرور سائیڈ جانچ برقرار رکھیں۔
اگر سروس ٹوکن لیک ہو جائے تو کیا ہوتا ہے؟
اسے کنسول میں منسوخ کریں تو اگلی درخواست مسترد ہو جاتی ہے۔ سروس ٹوکنز صرف پڑھنے کے لیے ہیں، ایک پروجیکٹ اور آپ کے منتخب کردہ انوائرنمنٹس تک محدود ہیں، اور بطور ڈیفالٹ 90 دن میں ختم ہو جاتے ہیں۔
کیا Vault، 1Password یا Doppler کی جگہ لیتا ہے؟
ضروری نہیں۔ اگر آپ سرورز اور CI کے لیے ان میں سے کوئی پہلے سے استعمال کرتے ہیں تو وہ برقرار رہ سکتا ہے۔ Vault تصدیق شدہ ڈیوائسز پر آپ کی موبائل ایپ کو ترسیل کا اضافہ کرتا ہے، اور اگر آپ ایک ہی ٹول چاہیں تو سرورز اور CI کو بھی سنبھال سکتا ہے۔
کن پلانز میں Vault شامل ہے؟
Startup، Scale اور Enterprise۔ فی ادارہ پروجیکٹس: 5، 50 اور 200۔ فی انوائرنمنٹ سیکرٹس: 100، 500 اور 1,000۔
ایک سیکرٹ سے شروع کریں
ایک پروجیکٹ بنائیں، ایک سیکرٹ شامل کریں اور اسے CLI، اپنے CI یا اپنی ایپ سے حل کریں۔