Sdílet prostřednictvím


Vlastní certifikační autorita (CA) ve službě Azure Kubernetes Service (AKS) (Preview)

AKS generuje a používá následující certifikáty, certifikační autority (CA) a účty služeb (SA):

  • Server rozhraní API AKS vytvoří certifikační autoritu s názvem certifikační autorita clusteru.
  • Server ROZHRANÍ API má certifikační autoritu clusteru, která podepisuje certifikáty pro jednosměrnou komunikaci ze serveru rozhraní API do kubelets.
  • Každý kubelet také vytvoří žádost o podepsání certifikátu (CSR), která je podepsaná certifikační autoritou clusteru pro komunikaci z kubeletu na server rozhraní API.
  • Agregátor rozhraní API používá certifikační autoritu clusteru k vydávání certifikátů pro komunikaci s jinými rozhraními API. Agregátor rozhraní API může mít také vlastní certifikační autoritu pro vystavování těchto certifikátů, ale v současné době používá certifikační autoritu clusteru.
  • Každý uzel používá token SA, který je podepsaný certifikační autoritou clusteru.
  • Klient kubectl má certifikát pro komunikaci s clusterem AKS.

Můžete také vytvořit vlastní certifikační autority, které umožňují navázat vztah důvěryhodnosti mezi clustery a úlohami Služby Azure Kubernetes Service (AKS), jako jsou privátní registry, proxy servery a brány firewall. Tajný kód Kubernetes ukládá informace certifikační autority a předává se všem uzlům v clusteru. Tato funkce se používá pro fond uzlů, takže ji musíte povolit v nových a existujících fondech uzlů.

V tomto článku se dozvíte, jak vytvořit vlastní certifikační autority a aplikovat je na clustery AKS.

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet.
  • Nainstalované Rozhraní příkazového řádku Azure (verze 2.43.0 nebo novější)
  • Řetězec certifikátu s kódováním base64 nebo textový soubor s certifikátem.

Omezení

  • Tato funkce se v současné době nepodporuje pro fondy uzlů Windows.

aks-preview Instalace rozšíření Azure CLI

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné bázi. Verze Preview jsou poskytovány "tak, jak jsou" a "dostupné", a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview AKS jsou částečně pokryty zákaznickou podporou na základě maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:

  1. Nainstalujte rozšíření aks-preview pomocí az extension add příkazu.

    az extension add --name aks-preview
    
  2. Pomocí příkazu aktualizujte na nejnovější verzi rozšíření az extension update .

    az extension update --name aks-preview
    

Registrace příznaku CustomCATrustPreview funkce

  1. CustomCATrustPreview Pomocí příkazu zaregistrujte příznak az feature register funkce.

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

    Zobrazení stavu Zaregistrované trvá několik minut.

  2. Pomocí příkazu ověřte stav az feature show registrace.

    az feature show --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
    
  3. Jakmile se stav projeví jako zaregistrovaný, aktualizujte registraci poskytovatele prostředků Microsoft.ContainerService pomocí az provider register příkazu.

    az provider register --namespace Microsoft.ContainerService
    

Vlastní instalace certifikační autority ve fondech uzlů AKS

Instalace certifikačních autorit ve fondech uzlů AKS

  • Pokud vaše prostředí vyžaduje přidání vlastních certifikačních autorit do úložiště důvěryhodnosti uzlů pro správné zřizování, musíte během az aks create operací předat az aks update textový soubor obsahující až 10 prázdných certifikátů oddělených řádky. Ukázkový textový soubor:

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

Instalace certifikačních autorit během vytváření fondu uzlů

  • Během vytváření fondu uzlů nainstalujte certifikační autority pomocí az aks create příkazu a zadáním textového --custom-ca-trust-certificates souboru pro parametr.

    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
    

Rotace certifikační autority pro dostupnost při spouštění fondu uzlů

  • Aktualizujte certifikační autority předané do vašeho clusteru během spouštění pomocí az aks update příkazu a zadáním textového --custom-ca-trust-certificates souboru pro parametr.

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

    Poznámka:

    Tato operace aktivuje aktualizaci modelu a zajistí, aby nové uzly měly nejnovější certifikační autority potřebné pro správné zřizování. AKS vytváří další uzly, vyprázdní stávající uzly, odstraní je a nahradí je uzly, které mají nainstalovanou novou sadu certifikačních autorit.

Instalace certifikačních autorit po vytvoření fondu uzlů

Pokud je možné vaše prostředí úspěšně zřídit bez vlastních certifikačních autorit, můžete certifikační autority poskytnout nasazením tajného kube-system kódu do oboru názvů. Tento přístup umožňuje obměně certifikátů bez nutnosti uzlu znovu odpočinek.

  • Vytvořte manifest YAML tajného kódu Kubernetes s řetězcem certifikátu zakódovaným v base64 v data poli.

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

    Data z tohoto tajného kódu se používají k aktualizaci certifikačních autorit na všech uzlech. Ujistěte se, že je tajný klíč pojmenovaný custom-ca-trust-secret a je vytvořen v kube-system oboru názvů. Instalace certifikačních autorit pomocí tajného kube-system kódu v oboru názvů umožňuje rotaci certifikační autority bez nutnosti uzlu znovu vyžadovat. Pokud chcete aktualizovat nebo odebrat certifikační autoritu, můžete upravit a použít manifest YAML. Cluster se dotazuje na změny a odpovídajícím způsobem aktualizuje uzly. Než se změny použijí, může to trvat několik minut.

    Poznámka:

    Restartování kontejneru na uzlu může být nutné, aby se certifikační autority správně převzaly. Pokud se zdá, že certifikační autority nejsou správně přidané do úložiště důvěryhodnosti vašeho uzlu, můžete restartovat pomocí následujícího příkazu z prostředí uzlu:

    systemctl restart containerd

Konfigurace nového clusteru AKS pro použití vlastní certifikační autority

  • Nakonfigurujte nový cluster AKS tak, aby používal vlastní certifikační autoritu az aks create pomocí příkazu s 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
    

Konfigurace nového clusteru AKS pro použití vlastní certifikační autority s nainstalovanými certifikačními autoritami před spuštěním uzlu

  • Nakonfigurujte nový cluster AKS tak, aby používal vlastní certifikační autoritu s certifikačními autoritami nainstalovanými před spuštěním uzlu pomocí az aks create příkazu s parametry --enable-custom-ca-trust a --custom-ca-trust-certificates parametry.

    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
    

Konfigurace existujícího clusteru AKS tak, aby před spuštěním uzlu měly nainstalované vlastní certifikační autority

  • Nakonfigurujte existující cluster AKS tak, aby vaše vlastní certifikační autority byly přidány do úložiště důvěryhodnosti uzlu před jeho spuštěním pomocí az aks update příkazu s parametrem --custom-ca-trust-certificates .

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

Konfigurace nového fondu uzlů pro použití vlastní certifikační autority

  • Nakonfigurujte nový fond uzlů tak, aby používal vlastní certifikační autoritu az aks nodepool add pomocí příkazu s 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
    

    Pokud neexistují žádné jiné fondy uzlů s povolenou funkcí, cluster musí odsouhlasit jeho nastavení, aby se změny projevily. K této operaci dochází automaticky jako součást smyčky odsouhlasení AKS. Před operací se v clusteru nezobrazí sada démon a pody. Pomocí příkazu můžete aktivovat okamžitou operaci az aks update odsouhlasení. Po dokončení aktualizace se zobrazí sada démon a pody.

Konfigurace existujícího fondu uzlů pro použití vlastní certifikační autority

  • Nakonfigurujte existující fond uzlů tak, aby používal vlastní certifikační autoritu az aks nodepool update pomocí příkazu s 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
    

    Pokud neexistují žádné jiné fondy uzlů s povolenou funkcí, cluster musí odsouhlasit jeho nastavení, aby se změny projevily. K této operaci dochází automaticky jako součást smyčky odsouhlasení AKS. Před operací se v clusteru nezobrazí sada démon a pody. Pomocí příkazu můžete aktivovat okamžitou operaci az aks update odsouhlasení. Po dokončení aktualizace se zobrazí sada démon a pody.

Zakázání vlastní certifikační autority ve fondu uzlů

  • Pomocí příkazu s --disable-custom-ca-trust parametrem az aks nodepool update zakažte funkci vlastní certifikační autority ve stávajícím fondu uzlů.

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

Řešení problému

Funkce je povolená a tajný klíč s certifikačními autoritami se přidává, ale operace selhávají s chybou certifikátu X.509 podepsaného neznámou autoritou.

Nesprávně formátované certifikáty předané v tajném kódu

AKS vyžaduje, aby certifikáty předané v tajném kódu vytvořeném uživatelem byly správně naformátované a kódované base64. Ujistěte se, že předané certifikační autority jsou správně zakódované base64 a že soubory s certifikačními autoritami nemají konců řádků CRLF. Certifikáty předané --custom-ca-trust-certificates do kódování Base64 by neměly být zakódované.

Kontejnery nenabídly nové certifikáty

V prostředí uzlu spusťte systemctl restart containerdpříkaz . Po restartování kontejneru se nové certifikáty správně vyzvednou modulem runtime kontejneru.

Další kroky

Další informace o osvědčených postupech zabezpečení AKS najdete v tématu Osvědčené postupy pro zabezpečení clusteru a upgrady ve službě Azure Kubernetes Service (AKS).