Udostępnij za pośrednictwem


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

Usługa AKS generuje i używa następujących certyfikatów, urzędów certyfikacji i kont usług (SA):

  • Serwer interfejsu API usługi AKS tworzy urząd certyfikacji nazywany urzędem certyfikacji klastra.
  • Serwer interfejsu API ma urząd certyfikacji klastra, który podpisuje certyfikaty komunikacji jednokierunkowej z serwera interfejsu API do usługi kubelets.
  • Każdy kubelet tworzy również żądanie podpisania certyfikatu (CSR), które jest podpisane przez urząd certyfikacji klastra na potrzeby komunikacji z klastra kubelet do serwera interfejsu API.
  • Agregator interfejsu API używa urzędu certyfikacji klastra do wystawiania certyfikatów na potrzeby komunikacji z innymi interfejsami API. Agregator interfejsu API może również mieć własny urząd certyfikacji do wystawiania tych certyfikatów, ale obecnie używa urzędu certyfikacji klastra.
  • Każdy węzeł używa tokenu sa, który jest podpisany przez urząd certyfikacji klastra.
  • Klient kubectl ma certyfikat do komunikowania się z klastrem usługi AKS.

Możesz również utworzyć niestandardowe urzędy certyfikacji, które umożliwiają ustanowienie zaufania między klastrami i obciążeniami usługi Azure Kubernetes Service (AKS), takimi jak prywatne rejestry, serwery proxy i zapory. Wpis tajny kubernetes przechowuje informacje urzędu certyfikacji, a następnie jest przekazywany do wszystkich węzłów w klastrze. Ta funkcja jest stosowana dla puli węzłów, dlatego należy ją włączyć w nowych i istniejących pulach węzłów.

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 parametru [az aks create][az-aks-create] command and specifying your text file for the --custom-ca-trust-certificates".

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --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 myResourceGroup \
        --name myAKSCluster \
        --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 wpis tajny [Kubernetes][kubernetes-secrets] manifest YAML z ciągiem certyfikatu zakodowanym data 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 myResourceGroup \
        --name myAKSCluster \
        --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 myResourceGroup \
        --name myAKSCluster \
        --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 myResourceGroup \
        --name myAKSCluster \
        --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 myAKSCluster \
        --resource-group myResourceGroup \
        --name myNodepool \
        --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-trust-ca .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name myNodepool \
        --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.

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).