Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wykonaj kroki opisane w Użyj dostawcę Azure Key Vault dla sterownika Secrets Store CSI w klastrze AKS i Podaj tożsamość, aby uzyskać dostęp do dostawcy Azure Key Vault dla sterownika Secrets Store CSI w AKS. Po wykonaniu tych kroków możesz zastosować dodatkowe konfiguracje lub wykonać rozwiązywanie problemów.
Opcje konfiguracji
Włączanie i wyłączanie automatycznego obracania
Po włączeniu automatycznego aktualizowania dla dostawcy tajemnic Azure Key Vault, zostaje zaktualizowane montowanie zasobnika (pod) oraz wpis tajny Kubernetes zdefiniowany w polu secretObjects
SecretProviderClass
. 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.
Gdy wpis tajny jest aktualizowany w zewnętrznym magazynie wpisów tajnych po początkowym wdrożeniu zasobnika, wpis tajny Kubernetes i instalacja zasobnika okresowo są aktualizowane w zależności od sposobu, w jaki aplikacja korzysta z danych tajnych.
Zamontuj sekret Kubernetes jako wolumin: użyj funkcji automatycznego obracania i synchronizowania 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 w sterowniku Secrets Store CSI. Aplikacja musi monitorować zmiany plików na woluminie zamontowanym przez sterownik CSI.
Użyj sekretu Kubernetes dla zmiennej środowiskowej: Uruchom ponownie pod, 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łącz automatyczną rotację na nowym klastrze AKS
Włącz automatyczne rotowanie tajemnic w nowym klastrze przy użyciu polecenia
az aks create
i włącz dodatekenable-secret-rotation
.az aks create \ --name myAKSCluster2 \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --enable-secret-rotation \ --generate-ssh-keys
Włącz auto-rotację w istniejącym klastrze AKS
Zaktualizuj istniejący klaster, aby włączyć automatyczną rotację sekretów za pomocą polecenia
az aks addon update
i parametruenable-secret-rotation
.az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation
Określanie niestandardowego interwału rotacji
Określ niestandardowy interwał rotacji przy użyciu
az aks addon update
polecenia z parametremrotation-poll-interval
.az aks addon update --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider --enable-secret-rotation --rotation-poll-interval 5m
Wyłączanie automatycznego obracania
Aby wyłączyć automatyczne obracanie, należy najpierw wyłączyć dodatek. Następnie możesz ponownie włączyć dodatek bez parametru enable-secret-rotation
.
Wyłącz dodatek dostawcy sekretów przy użyciu polecenia
az aks addon disable
.az aks addon disable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
Ponownie włącz dodatek dostawcy wpisów tajnych bez parametru
enable-secret-rotation
przy użyciu poleceniaaz aks addon enable
.az aks addon enable --resource-group myResourceGroup --name myAKSCluster2 --addon azure-keyvault-secrets-provider
Jeśli używasz już SecretProviderClass
, możesz zaktualizować dodatek bez wyłączania go, używając az aks addon enable
bez określenia parametru 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 elementuSecretProviderClass
w celu definiowania żądanego stanu tajnego Kubernetes, jak pokazano w poniższym przykładzie 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)
Uwaga
Upewnij się, że
objectName
w polusecretObjects
jest zgodne z nazwą pliku zamontowanej zawartości. Jeśli zamiast tego używaszobjectAlias
, powinien on być zgodny z aliasem obiektu.
Ustaw zmienną środowiskową do odwołania się do tajemnic Kubernetes
Uwaga
Przykładowy kod YAML demonstruje dostęp do wpisu tajnego za pomocą zmiennych env i woluminu/woluminuMount. Jest to przeznaczone do celów ilustracyjnych. Typowa aplikacja używałaby jednej metody lub drugiej. Należy jednak pamiętać, że aby sekret był dostępny za pośrednictwem zmiennych środowiskowych, najpierw musi być zamontowany przez co najmniej jeden pod.
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"
Metryki dostępu
Dostawca usługi Azure Key Vault
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 przy użyciu polecenia
kubectl port-forward
.kubectl port-forward -n kube-system ds/aks-secrets-store-provider-azure 8898:8898 & curl localhost:8898/metrics
Metryki udostępniane przez dostawcę usługi Azure Key Vault dla sterownika CSI dla tajnych magazynów
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> |
Sterownik CSI magazynu wpisów tajnych
Metryki są serwowane z portu 8095, ale ten port nie jest domyślnie udostępniony poza podem.
Uzyskaj dostęp do metryk za pośrednictwem hosta lokalnego przy użyciu polecenia
kubectl port-forward
.kubectl port-forward -n kube-system ds/aks-secrets-store-csi-driver 8095:8095 & curl localhost:8095/metrics
Metryki udostępniane przez sterownik CSI magazynu sekretów
Metryczne | opis | Tagi |
---|---|---|
całkowita_publikacja_węzła | Całkowita liczba pomyślnych żądań instalacji woluminu. |
os_type=<runtime os> , provider=<provider name> |
total_node_unpublish | Całkowita liczba pomyślnych żądań odinstalowania woluminu. | os_type=<runtime os> |
total_node_publish_error | Całkowita liczba błędów dotyczących żądań montowania woluminu. |
os_type=<runtime os> , provider=<provider name> , error_type=<error code> |
liczba_błędu_publikacji_węzła | Całkowita liczba błędów związanych z żądaniami odinstalowania woluminu. | os_type=<runtime os> |
total_sync_k8s_secret | Całkowita liczba zsynchronizowanych sekretów Kubernetes. |
os_type=<runtime os , provider=<provider name> |
sync_k8s_secret_duration_sec | Rozkład czasu synchronizacji sekretu Kubernetes. | os_type=<runtime os> |
total_rotation_reconcile | Łączna liczba uzgodnień rotacji. |
os_type=<runtime os> , rotated=<true or false> |
błąd w uzgadnianiu całkowitej rotacji | Łączna liczba rotacji uwzględnia błędy. |
os_type=<runtime os> , rotated=<true or false> , error_type=<error code> |
błąd_uzgodnienia_całkowitej_rotacji | Rozkład czasu rotacji zawartości sklepu tajemnic dla kontenerów. | os_type=<runtime os> |
Migrowanie z otwartoźródłowego sterownika CSI magazynu wpisów tajnych do sterownika zarządzanego przez AKS
Odinstaluj sterownik CSI magazynu wpisów tajnych typu open source przy użyciu następującego
helm delete
polecenia.helm delete <release name>
Uwaga
Jeśli sterownik i dostawca zostały zainstalowane przy użyciu dokumentów YAML wdrożeniowych, 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.yaml
Uaktualnij istniejący klaster usługi AKS, korzystając z funkcji za pomocą polecenia
az aks enable-addons
.az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
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:
Azure Kubernetes Service