Enc رمزگذاری اسرار Kubernetes | استفاده از اسرار – مجموعه امنیت اطلاعات

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 را مجدداً راه اندازی کنید.