Udostępnij za pośrednictwem


Niestandardowy urząd certyfikacji (CA) w usłudze Azure Kubernetes Service (AKS) (wersja zapoznawcza)

W tym artykule przedstawiono sposób tworzenia niestandardowych urzędów certyfikacji i stosowania ich do klastrów usługi AKS.

Wymagania wstępne

Ograniczenia

  • Ta funkcja nie jest obecnie obsługiwana w przypadku pul węzłów systemu Windows.

Instalowanie rozszerzenia interfejsu wiersza polecenia platformy aks-preview Azure

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:

  1. Zainstaluj rozszerzenie aks-preview przy użyciu az extension add polecenia .

    az extension add --name aks-preview
    
  2. Przeprowadź aktualizację do najnowszej wersji rozszerzenia przy użyciu az extension update polecenia .

    az extension update --name aks-preview
    

Rejestrowanie flagi CustomCATrustPreview funkcji

  1. Zarejestruj flagę CustomCATrustPreview funkcji przy użyciu az feature register polecenia .

    az feature register --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
    

    Wyświetlenie stanu Zarejestrowane trwa kilka minut.

  2. Sprawdź stan rejestracji przy użyciu az feature show polecenia .

    az feature show --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
    
  3. Gdy stan będzie odzwierciedlał wartość Zarejestrowano, odśwież rejestrację dostawcy zasobów Microsoft.ContainerService przy użyciu az provider register polecenia .

    az provider register --namespace Microsoft.ContainerService
    

Niestandardowa instalacja urzędu certyfikacji w pulach węzłów usługi AKS

Instalowanie urzędów certyfikacji w pulach węzłów usługi AKS

  • Jeśli środowisko wymaga dodania niestandardowych urzędów certyfikacji do magazynu zaufania węzła w celu poprawnej aprowizacji, należy przekazać plik tekstowy zawierający maksymalnie 10 pustych certyfikatów rozdzielonych wierszami podczas az aks create operacji lub az aks update . Przykładowy plik tekstowy:

    -----BEGIN CERTIFICATE-----
    cert1
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    cert2
    -----END CERTIFICATE-----
    

Instalowanie urzędów certyfikacji podczas tworzenia puli węzłów

  • Zainstaluj urzędy certyfikacji podczas tworzenia puli węzłów przy użyciu az aks create polecenia i określ plik tekstowy parametru --custom-ca-trust-certificates .

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --enable-custom-ca-trust \
        --custom-ca-trust-certificates pathToFileWithCAs \
        --generate-ssh-keys
    

Rotacja urzędu certyfikacji w celu zapewnienia dostępności podczas rozruchu puli węzłów

  • Zaktualizuj urzędy certyfikacji przekazane do klastra podczas rozruchu przy użyciu az aks update polecenia i określ plik tekstowy parametru --custom-ca-trust-certificates .

    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --custom-ca-trust-certificates pathToFileWithCAs
    

    Uwaga

    Ta operacja wyzwala aktualizację modelu, zapewniając, że nowe węzły mają najnowsze urzędy certyfikacji wymagane do poprawnej aprowizacji. Usługa AKS tworzy dodatkowe węzły, opróżnia istniejące, usuwa je i zastępuje je węzłami, które mają zainstalowany nowy zestaw urzędów certyfikacji.

Instalowanie urzędów certyfikacji po utworzeniu puli węzłów

Jeśli środowisko można pomyślnie aprowizować bez niestandardowych urzędów certyfikacji, możesz podać urzędy certyfikacji, wdrażając wpis tajny w kube-system przestrzeni nazw. Takie podejście umożliwia rotację certyfikatów bez konieczności rekreacji węzłów.

  • Utwórz manifest YAML wpisu tajnego kubernetes z ciągiem certyfikatu data zakodowanym w formacie base64 w polu.

    apiVersion: v1
    kind: Secret
    metadata: 
        name: custom-ca-trust-secret
        namespace: kube-system
    type: Opaque
    data:
        ca1.crt: |
          {base64EncodedCertStringHere}
        ca2.crt: |
          {anotherBase64EncodedCertStringHere}
    

    Dane z tego wpisu tajnego są używane do aktualizowania urzędów certyfikacji na wszystkich węzłach. Upewnij się, że wpis tajny ma nazwę custom-ca-trust-secret i został utworzony w kube-system przestrzeni nazw. Instalowanie urzędów certyfikacji przy użyciu wpisu tajnego kube-system w przestrzeni nazw umożliwia rotację urzędu certyfikacji bez konieczności rekreacji węzłów. Aby zaktualizować lub usunąć urząd certyfikacji, możesz edytować i zastosować manifest YAML. Klaster sonduje zmiany i aktualizuje odpowiednio węzły. Zastosowanie zmian może potrwać kilka minut.

    Uwaga

    ponowne uruchomienie kontenera w węźle może być wymagane, aby urzędy certyfikacji były prawidłowo pobierane. Jeśli wygląda na to, że urzędy certyfikacji nie zostały poprawnie dodane do magazynu zaufania węzła, możesz wyzwolić ponowne uruchomienie przy użyciu następującego polecenia w powłoce węzła:

    systemctl restart containerd

Konfigurowanie nowego klastra usługi AKS do używania niestandardowego urzędu certyfikacji

  • Skonfiguruj nowy klaster usługi AKS do używania niestandardowego urzędu certyfikacji przy użyciu az aks create polecenia z parametrem --enable-custom-ca-trust .

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --enable-custom-ca-trust \
        --generate-ssh-keys
    

Konfigurowanie nowego klastra usługi AKS do używania niestandardowego urzędu certyfikacji z zainstalowanymi urzędami certyfikacji przed uruchomieniem węzła

  • Skonfiguruj nowy klaster usługi AKS do używania niestandardowego urzędu certyfikacji z zainstalowanymi urzędami certyfikacji przed uruchomieniem węzła przy użyciu az aks create polecenia --enable-custom-ca-trust i --custom-ca-trust-certificates .

    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --enable-custom-ca-trust \
        --custom-ca-trust-certificates pathToFileWithCAs \
        --generate-ssh-keys
    

Konfigurowanie istniejącego klastra usługi AKS tak, aby niestandardowe urzędy certyfikacji zostały zainstalowane przed uruchomieniem węzła

  • Skonfiguruj istniejący klaster usługi AKS, aby niestandardowe urzędy certyfikacji zostały dodane do magazynu zaufania węzła przed jego uruchomieniem przy użyciu az aks update polecenia z parametrem --custom-ca-trust-certificates .

    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --custom-ca-trust-certificates pathToFileWithCAs
    

Konfigurowanie nowej puli węzłów do używania niestandardowego urzędu certyfikacji

  • Skonfiguruj nową pulę węzłów, aby używać niestandardowego urzędu certyfikacji przy użyciu az aks nodepool add polecenia z parametrem --enable-custom-ca-trust .

    az aks nodepool add \
        --cluster-name <cluster-name> \
        --resource-group <resource-group-name> \
        --name <node-pool-name> \
        --enable-custom-ca-trust \
        --os-type Linux
    

    Jeśli nie istnieją żadne inne pule węzłów z włączoną funkcją, klaster musi uzgodnić jego ustawienia, aby zmiany zaczęły obowiązywać. Ta operacja odbywa się automatycznie w ramach pętli uzgadniania usługi AKS. Przed operacją zestaw demona i zasobniki nie są wyświetlane w klastrze. Możesz wyzwolić natychmiastową operację uzgadniania przy użyciu az aks update polecenia . Zestaw demona i zasobniki są wyświetlane po zakończeniu aktualizacji.

Konfigurowanie istniejącej puli węzłów do używania niestandardowego urzędu certyfikacji

  • Skonfiguruj istniejącą pulę węzłów, aby używać niestandardowego urzędu certyfikacji przy użyciu az aks nodepool update polecenia z parametrem --enable-custom-ca-trust .

    az aks nodepool update \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --enable-custom-ca-trust
    

    Jeśli nie istnieją żadne inne pule węzłów z włączoną funkcją, klaster musi uzgodnić jego ustawienia, aby zmiany zaczęły obowiązywać. Ta operacja odbywa się automatycznie w ramach pętli uzgadniania usługi AKS. Przed operacją zestaw demona i zasobniki nie są wyświetlane w klastrze. Możesz wyzwolić natychmiastową operację uzgadniania przy użyciu az aks update polecenia . Zestaw demona i zasobniki są wyświetlane po zakończeniu aktualizacji.

Wyłączanie niestandardowego urzędu certyfikacji w puli węzłów

  • Wyłącz funkcję niestandardowego urzędu certyfikacji w istniejącej puli węzłów przy użyciu az aks nodepool update polecenia z parametrem --disable-custom-ca-trust .

    az aks nodepool update \
        --resource-group <resource-group-name> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --disable-custom-ca-trust
    

Rozwiązywanie problemów

Funkcja jest włączona, a wpis tajny z urzędami certyfikacji jest dodawany, ale operacje kończą się niepowodzeniem z powodu błędu certyfikatu X.509 podpisanego przez nieznany urząd

Nieprawidłowo sformatowane certyfikaty przekazane w kluczu tajnym

Usługa AKS wymaga, aby certyfikaty przekazywane w wpisie tajnym utworzonym przez użytkownika były prawidłowo sformatowane i zakodowane w formacie base64. Upewnij się, że przekazane urzędy certyfikacji są prawidłowo zakodowane w formacie base64 i że pliki z urzędami certyfikacji nie mają podziałów wierszy CRLF. Certyfikaty przekazane do --custom-ca-trust-certificates nie powinny być zakodowane w formacie base64.

kontenerd nie odebrał nowych certyfikatów

W powłoce węzła uruchom polecenie systemctl restart containerd. Po ponownym uruchomieniu kontenera nowe certyfikaty są prawidłowo pobierane przez środowisko uruchomieniowe kontenera.

Następne kroki

Aby uzyskać więcej informacji na temat najlepszych rozwiązań w zakresie zabezpieczeń usługi AKS, zobacz Najlepsze rozwiązania dotyczące zabezpieczeń i uaktualnień klastra w usłudze Azure Kubernetes Service (AKS).