Öğretici: Azure Kubernetes Service (AKS) kümesinde Gizli Dizi Deposu CSI Sürücüsü için Azure Key Vault sağlayıcısını kullanma

Azure Kubernetes Service (AKS) kümesinde Hizmet Bağlayıcısı yardımıyla CSI sürücüsünü kullanarak Azure Key Vault'a bağlanmayı öğrenin. Bu öğreticide, aşağıdaki görevleri tamamlayacaksınız:

  • AKS kümesi ve Azure Key Vault oluşturun.
  • AKS kümesi ile Hizmet Bağlayıcısı ile Azure Key Vault arasında bir bağlantı oluşturun.
  • Bağlantıyı test etmek için bir SecretProviderClass CRD ve kullanan bir pod CSI sağlayıcısı oluşturun.
  • Kaynakları temizleyin.

Uyarı

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Bu yordamda açıklanan kimlik doğrulama akışı, uygulamada yüksek düzeyde güven gerektirir ve diğer akışlarda mevcut olmayan riskleri taşır. Bu akışı yalnızca yönetilen kimlikler gibi diğer daha güvenli akışlar uygun olmadığında kullanmalısınız.

Önkoşullar

Azure kaynakları oluşturma

  1. Bu öğretici için bir kaynak grubu oluşturun.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Aşağıdaki komutla veya öğreticiye başvurarak bir AKS kümesi oluşturun. Bu küme, hizmet bağlantısını, pod tanımını ve örnek uygulamanın dağıtıldığı yerdir.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Aşağıdaki komutla kümeye bağlanın.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Aşağıdaki komutu kullanarak veya öğreticiye başvurarak bir Azure Key Vault oluşturun. Bu hedef hizmet, AKS kümesine bağlıdır ve CSI sürücüsünün gizli bilgileri senkronize ettiği hizmettir.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Aşağıdaki komutla Key Vault'ta bir gizli dizi oluşturun.

    az keyvault secret set \
        --vault-name MyKeyVault \
        --name ExampleSecret \
        --value MyAKSExampleSecret
    

Hizmet Bağlayıcısı ile AKS'de hizmet bağlantısı oluşturma

Azure portalını veya Azure CLI'yi kullanarak AKS kümesi ile Azure Key Vault arasında bir hizmet bağlantısı oluşturun.

  1. Kubernetes hizmetinizi Azure portalında açın ve soldaki menüden Hizmet Bağlayıcısı'nı seçin.

  2. Oluştur'u seçin ve aşağıdaki ayarları doldurun. Diğer ayarları varsayılan değerleriyle bırakın.

    Ayar Seçim Açıklama
    Kubernetes ad alanı varsayılan Kümede bağlantıya ihtiyacınız olan ad alanı.
    Hizmet türü Key Vault (CSI'yi etkinleştirme) Hedef hizmet türü olarak Key Vault'u seçin ve CSI'yi etkinleştir seçeneğini işaretleyin.
    Bağlantı adı keyvault_conn Hizmet Bağlayıcısı tarafından sağlanan bağlantı adını kullanın veya kendi bağlantı adınızı seçin.
    Abonelik <MySubscription> Azure Key Vault hedef hizmetinizin aboneliği.
    Anahtar kasası <MyKeyVault> Bağlanmak istediğiniz hedef anahtar kasası.
    İstemci türü Python Hedef hizmete bağlanmak için kullandığınız kod dili veya çerçeve.
  3. Bağlantı oluşturulduktan sonra, Hizmet Bağlayıcısı sayfasında yeni bağlantı hakkındaki bilgiler görüntülenir.

    Service Connector tarafından oluşturulan kubernetes kaynaklarını görüntüleyen Azure portalının ekran görüntüsü.

Bağlantıyı test edin

  1. Örnek depoyu kopyalayın:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Azure Key Vault için deponun örnek klasörüne gidin:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. klasöründeki dosyadaki secret_provider_class.yamlazure-keyvault-csi-provider yer tutucuları değiştirin.

    • değerini, oluşturduğumuz ve bağladığımız anahtar kasasının adıyla değiştirin <AZURE_KEYVAULT_NAME> . Değeri Hizmet Bağlayıcısı'nın Azure portalından alabilirsiniz.
    • değerini anahtar kasasının kiracı kimliğiyle değiştirin <AZURE_KEYVAULT_TENANTID> . Değeri Hizmet Bağlayıcısı'nın Azure portalından alabilirsiniz.
    • değerini eklentinin <AZURE_KEYVAULT_CLIENTID> kimlik istemci kimliğiyle değiştirinazureKeyvaultSecretsProvider. Değeri Hizmet Bağlayıcısı'nın Azure portalından alabilirsiniz.
    • değerini, oluşturduğumuz anahtar kasası gizli dizisi adıyla değiştirin <KEYVAULT_SECRET_NAME> , örneğin, ExampleSecret
  4. Komutuyla Kubernetes kaynaklarını kümenize dağıtın kubectl apply . Yüklü kubectl değilse az aks install-cli komutunu kullanarak yerel olarak yükleyin.

    1. SecretProviderClass Özel kaynak tanımını (CRD) dağıtın.

      kubectl apply -f secret_provider_class.yaml
      
    2. öğesini dağıtın pod. komutu, AKS kümenizin varsayılan ad alanında adlı sc-demo-keyvault-csi bir pod oluşturur.

      kubectl apply -f pod.yaml
      
  5. podunu ile kubectlgörüntüleyerek dağıtımın başarılı olup olmadığını denetleyin.

    kubectl get pod/sc-demo-keyvault-csi
    
  6. Pod başlatıldıktan sonra, dağıtım YAML'nizde belirtilen birim yolundaki bağlı içerik kullanılabilir. Gizli dizilerinizi doğrulamak ve bir test gizli dizisi yazdırmak için aşağıdaki komutları kullanın.

    • Aşağıdaki komutu kullanarak gizli dizi deposunda tutulan gizli dizileri gösterin.

      kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
      
    • Aşağıdaki komutu kullanarak depoda bir gizli dizi görüntüleyin. Bu örnek komut, test gizli dizisini ExampleSecretgösterir.

      kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
      

Kaynakları temizleme

Bu öğreticide oluşturduğunuz kaynakları yeniden kullanmanız gerekmiyorsa kaynak grubunuzu silerek oluşturduğunuz tüm kaynakları silin.

az group delete \
    --resource-group MyResourceGroup

Sonraki adımlar

Hizmet Bağlayıcısı kavramları ve AKS'nin hizmetlere bağlanmasına nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri okuyun.