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

Penyedia Azure Key Vault untuk Secrets Store CSI Driver memungkinkan integrasi Azure Key Vault sebagai penyimpanan rahasia dengan kluster Azure Kubernetes Service (AKS) melalui volume CSI.

Fitur

  • Memasang rahasia, kunci, dan sertifikat ke pod menggunakan volume CSI.
  • Mendukung volume sebaris CSI.
  • Mendukung pemasangan beberapa rahasia menyimpan objek sebagai volume tunggal.
  • Mendukung portabilitas pod dengan SecretProviderClass CRD.
  • Mendukung kontainer Windows.
  • Menyinkronkan dengan rahasia Kubernetes.
  • Mendukung autorotasi konten yang dipasang dan rahasia Kubernetes yang disinkronkan.

Batasan

Kontainer yang menggunakan pemasangan volume subPath tidak menerima pembaruan rahasia saat diputar. Untuk informasi selengkapnya, lihat Driver Secrets Store CSI yang diketahui.

Prasyarat

  • Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
  • Periksa apakah versi Azure CLI Anda adalah 2.30.0 atau yang lebih baru. Jika ini adalah versi sebelumnya, instal versi terbaru.
  • Jika Anda membatasi Ingress ke kluster, pastikan port 9808 dan 8095 terbuka.
  • Versi Kube minimum yang direkomendasikan didasarkan pada jendela dukungan versi Kube yang bergulir. Pastikan Anda menjalankan versi N-2 atau yang lebih baru .

Membuat kluster AKS dengan penyedia Azure Key Vault untuk dukungan Driver Secrets Store CSI

  1. Buat grup sumber daya Azure menggunakan az group create perintah .

    az group create --name myResourceGroup --location eastus2
    
  2. Buat kluster AKS dengan penyedia Azure Key Vault untuk kemampuan Driver Secrets Store CSI menggunakan az aks create perintah dengan parameter --enable-managed-identity dan --enable-addons azure-keyvault-secrets-provider parameter . Add-on membuat identitas terkelola yang ditetapkan pengguna yang dapat Anda gunakan untuk mengautentikasi ke brankas kunci Anda. Contoh berikut membuat kluster AKS dengan penyedia Azure Key Vault untuk Driver Secrets Store CSI diaktifkan.

    Catatan

    Jika Anda ingin menggunakan ID Beban Kerja Microsoft Entra, Anda juga harus menggunakan --enable-oidc-issuer parameter dan --enable-workload-identity , seperti dalam contoh berikut:

    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity
    
    az aks create --name myAKSCluster --resource-group myResourceGroup --enable-managed-identity --enable-addons azure-keyvault-secrets-provider
    
  3. Perintah sebelumnya membuat identitas terkelola yang ditetapkan pengguna, azureKeyvaultSecretsProvider, untuk mengakses sumber daya Azure. Contoh berikut menggunakan identitas ini untuk terhubung ke brankas kunci yang menyimpan rahasia, tetapi Anda juga dapat menggunakan metode akses identitas lainnya. Catat identitas clientId dalam output.

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

Catatan

Setelah Anda mengaktifkan fitur ini, AKS membuat yang dikelola identity named azurekeyvaultsecretsprovider-xxx dalam grup sumber daya simpul dan menetapkannya ke Virtual Machine Scale Sets (VMSS) secara otomatis. Anda dapat menggunakan identitas terkelola ini atau identitas terkelola Anda sendiri untuk mengakses brankas kunci. Ini tidak didukung untuk mencegah pembuatan identitas.

Meningkatkan kluster AKS yang ada dengan penyedia Azure Key Vault untuk dukungan Driver Secrets Store CSI

  • Tingkatkan kluster AKS yang ada dengan penyedia Azure Key Vault untuk kemampuan Driver Secrets Store CSI menggunakan az aks enable-addons perintah dan aktifkan azure-keyvault-secrets-provider add-on. Add-on membuat identitas terkelola yang ditetapkan pengguna yang dapat Anda gunakan untuk mengautentikasi ke brankas kunci Anda.

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

Catatan

Setelah Anda mengaktifkan fitur ini, AKS membuat yang dikelola identity named azurekeyvaultsecretsprovider-xxx dalam grup sumber daya simpul dan menetapkannya ke Virtual Machine Scale Sets (VMSS) secara otomatis. Anda dapat menggunakan identitas terkelola ini atau identitas terkelola Anda sendiri untuk mengakses brankas kunci. Ini tidak didukung untuk mencegah pembuatan identitas.

Verifikasi penyedia Azure Key Vault untuk penginstalan Driver Secrets Store CSI

  1. Pastikan penginstalan selesai menggunakan kubectl get pods perintah , yang mencantumkan semua pod dengan secrets-store-csi-driver label dan secrets-store-provider-azure di namespace layanan sistem kube.

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

    Output Anda akan terlihat mirip dengan contoh output berikut:

    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
    
  2. Verifikasi bahwa setiap simpul di kumpulan simpul kluster Anda memiliki pod Driver Secrets Store CSI dan pod Azure Penyedia Penyimpanan Rahasia yang berjalan.

Membuat atau menggunakan Azure Key Vault yang sudah ada

  1. Buat atau perbarui brankas kunci dengan kontrol akses berbasis peran Azure (Azure RBAC) diaktifkan menggunakan az keyvault create perintah atau az keyvault update perintah dengan --enable-rbac-authorization bendera . Nama brankas kunci harus unik secara global. Untuk detail selengkapnya tentang model izin brankas kunci dan Azure RBAC, lihat Menyediakan akses ke kunci, sertifikat, dan rahasia Key Vault dengan kontrol akses berbasis peran 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. Brankas kunci Anda dapat menyimpan kunci, rahasia, dan sertifikat. Dalam contoh ini, gunakan az keyvault secret set perintah untuk mengatur rahasia teks biasa yang disebut ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
    
  3. Perhatikan properti berikut untuk penggunaan di masa mendatang:

    • Nama objek rahasia di brankas kunci
    • Jenis objek (rahasia, kunci, atau sertifikat)
    • Nama sumber daya brankas kunci Anda
    • ID penyewa Azure dari langganan

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara menggunakan penyedia Azure Key Vault untuk Secrets Store CSI Driver dalam kluster AKS. Anda sekarang perlu memberikan identitas untuk mengakses Azure Key Vault. Untuk mempelajari caranya, lanjutkan ke artikel berikutnya.