Używanie niestandardowych autorytetów certyfikacji (CA) w Azure Kubernetes Service (AKS)

Obsługa niestandardowego urzędu certyfikacji (CA) umożliwia dodanie do 10 certyfikatów zakodowanych w standardzie Base64 do magazynu zaufanych certyfikatów węzła. W przypadku nowych klastrów zawartość certyfikatu urzędu certyfikacji nie może przekraczać 35 KB. Ta funkcja jest często potrzebna, gdy węzeł wymaga centrów certyfikacji (CA), na przykład podczas łączenia z prywatnym rejestrem.

W tym artykule pokazano, jak tworzyć niestandardowe centra certyfikacji i stosować je na klastrach AKS.

Note

Funkcja Custom CA dodaje niestandardowe certyfikaty do magazynu zaufania węzła usługi AKS. Certyfikaty dodane za pomocą tej funkcji nie są dostępne dla kontenerów działających w ramach zasobników. Jeśli potrzebujesz certyfikatów wewnątrz kontenerów, musisz dodać je oddzielnie, dodając je do obrazu używanego przez kontenery lub w trakcie działania za pomocą skryptów i sekreta.

Prerequisites

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
  • Interfejs wiersza polecenia platformy Azure w wersji 2.72.0 lub nowszej został zainstalowany i skonfigurowany. Aby znaleźć wersję interfejsu wiersza polecenia, uruchom polecenie az --version. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
  • Ciąg certyfikatu zakodowany w formacie base64 lub plik tekstowy z certyfikatem.

Limitations

  • Nie są obsługiwane grupy węzłów Windows.
  • Instalowanie różnych CA w tym samym klastrze nie jest wspierane.
  • W przypadku nowych klastrów zawartość certyfikatu urzędu certyfikacji nie może przekraczać 35 KB.

Tworzenie pliku certyfikatu

  • Utwórz plik tekstowy zawierający maksymalnie 10 pustych certyfikatów rozdzielonych wierszami. W przypadku nowych klastrów zawartość certyfikatu urzędu certyfikacji w pliku nie może przekraczać 35 KB. Po przekazaniu tego pliku do klastra certyfikaty są instalowane w magazynach zaufania węzła usługi AKS.

    Przykładowy plik tekstowy:

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

Przed przejściem do następnego kroku upewnij się, że w pliku tekstowym nie ma pustych spacji, aby uniknąć błędów.

Przekaż niestandardowe autorytety certyfikacyjne do klastra AKS

  • Przekaż certyfikaty do klastra przy użyciu az aks create polecenia lub az aks update z --custom-ca-trust-certificates ustawioną nazwą pliku certyfikatu.

    # Create a new cluster
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --custom-ca-trust-certificates <path-to-certificate-file> \
        --generate-ssh-keys
    
    # Update an existing cluster
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --custom-ca-trust-certificates <path-to-certificate-file>
    

    Note

    Ta operacja wyzwala aktualizację modelu, aby upewnić się, że wszystkie istniejące węzły mają zainstalowane te same certyfikaty urzędów certyfikacji w celu poprawnego zarządzania zasobami. Usługa AKS tworzy nowe węzły, opróżnia istniejące węzły, usuwa je i zastępuje węzłami z nowym zestawem certyfikatów autoryzacji.

Zweryfikuj, czy urzędy certyfikacji są zainstalowane

  • Sprawdź, czy urzędy certyfikacji są zainstalowane, używając polecenia az aks show.

    az aks show --resource-group <resource-group-name> --name <cluster-name> | grep securityProfile -A 4
    

    W danych wyjściowych sekcja securityProfile powinna zawierać Twoje niestandardowe certyfikaty urzędu certyfikacji. Przykład:

      "securityProfile": {
        "azureKeyVaultKms": null,
        "customCaTrustCertificates": [
            "values"
    

Rozwiązywanie niestandardowych błędów formatowania urzędu certyfikacji

Dodanie certyfikatów do klastra może spowodować błąd, jeśli plik z certyfikatami nie jest poprawnie sformatowany. Może zostać wyświetlony błąd podobny do następującego przykładu:

failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding

Jeśli wystąpi ten błąd, sprawdź, czy plik wejściowy nie zawiera dodatkowych nowych wierszy, białych spacji ani danych innych niż poprawnie sformatowane certyfikaty, jak pokazano w przykładowym pliku.

Rozwiązywanie błędów niestandardowego certyfikatu X.509, podpisanego przez nieznany urząd certyfikacji

Usługa AKS wymaga, aby certyfikaty zostały prawidłowo sformatowane i zakodowane w formacie base64. Upewnij się, że urzędy certyfikacji, które przekazałeś, są prawidłowo zakodowane w formacie base64 i że pliki z urzędami certyfikacji nie mają znaków końca linii CRLF.

Ponowne uruchamianie kontenera w celu pobrania nowych certyfikatów

Jeśli containerd nie pobiera nowych certyfikatów, uruchom polecenie systemctl restart containerd z powłoki węzła. Po ponownym uruchomieniu kontenera środowisko uruchomieniowe kontenera powinno pobrać nowe certyfikaty.

enableCustomCATrust (wersja zapoznawcza) migracja na emeryturę

Ważna

Od 14 września 2026 r. właściwość enableCustomCATrust wersji zapoznawczej zostanie wycofana. Po tej dacie pole enableCustomCATrust=true na poziomie puli węzłów nie będzie już umożliwiać włączenia funkcji niestandardowego urzędu certyfikacji (CA) w usłudze AKS. Ostatni interfejs API w wersji zapoznawczej, który obsługuje tę właściwość, to 2025-08-02-preview. Istniejące pule węzłów, które nadal opierają się na enableCustomCATrust=true, mogą doświadczać awarii podczas skalowania lub aktualizacji certyfikatów. Aby uniknąć przerw w działaniu usługi, zaktualizuj klastry i pule węzłów, których to dotyczy, i usuń właściwość wersji zapoznawczej przed 14 września 2026 r. Aby uzyskać instrukcje migracji, zobacz enableCustomCATrust (wersja zapoznawcza) migracja na emeryturę. Aby uzyskać więcej informacji na temat tego wycofania, zobacz zgłoszenie dotyczące wycofania na GitHubie. Aby być na bieżąco z ogłoszeniami i aktualizacjami, postępuj zgodnie z informacjami o wersji usługi AKS.

Usuń właściwość niestandardowego zaufania do urzędu certyfikacji (CA) z pul węzłów

Bieżące wersje Azure CLI nie zawierają --disable-custom-ca-trust opcji. Aby usunąć właściwość wycofywania enableCustomCATrust , użyj ogólnej aktualizacji zasobów dla każdej puli węzłów, której dotyczy problem. Interfejs 2025-08-02-preview API jest ostatnią wersją interfejsu API, która uwidacznia tę właściwość.

POOL_ID=$(az aks nodepool show \
  --resource-group <resource-group> \
  --cluster-name <cluster-name> \
  --name <node-pool-name> \
  --query id \
  --output tsv)

az resource update \
  --ids "$POOL_ID" \
  --api-version 2025-08-02-preview \
  --set properties.enableCustomCATrust=false

To polecenie pobiera kompletny zasób puli węzłów, aktualizuje element enableCustomCATrust i odsyła zaktualizowany zasób. Zachowuje on inne właściwości puli węzłów.

Sprawdź, czy właściwość jest wyłączona i czy aktualizacja puli węzłów zakończyła się pomyślnie:

az rest \
  --method get \
  --url "https://management.azure.com${POOL_ID}?api-version=2025-08-02-preview" \
  --query "properties.{enableCustomCATrust:enableCustomCATrust,provisioningState:provisioningState}" \
  --output json

Powtórz te kroki dla każdej puli węzłów, w której enableCustomCATrust jest włączona. W oczekiwanych danych wyjściowych wartość enableCustomCATrust jest ustawiona na false, a wartość provisioningState na Succeeded.

Jeśli chcesz, aby po tym wycofaniu dla klastrów było włączone niestandardowe zaufanie do urzędu certyfikacji, użyj --custom-ca-trust-certificates i podaj ścieżkę do pliku certyfikatu.

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