استخدم موفر 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 في مخزن الأسرار

  1. إنشاء مجموعة موارد Azure باستخدام az group create الأمر .

    az group create --name myResourceGroup --location eastus2
    
  2. إنشاء نظام مجموعة 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
    
  3. ينشئ الأمر السابق هوية مدارة معينة من قبل المستخدم، ، 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

  1. احصل على بيانات اعتماد نظام مجموعة AKS باستخدام الأمر [az aks get-credentials][az-aks-get-credentials].

    az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
    
  2. تحقق من انتهاء التثبيت باستخدام 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
    
  3. تحقق من أن كل عقدة في تجمع عقدة نظام المجموعة الخاص بك لديها جراب برنامج تشغيل مخزن الأسرار CSI وموفر مخزن الأسرار Azure pod قيد التشغيل.

قم بإنشاء أو استخدام Azure Key Vault الموجود

  1. إنشاء أو تحديث مخزن مفاتيح مع تمكين التحكم في الوصول استنادا إلى الدور 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
    
  2. يمكن لمخزن المفاتيح تخزين المفاتيح والأسرار والشهادات. في هذا المثال، استخدم az keyvault secret set الأمر لتعيين سر نص عادي يسمى ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. لاحظ الخصائص التالية للاستخدام في المستقبل:

    • اسم كائن البيانات السرية في مخزن المفاتيح
    • نوع الكائن (البيانات السرية أو المفتاح أو الشهادة)
    • اسم مورد key vault الخاص بك
    • معرف مستأجر Azure للاشتراك

الخطوات التالية

في هذه المقالة، تعلمت كيفية استخدام موفر Azure Key Vault لبرنامج تشغيل CSI مخزن الأسرار في نظام مجموعة AKS. تحتاج الآن إلى توفير هوية للوصول إلى Azure Key Vault. لمعرفة كيفية إجراء ذلك، تابع إلى المقالة التالية.