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:
Nainstalujte rozšíření aks-preview pomocí
az extension add
příkazu.az extension add --name aks-preview
Pomocí příkazu aktualizujte na nejnovější verzi rozšíření
az extension update
.az extension update --name aks-preview
Registrace příznaku CustomCATrustPreview
funkce
CustomCATrustPreview
Pomocí příkazu zaregistrujte příznakaz feature register
funkce.az feature register --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
Zobrazení stavu Zaregistrované trvá několik minut.
Pomocí příkazu ověřte stav
az feature show
registrace.az feature show --namespace "Microsoft.ContainerService" --name "CustomCATrustPreview"
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ředataz 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 vkube-system
oboru názvů. Instalace certifikačních autorit pomocí tajnéhokube-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
parametremaz 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 containerd
pří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).
Azure Kubernetes Service