Samouczek: używanie dostawcy usługi Azure Key Vault dla sterownika CSI magazynu wpisów tajnych w klastrze usługi Azure Kubernetes Service (AKS)
Dowiedz się, jak nawiązać połączenie z usługą Azure Key Vault przy użyciu sterownika CSI w klastrze usługi Azure Kubernetes Service (AKS) za pomocą łącznika usługi. W tym samouczku 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 usługę
SecretProviderClass
CRD i korzystającą zpod
dostawcy CSI w celu przetestowania połączenia. - Wyczyść zasoby.
Ważne
Program Service Connect w usłudze AKS jest obecnie w wersji zapoznawczej. Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.
Ostrzeżenie
Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Zainstaluj interfejs wiersza polecenia platformy Azure i zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu polecenia az login .
- Zainstaluj platformę Dockeri narzędzie kubectl, aby zarządzać obrazem kontenera i zasobami Kubernetes.
- Podstawowa wiedza na temat kontenera i usługi AKS. Rozpocznij od przygotowania aplikacji dla usługi AKS.
Tworzenie zasobów platformy Azure
Utwórz grupę zasobów na potrzeby tego samouczka.
az group create \ --name MyResourceGroup \ --location eastus
Utwórz klaster usługi AKS za pomocą następującego polecenia lub zapoznaj się z samouczkiem. Jest to klaster, w którym tworzymy połączenie z usługą, definicję zasobnika i wdrażamy przykładową aplikację.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1
Połącz się z klastrem za pomocą następującego polecenia.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Utwórz usługę Azure Key Vault przy użyciu następującego polecenia lub zapoznaj się z samouczkiem. Jest to usługa docelowa połączona z klastrem AKS i sterownik CSI synchronizuje wpisy tajne.
az keyvault create \ --resource-group MyResourceGroup \ --name MyKeyVault \ --location EastUS
Utwórz wpis tajny w usłudze Key Vault za pomocą następującego polecenia.
az keyvault secret set \ --vault-name MyKeyVault \ --name ExampleSecret \ --value MyAKSExampleSecret
Tworzenie połączenia usługi w usłudze AKS za pomocą łącznika usługi (wersja zapoznawcza)
Utwórz połączenie usługi między klastrem usługi AKS i usługą Azure Key Vault przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Otwórz usługę Kubernetes w witrynie Azure Portal i wybierz pozycję Łącznik usługi z menu po lewej stronie.
Wybierz pozycję Utwórz i wypełnij ustawienia, jak pokazano poniżej. Pozostaw inne ustawienia wartościami domyślnymi.
Ustawienie Wybór opis Przestrzeń nazw platformy Kubernetes default Przestrzeń nazw, w której jest potrzebne połączenie w klastrze. Typ usługi Key Vault (włącz CSI) Wybierz usługę Key Vault jako docelowy typ usługi i zaznacz opcję włączenia interfejsu CSI. Nazwa połączenia keyvault_conn Użyj nazwy połączenia dostarczonej przez łącznik usługi lub wybierz własną nazwę połączenia. Subskrypcja <MySubscription>
Subskrypcja usługi docelowej usługi Azure Key Vault. Magazyn kluczy <MyKeyVault>
Docelowy magazyn kluczy, z którym chcesz nawiązać połączenie. Typ klienta Python Język kodu lub struktura używana do nawiązywania połączenia z usługą docelową. Po utworzeniu połączenia na stronie Łącznik usługi zostaną wyświetlone informacje o nowym połączeniu.
Testowanie połączenia
Sklonuj przykładowe repozytorium:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Przejdź do folderu przykładowego repozytorium dla usługi Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
Zastąp
secret_provider_class.yaml
symbole zastępcze w pliku w folderzeazure-keyvault-csi-provider
.- Zastąp
<AZURE_KEYVAULT_NAME>
ciąg nazwą utworzonego i połączonego magazynu kluczy. Wartość można pobrać z witryny Azure Portal łącznika usług. - Zastąp element
<AZURE_KEYVAULT_TENANTID>
identyfikatorem dzierżawy magazynu kluczy. Wartość można pobrać z witryny Azure Portal łącznika usług. - Zastąp element
<AZURE_KEYVAULT_CLIENTID>
identyfikatoremazureKeyvaultSecretsProvider
klienta tożsamości dodatku. Wartość można pobrać z witryny Azure Portal łącznika usług. - Zastąp
<KEYVAULT_SECRET_NAME>
ciąg nazwą wpisu tajnego magazynu kluczy, którą utworzyliśmy, na przykładExampleSecret
- Zastąp
Wdróż zasoby kubernetes w klastrze za
kubectl apply
pomocą polecenia . Zainstalujkubectl
lokalnie przy użyciu polecenia az aks install-cli , jeśli nie jest zainstalowany.- Wdróż crD
SecretProviderClass
.
kubectl apply -f secret_provider_class.yaml
- Wdróż element
pod
. Polecenie tworzy zasobnik o nazwiesc-demo-keyvault-csi
w domyślnej przestrzeni nazw klastra usługi AKS.
kubectl apply -f pod.yaml
- Wdróż crD
Sprawdź, czy wdrożenie zakończyło się pomyślnie, wyświetlając zasobnik za pomocą polecenia
kubectl
.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. 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 sc-demo-keyvault-csi -- 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 sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
Czyszczenie zasobów
Jeśli nie musisz ponownie używać zasobów utworzonych w tym samouczku, usuń wszystkie utworzone zasoby, usuwając grupę zasobów.
az group delete \
--resource-group MyResourceGroup
Następne kroki
Przeczytaj następujące artykuły, aby dowiedzieć się więcej na temat pojęć dotyczących łącznika usług i sposobu, w jaki pomaga on usłudze AKS łączyć się z usługami.