Tutorial: Menggunakan penyedia Azure Key Vault untuk Secrets Store CSI Driver di kluster Azure Kubernetes Service (AKS)

Pelajari cara menyambungkan ke Azure Key Vault menggunakan driver CSI di kluster Azure Kubernetes Service (AKS) dengan bantuan Konektor Layanan. Dalam tutorial ini, Anda menyelesaikan tugas-tugas berikut:

  • Buat kluster AKS dan Azure Key Vault.
  • Buat koneksi antara kluster AKS dan Azure Key Vault dengan Konektor Layanan.
  • Buat SecretProviderClass CRD dan penyedia CSI yang pod mengkonsumsi untuk menguji koneksi.
  • Membersihan sumber daya.

Peringatan

Microsoft menyarankan agar Anda menggunakan alur autentikasi paling aman yang tersedia. Alur autentikasi yang dijelaskan dalam prosedur ini memerlukan tingkat kepercayaan yang tinggi pada aplikasi, dan membawa risiko yang tidak ada di alur lain. Anda hanya boleh menggunakan alur ini ketika alur lain yang lebih aman, seperti identitas terkelola, tidak layak.

Prasyarat

Membuat sumber daya Azure

  1. Buat grup sumber daya untuk tutorial ini.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Buat kluster AKS dengan perintah berikut, atau dengan merujuk ke tutorial. Kluster ini adalah tempat kita membuat koneksi layanan, definisi pod, dan tempat aplikasi sampel disebarkan.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Sambungkan ke kluster dengan perintah berikut.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Buat Azure Key Vault dengan perintah berikut, atau dengan merujuk ke tutorial. Layanan target ini terhubung ke kluster AKS, dan merupakan layanan tempat driver CSI menyinkronkan rahasia.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Buat rahasia di Key Vault dengan perintah berikut.

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

Membuat koneksi layanan di AKS dengan Konektor Layanan

Buat koneksi layanan antara kluster AKS dan Azure Key Vault menggunakan portal Azure atau Azure CLI.

  1. Buka layanan Kubernetes Anda di portal Azure dan pilih Konektor Layanan dari menu sebelah kiri.

  2. Pilih Buat dan isi pengaturan berikut. Biarkan pengaturan lain dengan nilai defaultnya.

    Pengaturan Pilihan Deskripsi
    Namespace Kubernetes Default Namespace tempat Anda memerlukan koneksi dalam kluster.
    Jenis layanan Key Vault (aktifkan CSI) Pilih Key Vault sebagai jenis layanan target dan periksa opsi aktifkan CSI .
    Nama koneksi keyvault_conn Gunakan nama koneksi yang disediakan oleh Konektor Layanan atau pilih nama koneksi Anda sendiri.
    Langganan <MySubscription> Langganan untuk layanan target Azure Key Vault Anda.
    Brankas kunci <MyKeyVault> Brankas kunci target yang ingin Anda sambungkan.
    Jenis klien Python Bahasa atau kerangka kerja kode yang Anda gunakan untuk menyambungkan ke layanan target.
  3. Setelah koneksi dibuat, halaman Konektor Layanan menampilkan informasi tentang koneksi baru.

    Cuplikan layar portal Azure, melihat sumber daya kubernetes yang dibuat oleh Konektor Layanan.

Menguji koneksi

  1. Klon sampel repositori:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Buka folder sampel repositori untuk Azure Key Vault:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. Ganti tempat penampung dalam secret_provider_class.yaml file di azure-keyvault-csi-provider folder.

    • Ganti dengan nama brankas kunci yang kami buat dan sambungkan <AZURE_KEYVAULT_NAME> . Anda bisa mendapatkan nilai dari portal Azure Service Connector.
    • Ganti <AZURE_KEYVAULT_TENANTID> dengan ID penyewa brankas kunci. Anda bisa mendapatkan nilai dari portal Microsoft Azure Konektor Layanan.
    • Ganti <AZURE_KEYVAULT_CLIENTID> dengan ID klien identitas addon azureKeyvaultSecretsProvider . Anda dapat memperoleh nilai dari portal Azure di Service Connector.
    • Ganti <KEYVAULT_SECRET_NAME> dengan nama rahasia brankas kunci yang kami buat, misalnya, ExampleSecret
  4. Sebarkan sumber daya Kubernetes ke kluster Anda dengan kubectl apply perintah . Instal kubectl secara lokal menggunakan perintah az aks install-cli jika tidak diinstal.

    1. Sebarkan SecretProviderClass definisi sumber daya kustom (CRD).

      kubectl apply -f secret_provider_class.yaml
      
    2. Sebarkan pod. Perintah membuat pod bernama sc-demo-keyvault-csi di namespace default kluster AKS Anda.

      kubectl apply -f pod.yaml
      
  5. Periksa apakah penyebaran berhasil dengan melihat pod dengan kubectl.

    kubectl get pod/sc-demo-keyvault-csi
    
  6. Setelah pod dimulai, tersedia konten yang dipasang pada jalur volume yang ditentukan dalam penyebaran YAML Anda. Gunakan perintah berikut untuk memvalidasi rahasia Anda dan mencetak rahasia pengujian.

    • Tampilkan rahasia yang disimpan di penyimpanan rahasia menggunakan perintah berikut.

      kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
      
    • Tampilkan rahasia di penyimpanan menggunakan perintah berikut. Contoh perintah ini menunjukkan rahasia ExampleSecretpengujian .

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

Membersihkan sumber daya

Jika Anda tidak perlu menggunakan kembali sumber daya yang Anda buat dalam tutorial ini, hapus semua sumber daya yang Anda buat dengan menghapus grup sumber daya Anda.

az group delete \
    --resource-group MyResourceGroup

Langkah berikutnya

Baca artikel berikut untuk mempelajari selengkapnya tentang konsep Konektor Layanan dan caranya membantu AKS terhubung ke layanan.