Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Följ stegen i Använda Azure Key Vault-providern för Secrets Store CSI-drivrutinen i ett AKS-kluster och Ange en identitet för att få åtkomst till Azure Key Vault-providern för Secrets Store CSI-drivrutinen i AKS. När du har slutfört de här stegen kan du använda extra konfigurationer eller utföra felsökning.
När du aktiverar automatisk rotation för Azure Key Vault Secrets Provider uppdateras poddmonteringen och Kubernetes-hemligheten secretObjects
som definieras i fältet SecretProviderClass
. Det gör det genom att söka efter ändringar regelbundet, baserat på det rotationsmätningsintervall som du definierade. Standardintervallet för rotationsmätning är två minuter.
När en hemlighet uppdateras i ett externt hemlighetslager efter den första podddistributionen uppdateras Kubernetes Secret och poddmonteringen regelbundet beroende på hur programmet använder hemliga data.
Montera Kubernetes Secret som en volym: Använd funktionerna för automatisk rotation och synkronisering av K8s-hemligheter i Secrets Store CSI-drivrutinen. Programmet måste hålla utkik efter ändringar från den monterade Kubernetes Secret-volymen. När CSI-drivrutinen uppdaterar Kubernetes-hemligheten uppdateras även motsvarande volyminnehåll automatiskt.
Programmet läser data från containerfilsystemet: Använd rotationsfunktionen i Secrets Store CSI-drivrutinen. Programmet måste hålla utkik efter filändringen från volymen som monterats av CSI-drivrutinen.
Använd Kubernetes Secret för en miljövariabel: Starta om podden för att hämta den senaste hemligheten som en miljövariabel. Använd ett verktyg som Reloader för att hålla utkik efter ändringar i den synkroniserade Kubernetes-hemligheten och utföra löpande uppgraderingar på poddar.
Aktivera automatisk rotation av hemligheter i ett nytt kluster med hjälp av az aks create
kommandot och aktivera enable-secret-rotation
tillägget.
az aks create \
--name myAKSCluster2 \
--resource-group myResourceGroup \
--enable-addons azure-keyvault-secrets-provider \
--enable-secret-rotation \
--generate-ssh-keys
Uppdatera ett befintligt kluster för att aktivera automatisk rotation av hemligheter med hjälp av az aks addon update
kommandot och parametern enable-secret-rotation
.
az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation
Ange ett anpassat rotationsintervall med kommandot az aks addon update
med parametern rotation-poll-interval
.
az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation --rotation-poll-interval 5m
Om du vill inaktivera automatisk rotation måste du först inaktivera tillägget. Sedan kan du återaktivera tillägget utan parametern enable-secret-rotation
.
Inaktivera tillägget för hemlighetsprovidern az aks addon disable
med kommandot .
az aks addon disable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
Återaktivera tillägget för hemlighetsprovidern utan parametern enable-secret-rotation
med kommandot az aks addon enable
.
az aks addon enable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
Om du redan använder en SecretProviderClass
kan du uppdatera tillägget utan att först inaktivera det med hjälp az aks addon enable
av utan att ange parametern enable-secret-rotation
.
Anteckning
YAML-exemplen i det här avsnittet är ofullständiga. Du måste ändra dem för att stödja den valda metoden för åtkomst till din nyckelvalvsidentitet. Mer information finns i Ange en identitet för åtkomst till Azure Key Vault-providern för Secrets Store CSI-drivrutinen.
Du kanske vill skapa en Kubernetes-hemlighet för att spegla innehållet i dina monterade hemligheter. Dina hemligheter synkroniseras när du har startat en podd för att montera dem. När du tar bort poddar som använder hemligheterna tas även din Kubernetes-hemlighet bort.
Synkronisera monterat innehåll med en Kubernetes-hemlighet med hjälp av secretObjects
fältet när du skapar ett SecretProviderClass
för att definiera det önskade tillståndet för Kubernetes-hemligheten, som du ser i följande exempel YAML.
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)
Anteckning
Kontrollera att objectName
fältet i secretObjects
matchar filnamnet för det monterade innehållet. Om du använder objectAlias
i stället ska det matcha objektaliaset.
Anteckning
Yaml-exemplet visar åtkomst till en hemlighet via env-variabler och volym/volumeMount. Detta är i illustrativt syfte. Ett typiskt program skulle använda den ena eller den andra metoden. Tänk dock på att för att en hemlighet ska vara tillgänglig via env-variabler måste den först monteras av minst en podd.
Referera till din nyligen skapade Kubernetes-hemlighet genom att ange en miljövariabel i podden, som du ser i följande exempel YAML.
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"
Mått hanteras via Prometheus från port 8898, men den här porten exponeras inte utanför podden som standard.
Få åtkomst till måtten via localhost med hjälp av kubectl port-forward
.
kubectl port-forward -n kube-system ds/aks-secrets-store-provider-azure 8898:8898 & curl localhost:8898/metrics
Mätvärde | Beskrivning | Taggar |
---|---|---|
keyvault_request | Fördelningen av hur lång tid det tog att komma från nyckelvalvet. | os_type=<runtime os> , provider=azure , object_name=<keyvault object name> , , , object_type=<keyvault object type> error=<error if failed> |
grpc_request | Fördelningen av hur lång tid det tog för gRPC-begäranden. | os_type=<runtime os> , provider=azure , grpc_method=<rpc full method> , , , grpc_code=<grpc status code> grpc_message=<grpc status message> |
Mått hanteras från port 8095, men den här porten exponeras inte utanför podden som standard.
Få åtkomst till måtten via localhost med hjälp av kubectl port-forward
.
kubectl port-forward -n kube-system ds/aks-secrets-store-csi-driver 8095:8095 &
curl localhost:8095/metrics
Mätvärde | Beskrivning | Taggar |
---|---|---|
total_node_publish | Det totala antalet lyckade volymmonteringsbegäranden. | os_type=<runtime os> , provider=<provider name> |
total_node_unpublish | Det totala antalet lyckade volymer som demonterar begäranden. | os_type=<runtime os> |
total_node_publish_error | Det totala antalet fel med volymmonteringsbegäranden. | os_type=<runtime os> , , provider=<provider name> error_type=<error code> |
total_node_unpublish_error | Det totala antalet fel med begäranden om att demontera volymer. | os_type=<runtime os> |
total_sync_k8s_secret | Det totala antalet Kubernetes-hemligheter som synkroniserats. | os_type=<runtime os , provider=<provider name> |
sync_k8s_secret_duration_sec | Fördelningen av hur lång tid det tog att synkronisera Kubernetes-hemligheten. | os_type=<runtime os> |
total_rotation_reconcile | Det totala antalet rotationsstämmor. | os_type=<runtime os> , rotated=<true or false> |
total_rotation_reconcile_error | Det totala antalet rotationsstämplar med fel. | os_type=<runtime os> , , rotated=<true or false> error_type=<error code> |
total_rotation_reconcile_error | Fördelningen av hur lång tid det tog att rotera innehåll från hemligheter för poddar. | os_type=<runtime os> |
Avinstallera CSI-drivrutinen för hemligheter med öppen källkod med hjälp av följande helm delete
kommando.
helm delete <release name>
Anteckning
Om du har installerat drivrutinen och providern med hjälp av distributions-YAML:er kan du ta bort komponenterna med hjälp av följande kubectl delete
kommando.
# 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
Uppgradera ditt befintliga AKS-kluster med funktionen med hjälp av az aks enable-addons
kommandot .
az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Felsökningssteg finns i Felsöka Azure Key Vault-provider för CSI-drivrutin för secrets store.
Mer information om Azure Key Vault-providern för Secrets Store CSI-drivrutinen finns i följande resurser:
Feedback om Azure Kubernetes Service
Azure Kubernetes Service är ett öppen källkod projekt. Välj en länk för att ge feedback:
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Hantera programkonfiguration och hemligheter i Azure Kubernetes Service (AKS) - Training
Lär dig hur du på ett säkert sätt lagrar programhemligheter och konfigurationer med hjälp av inbyggda Kubernetes-resurser i Azure Kubernetes Service (AKS).
Certifiering
Microsoft Certified: Azure Virtual Desktop Specialty - Certifications
Planera, leverera, hantera och övervaka virtuella skrivbordsupplevelser och fjärrappar på Microsoft Azure för alla enheter.