Aracılığıyla paylaş


Azure Kubernetes Service (AKS) kümesinde Gizli Depo CSI Sürücüsü için Azure Key Vault'u sağlayıcı olarak kullanma

Gizli Depo CSI Sürücüsü için Azure Key Vault sağlayıcısı, bir Azure Key Vault'un Azure Kubernetes Service (AKS) kümesiyle bir CSI birimi aracılığıyla gizli depo olarak tümleştirilmesine olanak tanır.

Özellikler

  • CSI birimi kullanarak gizli bilgileri, anahtarları ve sertifikaları bir poda bağlar.
  • CSI yerleşik birimlerini destekler.
  • Birden çok gizli saklama deposu nesnesini tek bir hacim olarak bağlamayı destekler.
  • CRD ile SecretProviderClass pod taşınabilirliğini destekler.
  • Windows kapsayıcılarını destekler.
  • Kubernetes sırlarıyla senkronize edilir.
  • Montelemiş içeriklerin otomatik döndürülmesini ve eşitlenmiş Kubernetes gizli dizilerini destekler.

Sınırlamalar

  • ConfigMap veya Secret birim bağlaması olarak kullanılan bir subPath kapsayıcı, gizli bilgi yenilendiğinde otomatik güncellemeleri almaz. Bu bir Kubernetes sınırlamasıdır. Değişikliklerin etkili olması için, uygulamanın dosya sistemindeki değişiklikleri izleyerek veya podu yeniden başlatarak değiştirilen dosyayı yeniden yüklemesi gerekir. Daha fazla bilgi için Secrets Store CSI Driver bilinen sınırlamaları bölümüne bakın.
  • Eklenti, düğüm kaynak grubunda adlı azurekeyvaultsecretsprovider-xxx bir yönetilen kimlik oluşturur ve bunu otomatik olarak Sanal Makine Ölçek Kümeleri'ne (VMSS) atar. Anahtar kasasına erişmek için bu yönetilen kimliği veya kendi yönetilen kimliğinizi kullanabilirsiniz. Kimlik oluşturmanın engellenmesi desteklenmiyor.

Önkoşullar

  • Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Azure CLI sürümünüzün 2.30.0 veya üzeri olup olmadığını denetleyin. Önceki bir sürümse en son sürümü yükleyin.

Görevler

  • Kullanılan kimliğin SecretProviderClass, key'ye veya certificatenesne türlerine erişim sağlamak için Key Vault Certificate User gerektirir.
  • SecretProviderClass ile kullanılan kimliğin secret yetkisine sahip olması, nesne türüne erişebilmesi için gereklidir.

Gizli Dizi Deposu için Azure Key Vault sağlayıcısı ile AKS kümesi oluşturma CSI Sürücüsü desteği

  1. komutunu kullanarak az group create bir Azure kaynak grubu oluşturun.

    az group create --name myResourceGroup --location eastus2
    
  2. az aks create komutunu ve --enable-addons azure-keyvault-secrets-provider parametresini kullanarak, Gizli Saklama CSI Sürücüsü yeteneği için Azure Key Vault sağlayıcısı olan bir AKS kümesi oluşturun. Eklenti, anahtar kasanızda kimlik doğrulaması yapmak için kullanabileceğiniz kullanıcı tarafından atanan bir yönetilen kimlik oluşturur. Aşağıdaki örnek, Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısının etkinleştirildiği bir AKS kümesi oluşturur.

    Not

    Microsoft Entra İş Yükü Kimliği kullanmak istiyorsanız, aşağıdaki örnekte olduğu gibi --enable-oidc-issuer ve --enable-workload-identity parametrelerini de kullanmanız gerekir.

    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. Önceki komut, azureKeyvaultSecretsProviderAzure kaynaklarına erişmek için kullanıcı tarafından atanan bir yönetilen kimlik oluşturur. Aşağıdaki örnek, gizli dizileri depolayan anahtar kasasına bağlanmak için bu kimliği kullanır, ancak diğer kimlik erişim yöntemlerini de kullanabilirsiniz. Çıktıdaki kimliğin clientId dikkat edin.

    ...,
     "addonProfiles": {
        "azureKeyvaultSecretsProvider": {
          ...,
          "identity": {
            "clientId": "<client-id>",
            ...
          }
        }
    

Not

Bu özelliği etkinleştirdikten sonra AKS, düğüm kaynak grubunda adlı azurekeyvaultsecretsprovider-xxx bir yönetilen kimlik oluşturur ve bunu otomatik olarak Sanal Makine Ölçek Kümeleri (VMSS) atar. Anahtar kasasına erişmek için bu yönetilen kimliği veya kendi yönetilen kimliğinizi kullanabilirsiniz. Kimlik oluşturmanın engellenmesi desteklenmiyor.

Gizli Dizi Deposu için Azure Key Vault sağlayıcısı ile mevcut AKS kümesini yükseltme CSI Sürücüsü desteği

  • Azure Key Vault sağlayıcısı ile Secrets Store CSI Sürücüsü yeteneğine sahip mevcut bir AKS kümesini az aks enable-addons komutunu kullanarak yükseltin ve azure-keyvault-secrets-provider eklentisini etkinleştirin. Eklenti, anahtar kasanızda kimlik doğrulaması yapmak için kullanabileceğiniz kullanıcı tarafından atanan bir yönetilen kimlik oluşturur.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
    

Not

Bu özelliği etkinleştirdikten sonra AKS, düğüm kaynak grubunda adlı azurekeyvaultsecretsprovider-xxx bir yönetilen kimlik oluşturur ve bunu otomatik olarak Sanal Makine Ölçek Kümeleri (VMSS) atar. Anahtar kasasına erişmek için bu yönetilen kimliği veya kendi yönetilen kimliğinizi kullanabilirsiniz. Kimlik oluşturmanın engellenmesi desteklenmiyor.

Gizli Anahtar Deposu CSI Sürücüsü kurulumu için Azure Key Vault sağlayıcısını doğrulayın

  1. komutunu kullanarak az aks get-credentials AKS kümesi kimlik bilgilerini alın.

    az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
    
  2. kube-system ad alanında ve kubectl get pods etiketlerine sahip secrets-store-csi-driver tüm podları listeleyen komutunu kullanarak secrets-store-provider-azure yüklemenin tamamlanıp tamamlanmadığını doğrulayın.

    kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
    

    Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    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. Kümenizin düğüm havuzundaki her düğümün, Secrets Store CSI Sürücüsü pod'u ve Secrets Store Provider Azure pod'unun çalışır durumda olduğunu doğrulayın.

Mevcut Azure Key Vault'u oluşturma veya kullanma

  1. Azure rol tabanlı erişim denetimi (Azure RBAC) etkinleştirilmiş bir anahtar kasası oluşturun veya güncelleştirin; bunu, az keyvault create komutunu veya az keyvault update komutunu, --enable-rbac-authorization bayrağı ile kullanarak gerçekleştirin. Anahtar kasasının adı genel olarak benzersiz olmalıdır. Anahtar kasası izin modelleri ve Azure RBAC hakkında daha fazla ayrıntı için Azure rol tabanlı erişim denetimiyle Key Vault anahtarlarına, sertifikalarına ve gizlerine erişim sağlama bölümüne bakın.

    ## 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. Anahtar kasanız anahtarları, gizli bilgileri ve sertifikaları depolayabilir. Bu örnekte, az keyvault secret set komutunu kullanarak ExampleSecret adlı bir düz metin gizliliği ayarlayın.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. Gelecekte kullanmak için aşağıdaki özellikleri not alın:

    • Anahtar kasasında gizli nesnenin adı
    • Nesne türü (gizli dizi, anahtar veya sertifika)
    • Anahtar kasası kaynağınızın adı
    • Aboneliğin Azure kiracı kimliği

Sonraki adımlar

Bu makalede, AKS kümesinde Secrets Store CSI Driver için Azure Key Vault sağlayıcısını kullanmayı öğrendiniz. Şimdi Azure Key Vault'a erişmek için bir kimlik sağlamanız gerekir. Nasıl yapılacağını öğrenmek için sonraki makaleye geçin.