Kubernetes دارای یک "اسرار" داخلی است که به شما امکان می دهد اطلاعات محرمانه برنامه خود را ذخیره کنید.
این نهاد به شما اجازه می دهد تا اعتبار اطلاعات بانک اطلاعاتی خود را جدا کنید ، برای مثال ، از مشخصات ارسال خود استفاده کنید.
اسرار Kubernetes در پایگاه داده ذخیره می شود. و غیره از این خوشه.
اگرچه این امکان دسترسی به کل خوشه را فراهم می کند ، اما پایگاه داده رمزگذاری نشده است.
در این درس ، ما به دنبال ایجاد اسرار جدید برای برنامه خود هستیم و سپس می فهمیم که چگونه غلاف های شما می توانند این اسرار را بدست آورند.
ما در حال ظهور خواهیم بود امنیت اسرار خود را، اطمینان حاصل کرد که آنها رمزگذاری شده هستند
ارائه دهنده رمزگذاری پیکربندی
ایجاد یک کلید تصادفی 32 بایتی و از base64 آن رمزگذاری
سر -c 32 / توسعه تمدن / urandom! | base64
خروجی شما چیزی شبیه به مثال زیر خواهد بود.
خروجی را به خاطر بسپارید ، زیرا در پرونده پیکربندی از آن استفاده خواهیم کرد.
WxaW1k22mu3M / WYMIWYVOkAOrOTJ17 + Q5 + McAIqK3bM =
/etc/kubernetes/pki/secrets.yml
موارد زیر را به محتوای آن بیفزایید.
kind: EncryptionConfiguration
apiVersion: apiserver.config.k8s.io/v1
منابع:
- منابع:
- اسرار
ارائه دهندگان:
- aescbc:
کلیدها:
- نام: key1
راز: MnBTeg6QwRCS2 / ZGynIAKtU48n + zgQHLldDIZibIuW0 =
- identity: {}
مقدار مخفی key1 را با کلید رمزگذاری شده base64 که قبلاً ایجاد کردیم جایگزین کنید.
پیکربندی ارائه دهنده رمزگذاری را به کنترلر API Kubernetes اضافه کنید
پرونده پیکربندی را برای سرور API Kubernetes باز کنید.
vi / و غیره / kubernetes / manifests / kube-apiserver.yaml
بخش زیر را مشاهده کنید
مشخصات: ظروف: - فرمان: - kube-apiserver - --authorization-mode = گره ، RBAC [...]
و خط زیر را در جایی زیر – kube-apiserver اضافه کنید.
- --encryption-provider-config = / etc / kubernetes / pki / secretts.yaml
تغییرات ذخیره شده در مانیفست توسط کنترلر API به طور خودکار بارگذاری می شود.
نیازی به راه اندازی مجدد خدمات نیست.
چرخش کلید
قانون کلی این است که به طور مرتب کلیدها را برای محافظت از اسرار خود تغییر دهید.
ما این کار را با اضافه کردن کلید دوم تازه تولید شده در پرونده پیکربندی ارائه دهنده رمزنگاری خود انجام می دهیم و این روند را با حذف کلید اصلی خاتمه می دهد.
head-c 32 / dev / urandom | base64
پرونده ارائه دهنده رمزگذاری را باز کنید.
sudo vi /etc/kubernetes/pki/sercrets.yamlociation19659010† کلید دوم را به ارائه دهنده خود اضافه کنید.نوع: رمزگذاری پیکربندی apiVersion: apiserver.config.k8s.io/v1 منابع: - منابع: - اسرار ارائه دهندگان: - aescbc: کلیدها: - نام: key1 راز: MnBTeg6QwRCS2 / ZGynIAKtU48n + zgQHLldDIZibIuW0 = - نام: key2 راز: MRP2QNqGum6UowzL / aqmOG + لوون + / kQdxVuJxDjvlJI = - Identity: {}تغییرات را ذخیره کرده و کنترلر API را مجدداً راه اندازی کنید.
فایل ارائه دهنده رمزگذاری را دوباره باز کنید ، سپس کلید اول را با دوم جایگزین کرده و ورودی دوم را حذف کنید.
kind: EncryptionConfiguration apiVersion: apiserver.config.k8s.io/v1 منابع: - منابع: - اسرار ارائه دهندگان: - aescbc: کلیدها: - نام: key1 راز: MRP2QNqGum6UowzL / aqmOG + لوون + / kQdxVuJxDjvlJI = - هویت: {}تغییرات را دوباره ذخیره کنید و کنترلر API را مجدداً راه اندازی کنید.