Tento článek porovnává síťové režimy pro Azure Kubernetes Service (AKS) a Amazon Elastic Kubernetes Service (Amazon EKS). Tento článek popisuje, jak zlepšit zabezpečení připojení ke spravovanému serveru rozhraní API clusteru AKS a různé možnosti omezení přístupu k veřejné síti.
Poznámka:
Tento článek je součástí série článků, které pomáhají odborníkům, kteří jsou obeznámeni s Amazon EKS, porozumět službě Azure Kubernetes Service (AKS).
Síťové režimy Amazon EKS
S Amazon Virtual Private Cloud (Amazon VPC) můžete spouštět prostředky Amazon Web Services (AWS) do virtuální sítě složené z veřejných a privátních podsítí nebo rozsahů IP adres v nástroji VPC. Veřejná podsíť hostuje prostředky, které musí být připojené k internetu, a privátní podsíť hostuje prostředky, které nejsou připojené k veřejnému internetu. Amazon EKS může zřídit skupiny spravovaných uzlů ve veřejných i privátních podsítích.
Řízení přístupu ke koncovému bodu umožňuje nakonfigurovat, jestli je koncový bod serveru API dostupný z veřejného internetu nebo přes VPC. EKS nabízí několik způsobů řízení přístupu ke koncovému bodu clusteru. Můžete povolit výchozí veřejný koncový bod, privátní koncový bod nebo oba koncové body současně. Když povolíte veřejný koncový bod, můžete přidat omezení CIDR (Classless Inter-Domain Routing) pro omezení IP adres klientů, které se můžou připojit k veřejnému koncovému bodu.
Způsob připojení uzlů Amazon EKS ke spravované řídicí rovině Kubernetes je určen nastavením koncového bodu nakonfigurovaného pro cluster. Nastavení koncového bodu můžete kdykoli změnit prostřednictvím konzoly Amazon EKS nebo rozhraní API. Další informace najdete v tématu Řízení přístupu ke koncovým bodům clusteru Amazon EKS.
Pouze veřejný koncový bod
Zveřejnění řídicí roviny prostřednictvím veřejného koncového bodu je výchozím režimem pro nové clustery Amazon EKS. Pokud je povolený pouze veřejný koncový bod pro cluster, požadavky rozhraní API Kubernetes, které pocházejí z Amazon VPC, například pracovní uzel pro komunikaci řídicí roviny, opustí VPC, ale neopustí síť Amazonu. Aby se uzly mohly připojit k řídicí rovině, musí používat veřejnou IP adresu a trasu k internetové bráně nebo trasu k bráně překladu síťových adres (NAT), kde můžou používat veřejnou IP adresu služby NAT Gateway.
Veřejné a privátní koncové body
Pokud jsou povolené veřejné i privátní koncové body, požadavky rozhraní API Kubernetes z VPC komunikují s řídicí rovinou prostřednictvím elastických síťových rozhraní spravovaných Amazonem EKS (ENI) v nástroji VPC. Server rozhraní API clusteru je přístupný z internetu.
Pouze privátní koncový bod
Pokud je povolený jenom privátní koncový bod, musí veškerý provoz na server rozhraní API clusteru, například kubectl
helm
příkazy, pocházet z VPC clusteru nebo připojené sítě. Veřejný přístup k serveru rozhraní API z internetu je zakázaný. Tento režim přístupu můžete implementovat pomocí AWS Virtual Private Network (AWS VPN) nebo AWS DirectConnect k VPC. Pokud chcete omezit přístup ke koncovému bodu bez AWS VPN nebo DirectConnectu, můžete do veřejného koncového bodu přidat omezení CIDR, abyste omezili připojení bez nastavení dalších sítí.
Další informace o možnostech připojení najdete v tématu Přístup k privátnímu pouze serveru api.
Síťový přístup AKS k serveru rozhraní API
Existují dvě možnosti zabezpečení síťového přístupu k rozhraní API Kubernetes v AKS, privátní cluster AKS nebo autorizované rozsahy IP adres.
Privátní cluster AKS
Privátní cluster AKS zajišťuje, aby síťový provoz mezi serverem API a fondy uzlů zůstal ve virtuální síti. V privátním clusteru AKS má řídicí rovina nebo server rozhraní API interní IP adresu, která je přístupná pouze prostřednictvím privátního koncového bodu Azure umístěného ve stejné virtuální síti. Jakýkoli virtuální počítač ve stejné virtuální síti může soukromě komunikovat s řídicí rovinou prostřednictvím privátního koncového bodu. Řídicí rovina nebo server rozhraní API se hostují v předplatném spravovaném Azure, zatímco cluster AKS a jeho fondy uzlů jsou v předplatném zákazníka.
Následující diagram znázorňuje konfiguraci privátního clusteru.
Stáhněte si soubor aplikace Visio s touto architekturou.
Pokud chcete zřídit privátní cluster AKS, poskytovatel prostředků AKS vytvoří privátní plně kvalifikovaný název domény (FQDN) pro skupinu prostředků uzlu v privátní zóně DNS. Volitelně může AKS také vytvořit veřejný plně kvalifikovaný název domény s odpovídajícím záznamem adresy (A
) ve veřejné zóně DNS Azure. Uzly agenta používají A
záznam v privátní zóně DNS k překladu IP adresy privátního koncového bodu pro komunikaci se serverem rozhraní API.
Poskytovatel prostředků AKS může vytvořit privátní zónu DNS ve skupině prostředků uzlu, nebo můžete vytvořit privátní zónu DNS a předat její ID prostředku do systému zřizování. Privátní cluster můžete vytvořit při použití Terraformu s Azure, Bicepem, šablonami ARM, Azure CLI, modulem Azure PowerShellu nebo rozhraním Azure REST API k vytvoření clusteru.
Veřejný plně kvalifikovaný název domény pro server rozhraní API můžete povolit během zřizování nebo pomocí příkazu az aks update s parametrem --enable-public-fqdn
v existujících clusterech. Pokud povolíte veřejný plně kvalifikovaný název domény, musí být jakýkoli virtuální počítač, který přistupuje k serveru, například agenta v místním hostování Azure DevOps nebo spouštěči v místním prostředí GitHub Actions, ve stejné virtuální síti, která je hostitelem clusteru, nebo v síti připojené prostřednictvím partnerského vztahu virtuální sítě nebo vpn typu site-to-site.
U privátního clusteru AKS zakážete veřejný plně kvalifikovaný název domény serveru rozhraní API. Aby bylo možné komunikovat s rovinou privátního řízení, musí být virtuální počítač ve stejné virtuální síti nebo v partnerské virtuální síti s propojením virtuální sítě s privátní zónou DNS. Záznam A
v privátní zóně DNS přeloží plně kvalifikovaný název domény serveru ROZHRANÍ API na IP adresu privátního koncového bodu, která komunikuje s podkladovou řídicí rovinou. Další informace najdete v tématu Vytvoření privátního clusteru Azure Kubernetes Service.
Možnosti nasazení privátního clusteru
Poskytovatel prostředků AKS zveřejňuje následující parametry pro přizpůsobení nasazení privátního clusteru AKS:
authorizedIpRanges
(řetězec) určuje povolené rozsahy IP adres ve formátu CIDR.disableRunCommand
(Logická hodnota) určuje, jestli se má příkaz pro cluster zakázatrun
nebo ne.enablePrivateCluster
(Logická hodnota) určuje, jestli se má cluster vytvořit jako soukromý.enablePrivateClusterPublicFQDN
(Logická hodnota) určuje, jestli se má vytvořit jiný veřejný plně kvalifikovaný název domény pro privátní cluster.privateDnsZone
(řetězec) určuje privátní zónu DNS ve skupině prostředků uzlu. Pokud nezadáte hodnotu, poskytovatel prostředků vytvoří zónu. Můžete zadat následující hodnoty:System
je výchozí hodnota.None
ve výchozím nastavení se nastaví na veřejný DNS, takže AKS nevytvoří privátní zónu DNS.<Your own private DNS zone resource ID>
používá privátní zónu DNS, kterou vytvoříte ve formátuprivatelink.<region>.azmk8s.io
nebo<subzone>.privatelink.<region>.azmk8s.io.
Následující tabulka ukazuje možnosti konfigurace DNS pro nasazení privátního clusteru AKS:
možnosti zóny Privátní DNS | enablePrivateClusterPublicFQDN: true |
enablePrivateClusterPublicFQDN: false |
---|---|---|
Systém | Uzly agenta a všechny další virtuální počítače ve virtuální síti clusteru AKS nebo jakékoli virtuální síti připojené k privátní zóně DNS použijte záznam privátní zóny A DNS k překladu privátní IP adresy privátního koncového bodu.Jakýkoli jiný virtuální počítač používá veřejný plně kvalifikovaný název domény serveru rozhraní API. |
Uzly agenta a všechny další virtuální počítače ve virtuální síti clusteru AKS nebo jakékoli virtuální síti připojené k privátní zóně DNS použijte záznam privátní zóny A DNS k překladu privátní IP adresy privátního koncového bodu.Není k dispozici žádný plně kvalifikovaný název domény veřejného serveru api. |
Nic | Všechny virtuální počítače, včetně uzlů agenta, používají veřejný plně kvalifikovaný název domény serveru rozhraní API dostupný prostřednictvím A záznamu ve veřejné zóně DNS spravované v Azure. |
Nesprávná konfigurace. Privátní cluster AKS potřebuje alespoň veřejnou nebo privátní zónu DNS pro překlad názvů serveru API. |
VLASTNÍ ID prostředku privátní zóny DNS | Uzly agenta a všechny další virtuální počítače ve virtuální síti clusteru AKS nebo jakékoli virtuální síti připojené k privátní zóně DNS použijte záznam privátní zóny A DNS k překladu privátní IP adresy privátního koncového bodu.Všechny ostatní virtuální počítače používají veřejný plně kvalifikovaný název domény serveru rozhraní API. |
Uzly agenta a všechny další virtuální počítače ve virtuální síti clusteru AKS nebo jakékoli virtuální síti připojené k privátní zóně DNS použijte záznam privátní zóny A DNS k překladu privátní IP adresy privátního koncového bodu.Není k dispozici žádný plně kvalifikovaný název domény veřejného serveru api. |
Připojení a správa privátního clusteru
Existuje několik možností pro vytvoření síťového připojení k privátnímu clusteru.
Vytvořte virtuální počítače ve stejné virtuální síti jako cluster AKS.
Použijte virtuální počítače v samostatné virtuální síti a nastavte partnerský vztah virtuálních sítí s virtuální sítí clusteru AKS.
Použijte příkaz Azure CLI az aks command invoke to run
kubectl
andhelm
commands on the private cluster without directly connecting to the cluster.Použijte připojení privátního koncového bodu Azure.
Privátní cluster AKS můžete spravovat pomocí nástroje příkazového řádku kubectl z virtuálního počítače pro správu ve stejné virtuální síti nebo v partnerské virtuální síti.
Azure Bastion můžete použít ve stejné virtuální síti nebo v partnerské virtuální síti pro připojení k virtuálnímu počítači pro správu jumpboxu. Azure Bastion je plně spravovaná platforma jako služba (PaaS), která umožňuje připojení k virtuálnímu počítači pomocí prohlížeče a webu Azure Portal. Azure Bastion poskytuje zabezpečené a bezproblémové připojení virtuálních počítačů RDP (Remote Desktop Protocol) nebo SSH (Secure Shell) přes protokol TLS (Transport Layer Security) přímo z webu Azure Portal. Když se virtuální počítače připojují přes Azure Bastion, nepotřebují veřejnou IP adresu, agenta ani speciální klientský software.
K spuštění kubectl
nebo helm
příkazům v privátním clusteru AKS můžete použít také příkaz az aks, aniž byste se museli připojit k virtuálnímu počítači jumpboxu.
Autorizované rozsahy IP adres
Druhou možností zlepšení zabezpečení clusteru a minimalizace útoků na server rozhraní API je použití autorizovaných rozsahů IP adres. Autorizované IP adresy omezují přístup k řídicí rovině veřejného clusteru AKS na známý seznam IP adres a identifikátorůCIDR. Když použijete tuto možnost, server rozhraní API je stále veřejně přístupný, ale přístup je omezený. Další informace najdete v tématu Zabezpečení přístupu k serveru rozhraní API pomocí autorizovaných rozsahů IP adres ve službě Azure Kubernetes Service (AKS).
Následující az aks update
příkaz Azure CLI autorizuje rozsahy IP adres:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--api-server-authorized-ip-ranges 73.140.245.0/24
Důležité informace o připojení AKS
Privátní cluster AKS poskytuje vyšší zabezpečení a izolaci než autorizované IP adresy. Existující veřejný cluster AKS ale nemůžete převést na privátní cluster. Autorizované IP adresy můžete povolit pro jakýkoli existující cluster AKS.
Autorizované rozsahy IP adres nemůžete použít na koncový bod privátního serveru rozhraní API. Autorizované IP adresy se vztahují pouze na veřejný server rozhraní API.
Privátní clustery nepodporují agenty hostované v Azure DevOps. Zvažte použití agentů v místním prostředí.
Pokud chcete službě Azure Container Registry povolit práci s privátním clusterem AKS, nastavte privátní propojení registru kontejneru ve virtuální síti clusteru. Nebo nastavte partnerský vztah mezi virtuální sítí Container Registry a virtuální sítí privátního clusteru.
Omezení služby Azure Private Link platí pro privátní clustery.
Pokud odstraníte nebo upravíte privátní koncový bod v podsíti zákazníka privátního clusteru, cluster přestane fungovat.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autoři:
- Paul Salvatori | Instanční inženýr
- Martin Gjoshevski | Vedoucí servisní technik
- Laura Nicolas | Vedoucí softwarový inženýr
Další přispěvatelé:
- Chad Kittel | Hlavní softwarový inženýr
- Ed Price | Vedoucí programový manažer obsahu
- Theano Petersen | Technický spisovatel
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- AKS pro odborníky na Amazon EKS
- Správa identit a přístupu Kubernetes
- Monitorování a protokolování Kubernetes
- Možnosti úložiště pro cluster Kubernetes
- Správa nákladů pro Kubernetes
- Správa uzlů a fondů uzlů Kubernetes
- Zásady správného řízení clusteru
Související prostředky
Následující odkazy obsahují odkazy na ukázky dokumentace a automatizace pro nasazení clusterů AKS se zabezpečeným rozhraním API:
- Vytvoření privátního clusteru AKS s veřejnou zónou DNS
- Vytvoření privátního clusteru Azure Kubernetes Service pomocí Terraformu a Azure DevOps
- Vytvoření veřejného nebo privátního clusteru Azure Kubernetes Service se službou Azure NAT Gateway a bránou Aplikace Azure lication Gateway
- Použití privátních koncových bodů s privátním clusterem AKS
- Úvod do služby Azure Private Link
- Úvod do zabezpečené síťové infrastruktury s využitím zabezpečení sítě Azure