مدیریت مخفی
مدیریت مخفی
1) چرا و دقیقا چه چیزی را «راز» می دانیم
راز - هر ماده ای که افشای آن منجر به سازش سیستم یا داده ها شود: رمزهای عبور، نشانه های API، کلیدهای خصوصی OAuth/JWT، کلیدهای SSH، گواهینامه ها، کلیدهای رمزگذاری (KEK/DEK)، کلیدهای امضای webhook، پایگاه داده ها/انبارهای DSN، کلیدهای فروشنده (پرداخت، نامه/ارائه دهندگان پیام کوتاه)، نمک/فلفل کوکی، ربات/نشانه های چت، مجوز.
اسرار در کد، پیکربندی، محیط، تصاویر ظرف، CI/CD، Terraform/Ansible، سیاهههای مربوط/تخلیه زندگی می کنند - وظیفه مدیریت اسرار: حساب → ذخیره سازی → تحویل → استفاده → چرخش → پاسخ → حسابرسی → استفاده
2) اصول معماری
متمرکز سازی یک لایه قابل اعتماد (Vault/Cloud Secret Manager/KMS) برای ذخیره سازی، صدور و حسابرسی.
حداقل امتیازات (PoLP) دسترسی فقط به خدمات/نقش های لازم، برای حداقل دوره.
عمر کوتاه اسرار پویا/زمان با TTL/اجاره ترجیح داده می شود.
چابکی کریپتو قابلیت تغییر الگوریتم/طول کلید بدون خرابی.
جدا کردن اسرار از کد/تصاویر. بدون کلمه عبور در مخازن، بدون تصاویر Docker.
قابلیت مشاهده و حسابرسی هر عملیات صدور/خواندن اسرار ثبت شده و حذف شده است.
چرخش خودکار چرخش یک فرآیند در خط لوله است، نه یک عمل دستی.
3) راه حل های معمول و نقش های جزء
KMS/HSM اعتماد ریشه، عملیات رمزگذاری/کلید بسته بندی (پاکت).
مدیر مخفی/طاق. فروشگاه نسخه مخفی, ACL, ممیزی, اسرار پویا (DB, ابر IAM, PKI), قالب چرخش.
PKI/CA. صدور امضاهای کوتاه مدت mTLS/SSH/JWT.
مامور/راننده جانبی تحویل اسرار به زمان اجرا (tmpfs، در حافظه K/V، داغ بارگذاری مجدد فایل ها).
رانندگان/اپراتورهای CSI. ادغام با Kubernetes (Secret Store CSI Driver، cert-manager).
لایه رمزگذاری در گیت. SOPS/age, git-crypt (برای کد زیرساخت).
4) طبقه بندی و سیاست
اسرار جداگانه با انتقاد (P0/P1/P2) و حجم آسیب (محدوده مستاجر، محدوده محیط زیست، org-wide). برای هر کلاس، مشخص کنید:- TTL/اجاره نامه و فرکانس چرخش ؛
- روش خروجی (دینامیک در مقابل استاتیک)، فرمت، رسانه ؛
- سیاست دسترسی (چه کسی/کجا/چه زمانی/چرا)، mTLS و الزامات احراز هویت متقابل ؛
- حسابرسی (که ما چقدر ما را ذخیره می کنیم، چه کسی بررسی می کند) ؛
- روشهای شکستن شیشه و یادآوری.
5) چرخه زندگی مخفی
1. ایجاد: از طریق API مدیر مخفی با ابرداده (مالک، برچسب ها، دامنه).
2. ذخیره سازی: رمزگذاری شده (پاکت: DEK پیچیده شده با KEK از KMS/HSM).
3. تحویل: به درخواست یک نهاد مجاز (OIDC/JWT، SPIFFE/SVID، mTLS).
4. استفاده: به طور انحصاری در حافظه/در tmpfs ؛ ممنوعیت ورود به سیستم/تخلیه.
5. چرخش: توسط TTL یا رویداد (سازش) ؛ پشتیبانی از نسخه های موازی (N-1)
6. فراخوان/مسدود کردن: انقضای فوری اجاره نامه، غیرفعال کردن حساب/کلید در سیستم هدف.
7. دفع: تخریب نسخه/مواد، زنجیره حسابرسی روشن است.
6) اسرار پویا (توصیه می شود به طور پیش فرض)
ایده: راز برای مدت کوتاهی منتشر می شود و به طور خودکار منقضی می شود. مثال ها:- اعتبار پایگاه داده (Postgres/MySQL) با TTL 15-60 دقیقه.
- کلید های موقت ابر (AWS/GCP/Azure) توسط نقش سرویس.
- گواهی SSH (5-30 دقیقه)، گواهی X.509 (ساعت/روز).
- JWT موقت برای امضای درخواست ها، کارگزاران بلیط جلسه.
- مزایا: شعاع انفجار حداقل، فراخوان ساده (هیچ چیز «باقی می ماند» در جهان).
7) تحویل اسرار در زمان اجرا
کوبرنتیز:- Secret Store CSI Driver → نصب اسرار از یک مدیر خارجی به غلاف به عنوان فایل ها (tmpfs).
- اجتناب از Kubernetes راز به عنوان تنها منبع (base64 ≠ رمزگذاری) ؛ در صورت لزوم، ارائه دهنده KMS را برای etcd فعال کنید.
- عامل جانبی (Vault Agent/Secrets Store) با اجاره نامه خودکار و بارگیری مجدد داغ.
- VM/Bare-metal: عامل سیستم + mTLS به Vault/Secret Manager، حافظه پنهان در حافظه، حداقل TCB.
- Serverless: ادغام ابر با جایگزینی شفاف اسرار به عنوان متغیرهای محیطی/فایل ها، اما اجتناب از envvars طولانی مدت - ترجیحا فایل ها/در حافظه.
مثال (Kubernetes + CSI، از نظر مفهومی)
yaml apiVersion: v1 kind: Pod metadata: { name: app }
spec:
serviceAccountName: app-sa # is associated with a role in Secret Manager volumes:
- name: secrets csi:
driver: secrets-store. csi. k8s. io readOnly: true volumeAttributes:
secretProviderClass: app-spc containers:
- name: app volumeMounts:
- mountPath: /run/secrets name: secrets readOnly: true
8) ادغام CI/CD و IaC
CI: کارگران با توجه به OIDC (هویت بار کاری) توکن های کوتاه مدت دریافت می کنند. ممنوعیت اسرار «ماسک» که به سیاهههای مربوط وارد می شوند ؛ مرحله «اسکن نشت» (trufflehog/gitleaks).
CD: Deploy اسرار را در زمان نمایش می گیرد، آنها را به مصنوعات نمی نویسد.
IaC: Terraform متغیرها را در Secret Manager ذخیره می کند ؛ دولت رمزگذاری شده و دسترسی محدود است.
SOPS/age: برای مخازن - ذخیره مانیفست رمزگذاری شده، کلید - تحت کنترل KMS.
مثال (قطعه SOPS)
yaml apiVersion: v1 kind: Secret metadata: { name: app }
data:
PASSWORD: ENC[AES256_GCM,data:...,sops:...]
sops:
kms:
- arn: arn:aws:kms:...
encrypted_regex: '^(data stringData)$'
version: '3. 8. 0'
9) سیاست های دسترسی و احراز هویت حجم کار
هویت حجم کار: SPIFFE/SPIRE، Kubernetes SA → OIDC → IAM- роль، mTLS.
نشانه های موقت: TTL کوتاه، دامنه باریک.
ABAC/RBAC در Secret Manager: «چه کسی می تواند راز X را در محیط Y بخواند» از «چه کسی می تواند ایجاد/چرخش کند» جدا است.
چند اجاره: فضای نام جداگانه/کلید حلقه برای هر مستاجر ؛ سیاست های فردی و گزارش دهی
10) چرخش، نسخه ها و سازگاری
شناسه مخفی و نسخه آن ('secret/app/db # v17') را جدا کنید.
پشتیبانی از دو نسخه فعال (N و N-1) برای چرخش بدون توقف.
چرخش مبتنی بر رویداد است: پس از اخراج، سازش، تغییر ارائه دهنده، مهاجرت الگوریتم ها.
خودکار: چرخش cron/backend در Vault/Secret Manager + webhook باعث راه اندازی مجدد/مجدد برنامه می شود.
دستور العمل کوتاه «دو کلید» چرخش وب هوک
text
T0: we publish two secrets in the provider: current, next
T1: the application starts accepting signatures by both current and next
T2: external system switches signature to next
T3: we do next -> current, re-release new next
11) ذخیره سازی خارج از زمان اجرا: پشتیبان گیری و مصنوعات
هرگز به مصنوعات (تصاویر، آرشیو ورود به سیستم، تخلیه).
پشتیبان گیری مدیر مخفی - رمزگذاری، کلیدهای ذخیره سازی در خارج از همان حلقه (تفکیک وظایف).
برچسب ها و اسکن DLP: تشخیص اسرار در S3/Blob/GCS، Git، مصنوعات CI.
12) قابلیت مشاهده، حسابرسی و SLO
معیارها: تعداد مسائل/راز/سرویس، سهم اجاره نامه منقضی شده، متوسط TTL، زمان چرخش، زمان همگرایی (ثانیه/دقیقه قبل از پذیرش نسخه جدید).
گزارش های حسابرسی: چه کسی/چه چیزی/چه زمانی/کجا/چرا ؛ ذخیره سازی به طور جداگانه، همچنین رمزگذاری شده است.
SLO: خروجی 99٪ <200 ms ؛ 0 نشت در سیاهههای مربوط ؛ 100٪ از اسرار صاحب/TTL/برچسب ها ؛ اسرار 100٪ بحرانی - پویا یا چرخش ≤ 30 روز.
هشدارها: راز منقضی می شود <7 روز (برای استاتیک)، سنبله در خرابی احراز هویت به ذخیره سازی، هیچ مخفی خواندن> N روز (مرده)، منابع جغرافیایی/ASN غیر منتظره.
13) اشتباهات مکرر و چگونگی اجتناب از آنها
اسرار در Git/تصاویر. استفاده از SOPS/سن و اسکنر ؛ سیاست ممنوعیت خطوط «لخت»
به عنوان یک میان مدت بلند مدت اولویت دادن به پروندههای tmpfs/in-memory ؛ محیط را در چنگال/تخلیه تمیز کنید.
همان اسرار برای dev/stage/prod. تقسیم بر محیط زیست
رمزهای عبور استاتیک طولانی مدت. سوئیچ به پویا/کوتاه مدت.
یک «کلید اصلی» برای همه چیز. "تقسیم بر مستاجر/پروژه/خدمات.
بدون بارگیری مجدد. این برنامه نیاز به راه اندازی مجدد → پنجره آسیب پذیری در طول چرخش.
14) نمونه هایی از ادغام (شماتیک)
دسترسی به صندوق پویا Postgres
hcl
Vault: role -> issues the user to the database with TTL 30m and privileges only to the app path "database/creds/app-role" {
capabilities = ["read"]
}
Application requests/database/creds/app-role -> receives (user, pass, ttl)
امضای درخواست های JWT (کوتاه مدت)
کلید خصوصی در Secret Manager ذخیره می شود ؛ این سرویس یک نشانه کوتاه مدت را درخواست می کند و عامل محلی payload را امضا می کند (کلید به عنوان یک رشته به برنامه منتقل نمی شود).
گواهینامه SSH برای مدیران
صدور SSH-cert به مدت 10 دقیقه از طریق SSO (OIDC)، بدون توزیع کلیدهای دائمی.
15) ایمنی در اطراف لبه ها
Logs/trails/metrics: ضدعفونی کننده ها، فیلترها برای کلید ها/الگوهای شناخته شده ؛ زمینه های «مخفی» - پوشش در APM.
تخلیه/سقوط گزارش: به طور پیش فرض کاهش ؛ در صورت لزوم - رمزگذاری و تمیز کردن.
برنامه های مشتری/تلفن همراه: به حداقل رساندن اسرار آنلاین، استفاده از ذخیره سازی پلت فرم (Keychain/Keystore)، اتصال دستگاه، TLS-pinning با نورد اضطراری.
16) انطباق
PCI DSS: ممنوعیت ذخیره PAN/اسرار بدون رمزگذاری ؛ کنترل دسترسی دقیق و چرخش.
ISO 27001/SOC 2 - مدیریت دارایی، ورود به سیستم، کنترل دسترسی، الزامات تنظیم مجدد
GDPR/تنظیم کننده های محلی: به حداقل رساندن، دسترسی به عنوان مورد نیاز، ممیزی.
17) فرآیندها و کتاب اجرا
راه اندازی
1. فهرست اسرار (مخازن، CI ها، تصاویر، زمان اجرا، پشتیبان گیری).
2. طبقه بندی و برچسب ها (مالک، محیط زیست، مستاجر، چرخش سیاست).
3. ادغام خرک/ابر SM + KMS/HSM.
4. تنظیم خروجی توسط هویت بار کاری (OIDC/SPIRE).
5. فعال کردن اسرار پویا برای DB/Cloud/PKI.
6. چرخش خودکار و بارگذاری مجدد داغ ؛ هشدار در مورد انقضا
7. راه اندازی اسکنر نشت و کاتالوگ داده ها/ET.
سناریوهای اضطراری
نشت مشکوک: لیست توقف دسترسی، چرخش فوری، لغو گواهینامه ها/کلید ها، علامت های مجدد، افزایش حسابرسی، RCA را فعال کنید.
Secret Manager در دسترس نیست: حافظه پنهان محلی در حافظه با TTL کم، تخریب عملکرد، محدودیت اتصالات جدید، مراحل شکستن شیشه دستی.
سازش کلید ریشه: بازسازی سلسله مراتب کلید، بازنویسی تمام DEK ها، بررسی تمام مواجهه برای پنجره خطر.
18) چک لیست
قبل از فروش
- اسرار حذف شده از کد/تصاویر ؛ اسکنرهای نشت شامل.
- مکانیسم های پویا برای اسرار بحرانی فعال می شوند.
- تحویل از طریق sidecar/CSI/tmpfs با داغ بارگذاری، بدون envvars با دوام.
- سیاست های IAM/ABAC پیکربندی شده، محدود به هویت حجم کار.
- چرخش خودکار و نسخه های دوگانه (N، N-1) برای سازگاری.
- متریک/هشدار/ممیزی را فعال کنید ؛ تست تخریب گذشت.
عملیات
- گزارش ماهانه: صاحبان، TTL، اسرار منقضی شده، استفاده نشده است.
- چرخش دوره ای و تست نفوذ از مسیرهای نشت (سیاهههای مربوط، تخلیه، مصنوعات).
- طرح رمزنگاری چابکی و جایگزینی اضطراری CA/ریشه.
19) سوالات متداول
س: آیا مدیر مخفی بدون KMS کافی است ؟
پاسخ: برای سطح پایه - بله، اما بهتر است از رمزگذاری پاکت استفاده کنید: KEK در KMS/HSM، اسرار - پیچیده شده است. این امر بازخورد و انطباق را ساده می کند.
س: چه چیزی را انتخاب کنید - استاتیک یا دینامیک ؟
A: پیش فرض دینامیک است. فقط در جایی که ارائه دهنده پشتیبانی وجود ندارد، استاتیک را ترک کنید و TTL را تا روز/ساعت + چرخش خودکار بسوزانید.
س: چگونه می توان اسرار را به میکروسرویس پرتاب کرد ؟
: هویت بار کاری → mTLS مدیر مخفی → sidecar/CSI → tmpfs + hot-reload. بدون سیاهههای مربوط، بدون envvars «برای همیشه».
س: آیا می توانم اسرار را در راز Kubernetes حفظ کنم ؟
A: فقط با رمزگذاری etcd با ارائه دهنده KMS و سیاست های سختگیرانه فعال شده است. ذخیره سازی خارجی و CSI را ترجیح می دهد.
س: چگونه دسترسی به یک مستاجر را «رمزنگاری» می کنید ؟
A: لغو/مسدود کردن سیاست های خود را در مدیر مخفی، باطل کردن تمام اجاره نامه ها، چرخش کلید/بازسازی ؛ هنگام استفاده از KMS - باز کردن KEK مربوطه را غیرفعال کنید.
مواد مرتبط:- «رمزگذاری در حالت استراحت»
- «در رمزگذاری حمل و نقل»
- «مدیریت کلید و چرخش»
- «احراز هویت S2S»
- «ثبت و بررسی درخواستها»