Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dostawca usługi Azure Key Vault dla sterownika interfejsu CSI (Container Storage Interface) magazynu wpisów tajnych umożliwia bezpieczne i zautomatyzowane zarządzanie wpisami tajnymi w usłudze Azure Kubernetes Service (AKS). Ten artykuł zawiera wskazówki dotyczące konfigurowania dostawcy, rozwiązywania typowych problemów i optymalizowania zarządzania sekretami w środowisku usługi AKS.
Wymagania wstępne
Przed kontynuowaniem pracy z tym przewodnikiem wykonaj kroki opisane w poniższych artykułach. Po wykonaniu tych kroków możesz zastosować dodatkowe konfiguracje lub wykonać rozwiązywanie problemów w klastrze usługi AKS.
Opcje konfiguracji
Zarządzanie automatycznym obracaniem
Po włączeniu automatycznej rotacji dla dostawcy wpisów tajnych usługi Azure Key Vault zaktualizuje on montaż zasobników i wpis tajny Kubernetes zdefiniowany w polu secretObjectsSecretProviderClass. Wykonuje to poprzez okresowe sondowanie pod kątem zmian, zgodnie z ustalonym przez Ciebie interwałem rotacji. Domyślny interwał sondowania rotacji to dwie minuty. Po zaktualizowaniu wpisu tajnego w zewnętrznym magazynie wpisów tajnych po początkowym wdrożeniu zasobnika zarówno wpis tajny Kubernetes, jak i instalacja zasobnika są okresowo odświeżane. Częstotliwość aktualizacji i metoda zależą od sposobu uzyskiwania przez aplikację dostępu do tajnych danych.
Zamontuj Sekret Kubernetes jako wolumin: użyj funkcji automatycznego obracania i synchronizacji sekretów K8s Sterownika CSI Secrets Store. Aplikacja musi obserwować zmiany w zamontowanym woluminie sekretu Kubernetes. Gdy sterownik CSI aktualizuje wpis tajny Kubernetes, odpowiednia zawartość woluminu zostanie również automatycznie zaktualizowana.
Aplikacja odczytuje dane z systemu plików kontenera: użyj funkcji rotacji Secrets Store CSI Driver. Aplikacja musi monitorować zmiany plików na woluminie zamontowanym przez sterownik CSI.
Użyj sekreta Kubernetes dla zmiennej środowiskowej: zrestartuj zasobnik, aby uzyskać najnowszy sekret jako zmienną środowiskową. Użyj narzędzia takiego jak Reloader, aby monitorować zmiany w zsynchronizowanym Kubernetes Secret i przeprowadzić aktualizacje kroczące na pods.
- Włączone
- Wyłącz
- Niestandardowe Rozwiązanie
Aby włączyć automatyczną rotację sekretów w nowym klastrze usługi AKS przy użyciu
az aks createi włączyć dodatekenable-secret-rotation, uruchom następujące polecenie:az aks create \ --name myAKSCluster2 \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --enable-secret-rotation \ --generate-ssh-keysAby zaktualizować istniejący klaster usługi AKS w celu włączenia automatycznego obracania tajemnic przy użyciu
az aks addon updatepolecenia i parametruenable-secret-rotation, uruchom następujące polecenie:az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation
Synchronizowanie zamontowanej zawartości z sekretem Kubernetes
Uwaga
Przykłady YAML w tej sekcji są niekompletne. Należy je zmodyfikować, aby obsługiwać wybraną metodę dostępu do tożsamości magazynu kluczy. Aby uzyskać szczegółowe informacje, zobacz Zapewnianie tożsamości, aby uzyskać dostęp do dostawcy Azure Key Vault dla sterownika CSI Secrets Store.
Możesz utworzyć tajne dane Kubernetes, aby odzwierciedlić zawartość twoich zamontowanych tajnych danych. Twoje tajne dane są synchronizowane po uruchomieniu zasobnika w celu ich zamontowania. Usunięcie zasobników korzystających z sekretów spowoduje również usunięcie sekretu Kubernetes.
Synchronizowanie zamontowanej zawartości z tajnym Kubernetes przy użyciu pola secretObjects podczas tworzenia elementu SecretProviderClass w celu definiowania żądanego stanu tajnego Kubernetes, jak pokazano w poniższym przykładzie YAML. Upewnij się, że objectName w polu secretObjects jest zgodne z nazwą pliku zamontowanej zawartości. Jeśli zamiast tego używasz objectAlias , powinien on być zgodny z aliasem obiektu.
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)
Ustaw zmienną środowiskową do odwołania się do tajemnic Kubernetes
Uwaga
W przykładowym pliku YAML pokazano, jak uzyskać dostęp do sekretu za pomocą zmiennych środowiskowych lub volume/volumeMount. Zazwyczaj aplikacja używa jednej metody lub drugiej. Aby jednak udostępnić sekret za pomocą zmiennych środowiskowych, co najmniej jeden pod musi zamontować sekret.
Odwołuj się do nowo utworzonego sekretu Kubernetes, ustawiając zmienną środowiskową w podzie, jak pokazano w poniższym przykładzie 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"
Migrowanie z otwartoźródłowego sterownika CSI magazynu wpisów tajnych do sterownika zarządzanego przez AKS
Odinstaluj open-source'owy sterownik CSI do zarządzania tajnymi danymi przy użyciu następującego
helm deletepolecenia:helm delete <release name>Wskazówka
Jeśli sterownik i dostawcę zostały zainstalowane przy użyciu plików YAML wdrożenia, możesz usunąć składniki przy użyciu następującego polecenia
kubectl delete.# 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.yamlUaktualnij istniejący klaster usługi AKS używając polecenia
az aks enable-addons.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
Metryki dostępu
Możesz monitorować kondycję i wydajność dostawcy usługi Azure Key Vault dla Sterownika CSI Sklepu Tajemnic, zbierając ujawniane przez niego metryki. Te wskaźniki zapewniają wgląd w czasy trwania żądań, wskaźniki błędów oraz ogólne działanie komponentów dostawcy i sterownika, ułatwiając rozwiązywanie problemów i optymalizację zarządzania tajnymi danymi klastra usługi AKS.
Metryki są obsługiwane za pośrednictwem Prometheus z portu 8898, ale ten port nie jest domyślnie uwidoczniony poza podem. Uzyskaj dostęp do metryk za pośrednictwem hosta lokalnego kubectl port-forward przy użyciu polecenia :
kubectl port-forward -n kube-system ds/aks-secrets-store-provider-azure 8898:8898 & curl localhost:8898/metrics
Te metryki ułatwiają monitorowanie wydajności i niezawodności dostawcy usługi Azure Key Vault, w tym opóźnienia żądań i śledzenia błędów zarówno dla usługi Key Vault, jak i operacji gRPC.
| Metryczne | opis | Tagi |
|---|---|---|
| keyvault_request | Rozkład czasu trwania procesu pobierania danych z magazynu kluczy. |
os_type=<runtime os>, , provider=azure, object_name=<keyvault object name>, , object_type=<keyvault object type>error=<error if failed> |
| grpc_request | Rozkład czasu trwania żądań gRPC. |
os_type=<runtime os>, , provider=azure, grpc_method=<rpc full method>, , grpc_code=<grpc status code>grpc_message=<grpc status message> |
Rozwiązywanie problemów
Aby uzyskać instrukcje rozwiązywania problemów, zobacz Rozwiązywanie problemów z dostawcą usługi Azure Key Vault dla sterownika CSI magazynu sekretów.
Następne kroki
Aby dowiedzieć się więcej o dostawcy Azure Key Vault dla CSI Driver magazynu tajemnic, zapoznaj się z następującymi zasobami: