Udostępnij za pośrednictwem


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

Niestandardowy urząd certyfikacji (CA) umożliwia dodanie maksymalnie 10 certyfikatów zakodowanych w formacie base64 do magazynu zaufania węzła. Ta funkcja jest często potrzebna, gdy urzędy certyfikacji muszą być obecne w węźle, na przykład podczas nawiązywania połączenia z rejestrem prywatnym.

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

Wymagania wstępne

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
  • Potrzebny jest interfejs wiersza polecenia platformy Azure w wersji 2.72.0 lub nowszej, zainstalowany i skonfigurowany. Aby znaleźć swoją wersję CLI, uruchom 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.

Ograniczenia

  • Nie są obsługiwane grupy węzłów Windows.
  • Instalowanie różnych CA w tym samym klastrze nie jest wspierane.

Instalowanie certyfikatów CA w węzłowym magazynie zaufania

  1. Utwórz plik zawierający urzędy certyfikacji.

    Utwórz plik tekstowy zawierający maksymalnie 10 pustych certyfikatów rozdzielonych wierszami. Po przekazaniu tego pliku do klastra, certyfikaty te zostają zainstalowane w magazynach zaufania węzła.

    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. Te puste spacje spowodują błąd w następnym kroku, jeśli nie zostaną usunięte.

  2. Użyj az aks create lub az aks update, aby przekazać certyfikaty do klastra. Po zakończeniu operacji certyfikaty są instalowane w magazynach zaufania należących do węzła.

    • Zainstaluj urzędy certyfikacji podczas tworzenia klastra przy użyciu polecenia az aks create i określeniu pliku tekstowego dla parametru --custom-ca-trust-certificates.

      az aks create \
          --resource-group <resource-group-name> \
          --name <cluster-name> \
          --node-count 2 \
          --custom-ca-trust-certificates FileWithCAs \
          --generate-ssh-keys
      
    • Zainstaluj certyfikaty CA podczas aktualizacji klastra za pomocą polecenia az aks update i wskazując plik tekstowy dla parametru --custom-ca-trust-certificates.

      az aks update \
          --resource-group <resource-group-name> \
          --name <cluster-name> \
          --custom-ca-trust-certificates <path-to-ca-file>
      

    Uwaga / Notatka

    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.

  3. Sprawdź, czy certyfikaty zostały zainstalowane.

Użyj polecenia az aks show aby sprawdzić, czy certyfikaty są zainstalowane.

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

Dane wyjściowe securityProfile powinny zawierać Twoje niestandardowe certyfikaty zaufania urzędu certyfikacji.

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

Rozwiązywanie problemów

Błąd formatowania

Dodanie certyfikatów do klastra może spowodować błąd, jeśli plik z certyfikatami nie jest poprawnie sformatowany.

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.

Funkcja jest włączona, a tajny klucz związany z urzędami certyfikacji jest dodany, ale operacje kończą się niepowodzeniem z powodu błędu certyfikatu X.509 podpisanego przez nieznanego urzędu.

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

Certyfikaty przekazane do --custom-ca-trust-certificates nie powinny być zakodowane w formacie base64.

Kontenerd nie pobiera nowych certyfikatów

W powłoce węzła uruchom polecenie systemctl restart containerd. Po ponownym uruchomieniu kontenera środowisko uruchomieniowe kontenera pobiera nowe certyfikaty.

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