Łączenie dostawcy tożsamości platformy Azure z sterownikiem CSI magazynu wpisów tajnych usługi Azure Key Vault w usłudze Azure Kubernetes Service (AKS)
Sterownik interfejsu CSI (Container Storage Interface) magazynu wpisów tajnych w usłudze Azure Kubernetes Service (AKS) zapewnia różne metody dostępu opartego na tożsamościach do usługi Azure Key Vault. W tym artykule opisano te metody i najlepsze rozwiązania dotyczące używania kontroli dostępu opartej na rolach (RBAC) lub modeli zabezpieczeń OpenID Connect (OIDC) w celu uzyskania dostępu do magazynu kluczy i klastra usługi AKS.
Możesz użyć jednej z następujących metod dostępu:
- Łącznik usługi z tożsamością zarządzaną
- Tożsamość obciążeń
- Tożsamość zarządzana przypisana przez użytkownika
Dowiedz się, jak nawiązać połączenie z usługą Azure Key Vault za pomocą sterownika CSI magazynu wpisów tajnych w klastrze usługi Azure Kubernetes Service (AKS) przy użyciu łącznika usługi. W tym artykule wykonasz następujące zadania:
- Utwórz klaster usługi AKS i usługę Azure Key Vault.
- Utwórz połączenie między klastrem AKS a usługą Azure Key Vault za pomocą łącznika usługi Service Connector.
- Utwórz identyfikator
SecretProviderClass
CRD i elementPod
, który używa dostawcy CSI do testowania połączenia. - Wyczyść zasoby.
Ważne
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje zapoznawcze usługi AKS są częściowo objęte pomocą techniczną dla klientów. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Interfejs wiersza polecenia platformy Azure. Zaloguj się przy użyciu
az login
polecenia . - Docker i kubectl. Aby zainstalować narzędzie kubectl lokalnie, użyj
az aks install-cli
polecenia . - Podstawowa wiedza na temat kontenerów i usługi AKS. Rozpocznij pracę, przygotowując aplikację dla usługi AKS.
- Przed rozpoczęciem upewnij się, że wykonasz kroki opisane w artykule Używanie dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi Azure Kubernetes Service (AKS), aby włączyć sterownik CSI magazynu wpisów tajnych usługi Azure Key Vault w klastrze usługi AKS.
Początkowa konfiguracja
Jeśli używasz łącznika usługi po raz pierwszy, uruchom polecenie az provider register , aby zarejestrować dostawców zasobów usługi Service Connector i Kubernetes Configuration.
az provider register -n Microsoft.ServiceLinker
az provider register -n Microsoft.KubernetesConfiguration
Napiwek
Możesz sprawdzić, czy ci dostawcy zasobów zostali już zarejestrowani, uruchamiając polecenia
az provider show -n "Microsoft.ServiceLinker" --query registrationState
iaz provider show -n "Microsoft.KubernetesConfiguration" --query registrationState
.Opcjonalnie użyj polecenia interfejsu wiersza polecenia platformy Azure, aby uzyskać listę obsługiwanych usług docelowych dla klastra usługi AKS.
az aks connection list-support-types --output table
Tworzenie zasobów platformy Azure
Utwórz grupę zasobów przy użyciu
az group create
polecenia .az group create \ --name <resource-group-name> \ --location <location>
Utwórz klaster usługi AKS przy użyciu
az aks create
polecenia . Poniższy przykład tworzy klaster usługi AKS z jednym węzłem z włączoną tożsamością zarządzaną.az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --enable-managed-identity \ --node-count 1
Połącz się z klastrem
az aks get-credentials
przy użyciu polecenia .az aks get-credentials \ --resource-group <resource-group-name> \ --name <cluster-name>
Utwórz magazyn kluczy platformy
az keyvault create
Azure przy użyciu polecenia .az keyvault create \ --resource-group <resource-group-name> \ --name <key-vault-name> \ --location <location>
Utwórz wpis tajny w magazynie kluczy przy użyciu
az keyvault secret set
polecenia .az keyvault secret set \ --vault-name <key-vault-name> \ --name <secret-name> \ --value <secret-value>
Tworzenie połączenia usługi w usłudze AKS za pomocą łącznika usługi (wersja zapoznawcza)
Połączenie usługi z usługą Azure Key Vault można utworzyć przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
W witrynie Azure Portal przejdź do zasobu klastra usługi AKS.
Z menu usługi w obszarze Ustawienia wybierz pozycję Łącznik usługi (wersja zapoznawcza)>Utwórz.
Na stronie Tworzenie połączenia skonfiguruj następujące ustawienia na karcie Podstawowe :
- Przestrzeń nazw kubernetes: wybierz wartość domyślną.
- Typ usługi: wybierz pozycję Key Vault i zaznacz pole wyboru, aby włączyć dostawcę CSI usługi Azure Key Vault.
- Nazwa połączenia: wprowadź nazwę połączenia.
- Subskrypcja: wybierz subskrypcję zawierającą magazyn kluczy.
- Magazyn kluczy: wybierz utworzony magazyn kluczy.
- Typ klienta: wybierz pozycję Brak.
Wybierz pozycję Przejrzyj i utwórz, a następnie wybierz pozycję Utwórz , aby utworzyć połączenie.
Testowanie połączenia
Klonowanie przykładowego repozytorium i wdrażanie plików manifestu
Sklonuj przykładowe repozytorium przy użyciu
git clone
polecenia .git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Zmień katalogi na przykład dostawcy CSI usługi Azure Key Vault.
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
secret_provider_class.yaml
W pliku zastąp następujące symbole zastępcze informacjami o usłudze Azure Key Vault:- Zastąp
<AZURE_KEYVAULT_NAME>
ciąg nazwą utworzonego i połączonego magazynu kluczy. - Zastąp element
<AZURE_KEYVAULT_TENANTID>
identyfikatorem dzierżawy magazynu kluczy. - Zastąp element
<AZURE_KEYVAULT_CLIENTID>
identyfikatoremazureKeyvaultSecretsProvider
klienta tożsamości dodatku. - Zastąp ciąg
<KEYVAULT_SECRET_NAME>
utworzonym wpisem tajnym magazynu kluczy. Na przykładExampleSecret
.
- Zastąp
Wdróż crD
SecretProviderClass
przy użyciukubectl apply
polecenia .kubectl apply -f secret_provider_class.yaml
Wdróż plik manifestu
Pod
kubectl apply
przy użyciu polecenia .Polecenie tworzy zasobnik o nazwie
sc-demo-keyvault-csi
w domyślnej przestrzeni nazw klastra usługi AKS.kubectl apply -f pod.yaml
Weryfikowanie połączenia
Sprawdź, czy zasobnik został pomyślnie utworzony przy użyciu
kubectl get
polecenia .kubectl get pod/sc-demo-keyvault-csi
Po uruchomieniu zasobnika jest dostępna instalowana zawartość na ścieżce woluminu określonej w wdrożeniu YAML.
Pokaż wpisy tajne przechowywane w magazynie wpisów tajnych przy użyciu
kubectl exec
polecenia .kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
Wyświetl wpis tajny przy użyciu
kubectl exec
polecenia .To przykładowe polecenie wyświetla wpis tajny testowy o nazwie
ExampleSecret
.kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
Wymagania wstępne dotyczące sterownika CSI
- Przed rozpoczęciem upewnij się, że wykonasz kroki opisane w artykule Używanie dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi Azure Kubernetes Service (AKS), aby włączyć sterownik CSI magazynu wpisów tajnych usługi Azure Key Vault w klastrze usługi AKS.
- Tożsamość obciążeń Microsoft Entra obsługuje zarówno klastry systemu Windows, jak i Linux.
Dostęp za pomocą Tożsamość obciążeń Microsoft Entra
Tożsamość obciążeń Microsoft Entra to tożsamość używana przez aplikację działającą w zasobniku do uwierzytelniania się w innych usługach platformy Azure, takich jak obciążenia w oprogramowaniu. Sterownik CSI magazynu wpisów tajnych integruje się z natywnymi możliwościami platformy Kubernetes w celu federacji z zewnętrznymi dostawcami tożsamości.
W tym modelu zabezpieczeń klaster usługi AKS działa jako wystawca tokenu. Następnie identyfikator Entra firmy Microsoft używa identyfikatora OIDC do odnajdywania publicznych kluczy podpisywania i weryfikowania autentyczności tokenu konta usługi przed wymianą go na token entra firmy Microsoft. Aby obciążenie wymieniało token konta usługi przewidywany na jego wolumin dla tokenu Entra firmy Microsoft, potrzebna jest biblioteka klienta tożsamości platformy Azure w zestawie Azure SDK lub biblioteka Microsoft Authentication Library (MSAL)
Uwaga
- Ta metoda uwierzytelniania zastępuje tożsamość zarządzaną zasobnika firmy Microsoft (wersja zapoznawcza). Tożsamość zarządzana typu open source firmy Microsoft Entra (wersja zapoznawcza) w usłudze Azure Kubernetes Service została uznana za przestarzałą od 24.01.2022 r.
- Tożsamość obciążeń Microsoft Entra obsługuje zarówno klastry systemu Windows, jak i Linux.
Konfigurowanie tożsamości obciążenia
Ustaw subskrypcję przy użyciu
az account set
polecenia .export SUBSCRIPTION_ID=<subscription id> export RESOURCE_GROUP=<resource group name> export UAMI=<name for user assigned identity> export KEYVAULT_NAME=<existing keyvault name> export CLUSTER_NAME=<aks cluster name> az account set --subscription $SUBSCRIPTION_ID
Utwórz tożsamość zarządzaną przy użyciu
az identity create
polecenia .Uwaga
W tym kroku założono, że masz istniejący klaster usługi AKS z włączoną tożsamością obciążenia. Jeśli nie masz go włączonego, zobacz Włączanie tożsamości obciążenia w istniejącym klastrze usługi AKS, aby go włączyć.
az identity create --name $UAMI --resource-group $RESOURCE_GROUP export USER_ASSIGNED_CLIENT_ID="$(az identity show --resource-group $RESOURCE_GROUP --name $UAMI --query 'clientId' -o tsv)" export IDENTITY_TENANT=$(az aks show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --query identity.tenantId -o tsv)
Utwórz przypisanie roli, które przyznaje tożsamości obciążenia uprawnienia dostępu do wpisów tajnych magazynu kluczy, kluczy dostępu i certyfikatów przy użyciu
az role assignment create
polecenia .Ważne
- Jeśli magazyn kluczy jest ustawiony na
--enable-rbac-authorization
wartość i używaszkey
lubcertificate
wpisz, przypiszKey Vault Certificate User
rolę, aby nadać uprawnienia. - Jeśli magazyn kluczy jest ustawiony z
--enable-rbac-authorization
typem i używaszsecret
go, przypiszKey Vault Secrets User
rolę. - Jeśli magazyn kluczy nie jest ustawiony
--enable-rbac-authorization
za pomocą polecenia , możesz użyćaz keyvault set-policy
polecenia z parametrem--key-permissions get
,--certificate-permissions get
lub--secret-permissions get
, aby utworzyć zasady magazynu kluczy w celu udzielenia dostępu dla kluczy, certyfikatów lub wpisów tajnych. Na przykład:
az keyvault set-policy --name $KEYVAULT_NAME --key-permissions get --object-id $IDENTITY_OBJECT_ID
export KEYVAULT_SCOPE=$(az keyvault show --name $KEYVAULT_NAME --query id -o tsv) # Example command for key vault with RBAC enabled using `key` type az role assignment create --role "Key Vault Certificate User" --assignee $USER_ASSIGNED_CLIENT_ID --scope $KEYVAULT_SCOPE
- Jeśli magazyn kluczy jest ustawiony na
Pobierz adres URL wystawcy OIDC klastra
az aks show
usługi AKS przy użyciu polecenia .Uwaga
W tym kroku założono, że masz istniejący klaster usługi AKS z włączonym adresem URL wystawcy OIDC. Jeśli nie jest ona włączona, zobacz Aktualizowanie klastra usługi AKS za pomocą wystawcy OIDC, aby go włączyć.
export AKS_OIDC_ISSUER="$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query "oidcIssuerProfile.issuerUrl" -o tsv)" echo $AKS_OIDC_ISSUER
Ustanów poświadczenia tożsamości federacyjnej między aplikacją Microsoft Entra, wystawcą konta usługi i tematem. Pobierz identyfikator obiektu aplikacji Microsoft Entra przy użyciu następujących poleceń. Pamiętaj, aby zaktualizować wartości dla
serviceAccountName
iserviceAccountNamespace
przy użyciu nazwy konta usługi Kubernetes i jego przestrzeni nazw.export SERVICE_ACCOUNT_NAME="workload-identity-sa" # sample name; can be changed export SERVICE_ACCOUNT_NAMESPACE="default" # can be changed to namespace of your workload cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ServiceAccount metadata: annotations: azure.workload.identity/client-id: ${USER_ASSIGNED_CLIENT_ID} name: ${SERVICE_ACCOUNT_NAME} namespace: ${SERVICE_ACCOUNT_NAMESPACE} EOF
Utwórz poświadczenia tożsamości federacyjnej między tożsamością zarządzaną, wystawcą konta usługi i podmiotem
az identity federated-credential create
przy użyciu polecenia .export FEDERATED_IDENTITY_NAME="aksfederatedidentity" # can be changed as needed az identity federated-credential create --name $FEDERATED_IDENTITY_NAME --identity-name $UAMI --resource-group $RESOURCE_GROUP --issuer ${AKS_OIDC_ISSUER} --subject system:serviceaccount:${SERVICE_ACCOUNT_NAMESPACE}:${SERVICE_ACCOUNT_NAME}
SecretProviderClass
Wdróż element przy użyciukubectl apply
polecenia i następującego skryptu YAML.cat <<EOF | kubectl apply -f - # This is a SecretProviderClass example using workload identity to access your key vault apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: azure-kvname-wi # needs to be unique per namespace spec: provider: azure parameters: usePodIdentity: "false" clientID: "${USER_ASSIGNED_CLIENT_ID}" # Setting this to use workload identity keyvaultName: ${KEYVAULT_NAME} # Set to the name of your key vault cloudName: "" # [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud objects: | array: - | objectName: secret1 # Set to the name of your secret objectType: secret # object types: secret, key, or cert objectVersion: "" # [OPTIONAL] object versions, default to latest if empty - | objectName: key1 # Set to the name of your key objectType: key objectVersion: "" tenantId: "${IDENTITY_TENANT}" # The tenant ID of the key vault EOF
Uwaga
Jeśli używasz
objectAlias
zamiastobjectName
, zaktualizuj skrypt YAML, aby go uwzględnić.Uwaga
Aby element
SecretProviderClass
to działał prawidłowo, przed odwoływaniem się do nich wobjects
sekcji upewnij się, że usługa Azure Key Vault zostanie wypełniona wpisami tajnymi, kluczami lub certyfikatami.Wdróż przykładowy zasobnik przy użyciu
kubectl apply
polecenia i następującego skryptu YAML.cat <<EOF | kubectl apply -f - # This is a sample pod definition for using SecretProviderClass and workload identity to access your key vault kind: Pod apiVersion: v1 metadata: name: busybox-secrets-store-inline-wi labels: azure.workload.identity/use: "true" spec: serviceAccountName: "workload-identity-sa" containers: - name: busybox image: registry.k8s.io/e2e-test-images/busybox:1.29-4 command: - "/bin/sleep" - "10000" volumeMounts: - name: secrets-store01-inline mountPath: "/mnt/secrets-store" readOnly: true volumes: - name: secrets-store01-inline csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "azure-kvname-wi" EOF
Wymagania wstępne dotyczące sterownika CSI
- Przed rozpoczęciem upewnij się, że wykonasz kroki opisane w artykule Używanie dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi Azure Kubernetes Service (AKS), aby włączyć sterownik CSI magazynu wpisów tajnych usługi Azure Key Vault w klastrze usługi AKS.
Dostęp za pomocą tożsamości zarządzanej
Identyfikator zarządzany firmy Microsoft Entra to tożsamość używana przez administratora do uwierzytelniania się w innych usługach platformy Azure. Tożsamość zarządzana używa kontroli dostępu opartej na rolach do federacji z zewnętrznymi dostawcami tożsamości.
W tym modelu zabezpieczeń można udzielić dostępu do zasobów klastra członkom zespołu lub dzierżawcom udostępniającym rolę zarządzaną. Rola jest sprawdzana pod kątem zakresu dostępu do magazynu kluczy i innych poświadczeń. Po włączeniu dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi AKS została utworzona tożsamość użytkownika.
Konfigurowanie tożsamości zarządzanej
Uzyskaj dostęp do magazynu kluczy przy użyciu
az aks show
polecenia i przypisanej przez użytkownika tożsamości zarządzanej utworzonej przez dodatek. Należy również pobrać tożsamośćclientId
, która będzie używana w kolejnych krokach podczas tworzenia obiektuSecretProviderClass
.az aks show --resource-group <resource-group> --name <cluster-name> --query addonProfiles.azureKeyvaultSecretsProvider.identity.objectId -o tsv az aks show --resource-group <resource-group> --name <cluster-name> --query addonProfiles.azureKeyvaultSecretsProvider.identity.clientId -o tsv
Alternatywnie możesz utworzyć nową tożsamość zarządzaną i przypisać ją do zestawu skalowania maszyny wirtualnej lub do każdego wystąpienia maszyny wirtualnej w zestawie dostępności przy użyciu następujących poleceń.
az identity create --resource-group <resource-group> --name <identity-name> az vmss identity assign --resource-group <resource-group> --name <agent-pool-vmss> --identities <identity-resource-id> az vm identity assign --resource-group <resource-group> --name <agent-pool-vm> --identities <identity-resource-id> az identity show --resource-group <resource-group> --name <identity-name> --query 'clientId' -o tsv
Utwórz przypisanie roli, które przyznaje tożsamości uprawnienie dostępu do wpisów tajnych magazynu kluczy, kluczy dostępu i certyfikatów przy użyciu
az role assignment create
polecenia .Ważne
- Jeśli magazyn kluczy jest ustawiony przy
--enable-rbac-authorization
użyciu i używaszkey
lubcertificate
typu, przypiszKey Vault Certificate User
rolę. - Jeśli magazyn kluczy jest ustawiony z
--enable-rbac-authorization
typem i używaszsecret
go, przypiszKey Vault Secrets User
rolę. - Jeśli magazyn kluczy nie jest ustawiony
--enable-rbac-authorization
za pomocą polecenia , możesz użyćaz keyvault set-policy
polecenia z parametrem--key-permissions get
,--certificate-permissions get
lub--secret-permissions get
, aby utworzyć zasady magazynu kluczy w celu udzielenia dostępu dla kluczy, certyfikatów lub wpisów tajnych. Na przykład:
az keyvault set-policy --name $KEYVAULT_NAME --key-permissions get --object-id $IDENTITY_OBJECT_ID
export IDENTITY_OBJECT_ID="$(az identity show --resource-group <resource-group> --name <identity-name> --query 'principalId' -o tsv)" export KEYVAULT_SCOPE=$(az keyvault show --name <key-vault-name> --query id -o tsv) # Example command for key vault with RBAC enabled using `key` type az role assignment create --role "Key Vault Certificate User" --assignee $USER_ASSIGNED_CLIENT_ID --scope $KEYVAULT_SCOPE
- Jeśli magazyn kluczy jest ustawiony przy
Utwórz element
SecretProviderClass
przy użyciu następującego kodu YAML. Pamiętaj, aby użyć własnych wartości dlauserAssignedIdentityID
obiektów , ,tenantId
keyvaultName
i do pobrania z magazynu kluczy.# This is a SecretProviderClass example using user-assigned identity to access your key vault apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: azure-kvname-user-msi spec: provider: azure parameters: usePodIdentity: "false" useVMManagedIdentity: "true" # Set to true for using managed identity userAssignedIdentityID: <client-id> # Set the clientID of the user-assigned managed identity to use keyvaultName: <key-vault-name> # Set to the name of your key vault cloudName: "" # [OPTIONAL for Azure] if not provided, the Azure environment defaults to AzurePublicCloud objects: | array: - | objectName: secret1 objectType: secret # object types: secret, key, or cert objectVersion: "" # [OPTIONAL] object versions, default to latest if empty - | objectName: key1 objectType: key objectVersion: "" tenantId: <tenant-id> # The tenant ID of the key vault
Uwaga
Jeśli używasz
objectAlias
zamiastobjectName
, pamiętaj o zaktualizowaniu skryptu YAML.Uwaga
Aby element
SecretProviderClass
to działał prawidłowo, przed odwoływaniem się do nich wobjects
sekcji upewnij się, że usługa Azure Key Vault zostanie wypełniona wpisami tajnymi, kluczami lub certyfikatami.Zastosuj element do klastra
SecretProviderClass
kubectl apply
przy użyciu polecenia .kubectl apply -f secretproviderclass.yaml
Utwórz zasobnik przy użyciu następującego kodu YAML.
# This is a sample pod definition for using SecretProviderClass and the user-assigned identity to access your key vault kind: Pod apiVersion: v1 metadata: name: busybox-secrets-store-inline-user-msi spec: containers: - name: busybox image: registry.k8s.io/e2e-test-images/busybox:1.29-4 command: - "/bin/sleep" - "10000" volumeMounts: - name: secrets-store01-inline mountPath: "/mnt/secrets-store" readOnly: true volumes: - name: secrets-store01-inline csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "azure-kvname-user-msi"
Zastosuj zasobnik do klastra
kubectl apply
przy użyciu polecenia .kubectl apply -f pod.yaml
Weryfikowanie wpisów tajnych usługi Key Vault
Po uruchomieniu zasobnika jest dostępna instalowana zawartość na ścieżce woluminu określonej w wdrożeniu YAML. Użyj następujących poleceń, aby zweryfikować wpisy tajne i wydrukować wpis tajny testowy.
Pokaż wpisy tajne przechowywane w magazynie wpisów tajnych przy użyciu następującego polecenia.
kubectl exec busybox-secrets-store-inline-user-msi -- ls /mnt/secrets-store/
Wyświetl wpis tajny w magazynie przy użyciu następującego polecenia. W tym przykładowym poleceniu jest wyświetlany wpis tajny
ExampleSecret
testu .kubectl exec busybox-secrets-store-inline-user-msi -- cat /mnt/secrets-store/ExampleSecret
Uzyskiwanie certyfikatów i kluczy
Projekt usługi Azure Key Vault umożliwia ostre rozróżnienie między kluczami, wpisami tajnymi i certyfikatami. Funkcje certyfikatów usługi Key Vault zostały zaprojektowane tak, aby korzystały z funkcji kluczy i wpisów tajnych. Podczas tworzenia certyfikatu magazynu kluczy tworzy on adresowy klucz i wpis tajny o tej samej nazwie. Ten klucz umożliwia operacje uwierzytelniania, a wpis tajny umożliwia pobieranie wartości certyfikatu jako wpisu tajnego.
Certyfikat magazynu kluczy zawiera również publiczne metadane certyfikatu x509. Magazyn kluczy przechowuje zarówno składniki publiczne, jak i prywatne certyfikatu w kluczu tajnym. Każdy składnik można uzyskać, określając element w SecretProviderClass
elemencie objectType
. W poniższej tabeli przedstawiono obiekty mapowania na różne zasoby skojarzone z certyfikatem:
Objekt | Wartość zwracana | Zwraca cały łańcuch certyfikatów |
---|---|---|
key |
Klucz publiczny w formacie PEM (Privacy Enhanced Mail). | Nie dotyczy |
cert |
Certyfikat w formacie PEM. | Nie. |
secret |
Klucz prywatny i certyfikat w formacie PEM. | Tak |
Wyłączanie dodatku w istniejących klastrach
Uwaga
Przed wyłączeniem dodatku upewnij się, że nie SecretProviderClass
jest używany. Próba wyłączenia dodatku, gdy SecretProviderClass
element istnieje, powoduje wystąpienie błędu.
Wyłącz dostawcę usługi Azure Key Vault dla funkcji sterownika CSI magazynu wpisów tajnych w istniejącym klastrze przy użyciu
az aks disable-addons
polecenia z dodatkiemazure-keyvault-secrets-provider
.az aks disable-addons --addons azure-keyvault-secrets-provider --resource-group myResourceGroup --name myAKSCluster
Uwaga
Po wyłączeniu dodatku istniejące obciążenia nie powinny mieć problemów ani nie wyświetlać żadnych aktualizacji w zainstalowanych wpisach tajnych. Jeśli zasobnik zostanie uruchomiony ponownie lub nowy zasobnik zostanie utworzony w ramach zdarzenia skalowania w górę, nie można uruchomić zasobnika, ponieważ sterownik nie jest już uruchomiony.
Następne kroki
W tym artykule przedstawiono sposób tworzenia i udostępniania tożsamości w celu uzyskania dostępu do usługi Azure Key Vault. Integracja łącznika usług pomaga uprościć konfigurację połączenia dla obciążeń usługi AKS i usług zaplecza platformy Azure. Bezpiecznie obsługuje konfiguracje uwierzytelniania i sieci oraz postępuje zgodnie z najlepszymi rozwiązaniami dotyczącymi nawiązywania połączenia z usługami platformy Azure. Aby uzyskać więcej informacji, zobacz Use the Azure Key Vault provider for Secrets Store CSI Driver in an AKS cluster and the Service Connector introduction (Używanie dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze AKS) i wprowadzenie do łącznika usługi Service Connector.
Jeśli chcesz skonfigurować dodatkowe opcje konfiguracji lub wykonać rozwiązywanie problemów, zobacz Opcje konfiguracji i rozwiązywanie problemów z zasobami dla dostawcy usługi Azure Key Vault za pomocą sterownika CSI magazynu wpisów tajnych w usłudze AKS.
Azure Kubernetes Service