استخدم موفر Azure Key Vault لبرنامج تشغيل Secrets Store CSI في نظام مجموعة Azure Kubernetes Service (AKS)
يسمح موفر Azure Key Vault لبرنامج تشغيل Secrets Store CSI بتكامل Azure Key Vault كمخزن سري مع نظام مجموعة Azure Kubernetes Service (AKS) عبر وحدة تخزين CSI.
الميزات
- تحميل البيانات السرية والمفاتيح والشهادات إلى جراب باستخدام وحدة تخزين CSI.
- يدعم وحدات التخزين المضمنة ل CSI.
- يدعم تحميل عدة أسرار تخزين الكائنات كحجم واحد.
- يدعم إمكانية
SecretProviderClass
نقل الجراب مع CRD. - يدعم حاويات Windows.
- تتم المزامنة مع أسرار Kubernetes.
- يدعم التشغيل التلقائي للمحتويات المثبتة وأسرار Kubernetes المتزامنة.
القيود
لا تتلقى الحاوية التي تستخدم تحميل وحدة تخزين subPath تحديثات سرية عند تدويرها. لمزيد من المعلومات، راجع قيود Secrets Store CSI Driver المعروفة.
المتطلبات الأساسية
- في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.
- تحقق من أن إصدار Azure CLI الخاص بك هو 2.30.0 أو أحدث. إذا كان إصداراً سابقاً، فثبّت أحدث إصدار.
- إذا كنت تقيد الدخول إلى نظام المجموعة، فتأكد من فتح المنفذين 9808 و8095.
- ويستند الحد الأدنى الموصى به كوبيرنيتس الإصدار على المتداول Kubernetes نافذة دعم الإصدار. تأكد من تشغيل الإصدار N-2 أو أحدث.
إنشاء نظام مجموعة AKS مع موفر Azure Key Vault لدعم برنامج تشغيل CSI في مخزن الأسرار
إنشاء مجموعة موارد Azure باستخدام
az group create
الأمر .az group create --name myResourceGroup --location eastus2
إنشاء نظام مجموعة AKS مع موفر Azure Key Vault لإمكانية Secrets Store CSI Driver باستخدام
az aks create
الأمر مع المعلمة--enable-addons azure-keyvault-secrets-provider
. تنشئ الوظيفة الإضافية هوية مدارة معينة من قبل المستخدم يمكنك استخدامها للمصادقة على مخزن المفاتيح الخاص بك. ينشئ المثال التالي نظام مجموعة AKS مع تمكين موفر Azure Key Vault لبرنامج تشغيل Secrets Store CSI.إشعار
إذا كنت تريد استخدام هوية حمل عمل Microsoft Entra، يجب عليك أيضا استخدام
--enable-oidc-issuer
المعلمتين و--enable-workload-identity
، كما هو الحال في المثال التالي:az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keys
ينشئ الأمر السابق هوية مدارة معينة من قبل المستخدم، ،
azureKeyvaultSecretsProvider
للوصول إلى موارد Azure. يستخدم المثال التالي هذه الهوية للاتصال بخزنة المفاتيح التي تخزن الأسرار، ولكن يمكنك أيضا استخدام أساليب الوصول إلى الهوية الأخرى.clientId
دون الهوية في الإخراج...., "addonProfiles": { "azureKeyvaultSecretsProvider": { ..., "identity": { "clientId": "<client-id>", ... } }
إشعار
بعد تمكين هذه الميزة، تقوم AKS بإنشاء هوية مدارة مسماة azurekeyvaultsecretsprovider-xxx
في مجموعة موارد العقدة وتعيينها إلى مجموعات مقياس الجهاز الظاهري (VMSS) تلقائيا. يمكنك استخدام هذه الهوية المدارة أو الهوية المدارة الخاصة بك للوصول إلى مخزن المفاتيح. لا يتم دعم منع إنشاء الهوية.
ترقية نظام مجموعة AKS موجود باستخدام موفر Azure Key Vault لدعم برنامج تشغيل CSI مخزن الأسرار
قم بترقية نظام مجموعة AKS موجود باستخدام موفر Azure Key Vault لإمكانية برنامج تشغيل Secrets Store CSI باستخدام
az aks enable-addons
الأمر وتمكينazure-keyvault-secrets-provider
الوظيفة الإضافية. تنشئ الوظيفة الإضافية هوية مدارة معينة من قبل المستخدم يمكنك استخدامها للمصادقة على مخزن المفاتيح الخاص بك.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
إشعار
بعد تمكين هذه الميزة، تقوم AKS بإنشاء هوية مدارة مسماة azurekeyvaultsecretsprovider-xxx
في مجموعة موارد العقدة وتعيينها إلى مجموعات مقياس الجهاز الظاهري (VMSS) تلقائيا. يمكنك استخدام هذه الهوية المدارة أو الهوية المدارة الخاصة بك للوصول إلى مخزن المفاتيح. لا يتم دعم منع إنشاء الهوية.
تحقق من موفر Azure Key Vault لتثبيت Secrets Store CSI Driver
احصل على بيانات اعتماد نظام مجموعة AKS باستخدام الأمر [
az aks get-credentials
][az-aks-get-credentials].az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
تحقق من انتهاء التثبيت باستخدام
kubectl get pods
الأمر ، الذي يسرد جميع الحجيرات مع التسمياتsecrets-store-csi-driver
وsecrets-store-provider-azure
في مساحة اسم نظام kube.kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
يجب أن يبدو الإخراج مشابها لإخراج المثال التالي:
NAME READY STATUS RESTARTS AGE aks-secrets-store-csi-driver-4vpkj 3/3 Running 2 4m25s aks-secrets-store-csi-driver-ctjq6 3/3 Running 2 4m21s aks-secrets-store-csi-driver-tlvlq 3/3 Running 2 4m24s aks-secrets-store-provider-azure-5p4nb 1/1 Running 0 4m21s aks-secrets-store-provider-azure-6pqmv 1/1 Running 0 4m24s aks-secrets-store-provider-azure-f5qlm 1/1 Running 0 4m25s
تحقق من أن كل عقدة في تجمع عقدة نظام المجموعة الخاص بك لديها جراب برنامج تشغيل مخزن الأسرار CSI وموفر مخزن الأسرار Azure pod قيد التشغيل.
قم بإنشاء أو استخدام Azure Key Vault الموجود
إنشاء أو تحديث مخزن مفاتيح مع تمكين التحكم في الوصول استنادا إلى الدور Azure (Azure RBAC) باستخدام
az keyvault create
الأمر أوaz keyvault update
الأمر مع العلامة--enable-rbac-authorization
. يجب أن يكون اسم مخزن المفاتيح فريدا عالميا. لمزيد من التفاصيل حول نماذج أذونات مخزن المفاتيح وAzure RBAC، راجع توفير الوصول إلى مفاتيح Key Vault والشهادات والأسرار باستخدام عنصر تحكم الوصول المستند إلى دور Azure## Create a new Azure key vault az keyvault create --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization ## Update an existing Azure key vault az keyvault update --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization
يمكن لمخزن المفاتيح تخزين المفاتيح والأسرار والشهادات. في هذا المثال، استخدم
az keyvault secret set
الأمر لتعيين سر نص عادي يسمىExampleSecret
.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
لاحظ الخصائص التالية للاستخدام في المستقبل:
- اسم كائن البيانات السرية في مخزن المفاتيح
- نوع الكائن (البيانات السرية أو المفتاح أو الشهادة)
- اسم مورد key vault الخاص بك
- معرف مستأجر Azure للاشتراك
الخطوات التالية
في هذه المقالة، تعلمت كيفية استخدام موفر Azure Key Vault لبرنامج تشغيل CSI مخزن الأسرار في نظام مجموعة AKS. تحتاج الآن إلى توفير هوية للوصول إلى Azure Key Vault. لمعرفة كيفية إجراء ذلك، تابع إلى المقالة التالية.
Azure Kubernetes Service