Udostępnij za pośrednictwem


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ą z pod 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

Tworzenie zasobów platformy Azure

  1. Utwórz grupę zasobów na potrzeby tego samouczka.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. 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
    
  3. Połącz się z klastrem za pomocą następującego polecenia.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. 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
    
  5. 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.

  1. Otwórz usługę Kubernetes w witrynie Azure Portal i wybierz pozycję Łącznik usługi z menu po lewej stronie.

  2. 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ą.
  3. Po utworzeniu połączenia na stronie Łącznik usługi zostaną wyświetlone informacje o nowym połączeniu.

    Zrzut ekranu witryny Azure Portal przedstawiający zasoby kubernetes utworzone przez łącznik usługi.

Testowanie połączenia

  1. Sklonuj przykładowe repozytorium:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Przejdź do folderu przykładowego repozytorium dla usługi Azure Key Vault:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. Zastąp secret_provider_class.yaml symbole zastępcze w pliku w folderze azure-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> identyfikatorem azureKeyvaultSecretsProvider 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ład ExampleSecret
  4. Wdróż zasoby kubernetes w klastrze za kubectl apply pomocą polecenia . Zainstaluj kubectl lokalnie przy użyciu polecenia az aks install-cli , jeśli nie jest zainstalowany.

    1. Wdróż crD SecretProviderClass .
    kubectl apply -f secret_provider_class.yaml
    
    1. Wdróż element pod. Polecenie tworzy zasobnik o nazwie sc-demo-keyvault-csi w domyślnej przestrzeni nazw klastra usługi AKS.
    kubectl apply -f pod.yaml
    
  5. 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
    
  6. 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 ExampleSecrettestu .
    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.