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énytenable-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 aenable-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.
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
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 aaz 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
objectName
secretObjects
mező megfelel a csatlakoztatott tartalom fájlnevének. Ha ehelyett használjaobjectAlias
, 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
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
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: