Share via


Azure Key Vault-szolgáltató a Secrets Store CSI-illesztőprogramhoz az Azure Kubernetes Service (AKS) konfigurációs és hibaelhárítási lehetőségeihez

Kövesse az Azure Key Vault-szolgáltató titkos kulcstár CSI-illesztőprogramjának AKS-fürtben való használatához, és adjon meg egy identitást az Azure Key Vault-szolgáltató titkos kulcstár CSI-illesztőprogramhoz való eléréséhez az AKS-ben. A lépések elvégzése után további konfigurációkat alkalmazhat, vagy hibaelhárítást végezhet.

Konfigurációs lehetőségek

Automatikus elforgatás engedélyezése és letiltása

Feljegyzés

Ha engedélyezve van a Titkos kulcstár CSI-illesztőprogramhoz készült Azure Key Vault-szolgáltató, frissíti a pod csatlakoztatását és a Kubernetes titkos kódjátSecretProviderClass, amely a secretObjects következő mezőben van meghatározva: . Ezt úgy teszi, hogy rendszeresen lekérdezi a módosításokat a megadott rotációs lekérdezési időköz alapján. Az alapértelmezett rotációs lekérdezési időköz két perc.

Feljegyzés

Ha egy titkos kódtár a kezdeti pod üzembe helyezése után frissül egy külső titkos kulcstárban, a Kubernetes Titkos kulcs és a pod csatlakoztatása rendszeresen frissül attól függően, hogy az alkalmazás hogyan használja fel a titkos adatokat.

Csatlakoztassa a Kubernetes-titkos kulcsot kötetként: Használja a Titkos kulcsok tárának illesztőprogramjának K8s titkos kulcsainak automatikus elforgatását és szinkronizálását. Az alkalmazásnak figyelnie kell a csatlakoztatott Kubernetes Titkos kötet módosításait. Amikor a CSI-illesztőprogram frissíti a Kubernetes-titkos kulcsot, a megfelelő kötet tartalma is automatikusan frissül.

Az alkalmazás beolvassa az adatokat a tároló fájlrendszeréből: Használja a Titkos kulcstár CSI-illesztőprogram forgatási funkcióját. Az alkalmazásnak figyelnie kell a fájlváltozást a CSI-illesztőprogram által csatlakoztatott kötetről.

Használja a Kubernetes Secretet egy környezeti változóhoz: Indítsa újra a podot a legújabb titkos kód környezeti változóként való lekéréséhez. A Szinkronizált Kubernetes-titkos kód módosításainak figyeléséhez és podokon végzett működés közbeni frissítések végrehajtásához használjon olyan eszközt, mint a Reloader .

Automatikus elforgatás engedélyezése új AKS-fürtön

  • Engedélyezze a titkos kódok automatikus elforgatását egy új fürtön a az aks create paranccsal, és engedélyezze a bővítményt enable-secret-rotation .

    az aks create --name myAKSCluster2 --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-secret-rotation
    

Automatikus elforgatás engedélyezése meglévő AKS-fürtön

  • Frissítsen egy meglévő fürtöt a titkos kódok automatikus elforgatásának engedélyezéséhez a az aks addon update parancs és a enable-secret-rotation paraméter használatával.

    az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation
    

Egyéni forgatási időköz megadása

  • Adjon meg egy egyéni forgatási időközt a az aks addon update paraméterrel rendelkező rotation-poll-interval paranccsal.

    az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation --rotation-poll-interval 5m
    

Automatikus elforgatás letiltása

Az automatikus elforgatás letiltásához először le kell tiltania a bővítményt. Ezután újra engedélyezheti a bővítményt a enable-secret-rotation paraméter nélkül.

  1. Tiltsa le a titkos kódok szolgáltatójának bővítményét a az aks addon disable parancs használatával.

    az aks addon disable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
    
  2. Engedélyezze újra a titkos kódok szolgáltatójának bővítményét a enable-secret-rotation paraméter nélkül a az aks addon enable parancs használatával.

    az aks addon enable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
    

Ha már használ egy bővítménytSecretProviderClass, a paraméter megadása enable-secret-rotation nélkül az aks addon enable is frissítheti a bővítményt.

Csatlakoztatott tartalom szinkronizálása Kubernetes-titkos kóddal

Feljegyzés

Az ebben a szakaszban szereplő YAML-példák hiányosak. Ezeket módosítania kell a kulcstartó identitásához való hozzáférés választott módjának támogatásához. További részletekért lásd : Identitás megadása a Titkos kulcstár CSI-illesztőprogramhoz készült Azure Key Vault-szolgáltató eléréséhez.

Előfordulhat, hogy létre szeretne hozni egy Kubernetes-titkos kulcsot a csatlakoztatott titkos kódok tartalmának tükrözéséhez. A titkos kulcsok szinkronizálása a pod indítása után a csatlakoztatásukhoz. A titkos kulcsokat használó podok törlésekor a Kubernetes-titkos kulcs is törlődik.

  • Szinkronizálja a csatlakoztatott tartalmat egy Kubernetes-titkos kóddal a secretObjects mező SecretProviderClass használatával a Kubernetes-titkos kód kívánt állapotának meghatározásához, ahogyan az az alábbi YAML-példában is látható.

    apiVersion: secrets-store.csi.x-k8s.io/v1
    kind: SecretProviderClass
    metadata:
      name: azure-sync
    spec:
      provider: azure
      secretObjects:                              # [OPTIONAL] SecretObjects defines the desired state of synced Kubernetes secret objects
      - data:
        - key: username                           # data field to populate
          objectName: foo1                        # name of the mounted content to sync; this could be the object name or the object alias
        secretName: foosecret                     # name of the Kubernetes secret object
        type: Opaque                              # type of Kubernetes secret object (for example, Opaque, kubernetes.io/tls)
    

    Feljegyzés

    Győződjön meg arról, hogy a objectNamesecretObjects mező megfelel a csatlakoztatott tartalom fájlnevének. Ha ehelyett használja objectAlias , annak meg kell egyeznie az objektum aliasával.

Környezeti változó beállítása Kubernetes-titkos kódokra való hivatkozáshoz

Feljegyzés

A YAML példa a titkos kódokhoz való hozzáférést mutatja be az env változók és a volume/volumeMount használatával. Ez szemléltető célokat szolgál. Egy tipikus alkalmazás az egyik vagy a másik módszert használja. Vegye figyelembe azonban, hogy ahhoz, hogy egy titkos kód env változókon keresztül elérhető legyen, először legalább egy podra kell csatlakoztatni.

  • Hivatkozzon az újonnan létrehozott Kubernetes-titkos kódra úgy, hogy beállít egy környezeti változót a podban, ahogyan az az alábbi YAML-példában is látható.

    kind: Pod
    apiVersion: v1
    metadata:
      name: busybox-secrets-store-inline
    spec:
      containers:
        - name: busybox
          image: registry.k8s.io/e2e-test-images/busybox:1.29-1
          command:
            - "/bin/sleep"
            - "10000"
          volumeMounts:
          - name: secrets-store01-inline
            mountPath: "/mnt/secrets-store"
            readOnly: true
          env:
          - name: SECRET_USERNAME
            valueFrom:
              secretKeyRef:
                name: foosecret
                key: username
      volumes:
        - name: secrets-store01-inline
          csi:
            driver: secrets-store.csi.k8s.io
            readOnly: true
            volumeAttributes:
              secretProviderClass: "azure-sync"
    

Hozzáférési metrikák

Az Azure Key Vault-szolgáltató

A metrikák a Prometheuson keresztül érhetők el a 8898-os portról, de ez a port alapértelmezés szerint nem érhető el a podon kívül.

  • A metrikák elérése a localhost használatával kubectl port-forward.

    kubectl port-forward -n kube-system ds/aks-secrets-store-provider-azure 8898:8898 & curl localhost:8898/metrics
    
Az Azure Key Vault-szolgáltató által a Titkos kulcstár CSI-illesztőprogramhoz biztosított metrikák
Metrika Leírás Címkék
keyvault_request Annak eloszlása, hogy mennyi ideig tartott a kulcstartóból való lejutás. os_type=<runtime os>, provider=azure, object_name=<keyvault object name>, object_type=<keyvault object type>error=<error if failed>
grpc_request Annak eloszlása, hogy mennyi ideig tartott a gRPC-kérések esetében. os_type=<runtime os>, provider=azure, grpc_method=<rpc full method>, grpc_code=<grpc status code>grpc_message=<grpc status message>

A titkos kulcsok tárának CSI-illesztőprogramja

A metrikák a 8095-ös portról vannak kiszolgálva, de ez a port alapértelmezés szerint nem jelenik meg a podon kívül.

  • A metrikák elérése a localhost használatával kubectl port-forward.

    kubectl port-forward -n kube-system ds/aks-secrets-store-csi-driver 8095:8095 &
    curl localhost:8095/metrics
    
A Titkos kulcstár CSI-illesztőprogramja által biztosított metrikák
Metrika Leírás Címkék
total_node_publish A sikeres kötetcsatlakoztatási kérelmek teljes száma. os_type=<runtime os>, provider=<provider name>
total_node_unpublish A sikeres kötet-leválasztott kérelmek teljes száma. os_type=<runtime os>
total_node_publish_error A kötet csatlakoztatási kéréseivel kapcsolatos hibák teljes száma. os_type=<runtime os>, , provider=<provider name>error_type=<error code>
total_node_unpublish_error A kötet nélküli kérelmekkel kapcsolatos hibák teljes száma. os_type=<runtime os>
total_sync_k8s_secret A szinkronizált Kubernetes-titkos kódok teljes száma. os_type=<runtime os, provider=<provider name>
sync_k8s_secret_duration_sec Annak eloszlása, hogy mennyi ideig tartott a Kubernetes-titkos kód szinkronizálása. os_type=<runtime os>
total_rotation_reconcile A forgatások teljes száma összeegyeztethető. os_type=<runtime os>, rotated=<true or false>
total_rotation_reconcile_error A forgás teljes száma összeegyeztethető a hibákkal. os_type=<runtime os>, , rotated=<true or false>error_type=<error code>
total_rotation_reconcile_error Annak eloszlása, hogy mennyi ideig tartott a titkos kulcstár tartalmainak rotálása a podok esetében. os_type=<runtime os>

Migrálás nyílt forrásból az AKS által felügyelt titkos kulcstár CSI-illesztőprogramjába

  1. Távolítsa el a nyílt forráskódú Titkos kulcstár CSI-illesztőprogramot az alábbi helm delete paranccsal.

    helm delete <release name>
    

    Feljegyzés

    Ha üzembehelyezési YAMLs használatával telepítette az illesztőprogramot és a szolgáltatót, az összetevőket az alábbi kubectl delete paranccsal törölheti.

    # Delete AKV provider pods from Linux nodes
    kubectl delete -f https://raw.githubusercontent.com/Azure/secrets-store-csi-driver-provider-azure/master/deployment/provider-azure-installer.yaml
    
    # Delete AKV provider pods from Windows nodes
    kubectl delete -f https://raw.githubusercontent.com/Azure/secrets-store-csi-driver-provider-azure/master/deployment/provider-azure-installer-windows.yaml
    
  2. Frissítse a meglévő AKS-fürtöt a funkcióval a az aks enable-addons parancs használatával.

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

Hibaelhárítás

A hibaelhárítási lépésekért tekintse meg az Azure Key Vault-szolgáltató hibaelhárítását a titkos kulcstár CSI-illesztőprogramjának használatával kapcsolatban.

Következő lépések

A Titkos kulcstár CSI-illesztőprogramhoz készült Azure Key Vault-szolgáltatóval kapcsolatos további információkért tekintse meg a következő erőforrásokat: