Ez a cikk a Azure Kubernetes Service (AKS) és az Amazon Elastic Kubernetes Service (Amazon EKS) hálózatkezelési módjait hasonlítja össze. A cikk azt ismerteti, hogyan javíthatja az AKS-fürt felügyelt API-kiszolgálójának kapcsolatbiztonságát, valamint a nyilvános hálózati hozzáférés korlátozásának különböző lehetőségeit.
Megjegyzés
Ez a cikk egy cikksorozat része, amely segít az Amazon EKS-t ismerő szakembereknek az AKS megértésében.
Amazon EKS hálózatkezelési módok
Az Amazon Virtual Private Cloud (Amazon VPC) használatával az Amazon Web Services- (AWS-) erőforrásokat egy nyilvános és privát alhálózatokból vagy a VPC IP-címtartományaiból álló virtuális hálózatba indíthatja. A nyilvános alhálózatok olyan erőforrásokat üzemeltetnek, amelyeknek csatlakozniuk kell az internethez, a privát alhálózatok pedig olyan erőforrásokat üzemeltetnek, amelyek nem csatlakoznak a nyilvános internethez. Az Amazon EKS nyilvános és privát alhálózatokon is kiépíthet felügyelt csomópontcsoportokat.
A végponthozzáférés-vezérlés lehetővé teszi annak konfigurálását, hogy az API Server-végpont elérhető-e a nyilvános internetről vagy a VPC-n keresztül. Az EKS számos módszert kínál a fürtvégponthoz való hozzáférés szabályozására. Egyidejűleg engedélyezheti az alapértelmezett nyilvános végpontot, egy privát végpontot vagy mindkét végpontot. A nyilvános végpont engedélyezésekor osztály nélküli Inter-Domain útválasztási (CIDR) korlátozásokat adhat hozzá a nyilvános végponthoz csatlakozni képes ügyfél IP-címeinek korlátozásához.
Az Amazon EKS-csomópontok felügyelt Kubernetes-vezérlősíkhoz való kapcsolódását a fürthöz konfigurált végpontbeállítás határozza meg. A végpontbeállításokat bármikor módosíthatja az Amazon EKS-konzolon vagy az API-val. További információ: Amazon EKS-fürtvégpont hozzáférés-vezérlése.
Csak nyilvános végpont
A vezérlősík nyilvános végponton keresztüli felfedése az új Amazon EKS-fürtök alapértelmezett módja. Ha csak a fürt nyilvános végpontja van engedélyezve, az Amazon VPC-ből származó Kubernetes API-kérések, például a munkavégző csomópont a sík kommunikációjának vezérléséhez, elhagyják a VPC-t, de nem hagyják el az Amazon hálózatát. Ahhoz, hogy a csomópontok csatlakozzanak a vezérlősíkhoz, egy nyilvános IP-címet és egy internetes átjáróhoz vezető útvonalat, vagy egy hálózati címfordítási (NAT) átjáróhoz vezető útvonalat kell használniuk, ahol használhatják a NAT Gateway nyilvános IP-címét.
Nyilvános és privát végpontok
Ha a nyilvános és a privát végpontok is engedélyezve vannak, a VPC-n belüli Kubernetes API-kérések a VPC Amazon EKS által felügyelt rugalmas hálózati adapterei (ENI-k) segítségével kommunikálnak a vezérlősíkkal. A fürt API-kiszolgálója elérhető az internetről.
Csak privát végpont
Ha csak a privát végpont engedélyezve van, a fürt API-kiszolgálójára irányuló összes forgalomnak , például kubectl
vagy helm
parancsnak a fürt VPC-jén vagy csatlakoztatott hálózatán belülről kell érkeznie. Az API-kiszolgálóhoz az internetről való nyilvános hozzáférés le van tiltva. Ezt a hozzáférési módot AWS virtuális magánhálózat (AWS VPN) vagy AWS DirectConnect használatával valósíthatja meg a VPC-hez. Ha AWS VPN vagy DirectConnect nélkül szeretné korlátozni a végponthoz való hozzáférést, ciDR-korlátozásokat adhat hozzá a nyilvános végponthoz, hogy további hálózatkezelés beállítása nélkül korlátozza a kapcsolatokat.
A csatlakozási lehetőségekről további információt a Csak privát API-kiszolgáló elérése című témakörben talál.
AKS-hálózati hozzáférés az API-kiszolgálóhoz
Két lehetőség van a Kubernetes API-hoz való hálózati hozzáférés védelmére az AKS-ben, egy privát AKS-fürtben vagy engedélyezett IP-tartományokban.
Privát AKS-fürt
Az AKS privát fürt biztosítja, hogy az API-kiszolgáló és a csomópontkészletek közötti hálózati forgalom a virtuális hálózaton belül maradjon. Egy privát AKS-fürtben a vezérlősík vagy az API-kiszolgáló olyan belső IP-címmel rendelkezik, amely csak az ugyanazon a virtuális hálózaton található Azure privát végponton keresztül érhető el. Az ugyanabban a virtuális hálózatban lévő virtuális gépek privát módon kommunikálhatnak a vezérlősíkkal a privát végponton keresztül. A vezérlősík vagy API-kiszolgáló az Azure által felügyelt előfizetésben található, az AKS-fürt és a csomópontkészletek pedig az ügyfél előfizetésében találhatók.
Az alábbi ábra egy privát fürtkonfigurációt szemléltet.
Töltse le az architektúra Visio-fájlját.
Privát AKS-fürt kiépítéséhez az AKS-erőforrásszolgáltató létrehoz egy privát teljes tartománynevet (FQDN) a privát DNS-zónában lévő csomópont-erőforráscsoport számára. Az AKS emellett létrehozhat egy nyilvános teljes tartománynevet is egy megfelelő címrekorddal (A
) az Azure nyilvános DNS-zónájában. Az ügynökcsomópontok a A
privát DNS-zónában lévő rekordot használják a privát végpont IP-címének feloldásához az API-kiszolgálóval való kommunikációhoz.
Az AKS-erőforrásszolgáltató létrehozhatja a privát DNS-zónát a csomópont erőforráscsoportjában, vagy létrehozhatja a privát DNS-zónát, és átadhatja annak erőforrás-azonosítóját a kiépítési rendszernek. Privát fürtöt akkor hozhat létre, ha a Terraformot azure-ral, Bicep-tel, ARM-sablonokkal, Azure CLI-vel, Azure PowerShell modullal vagy Azure REST API-val használja a fürt létrehozásához.
Az API-kiszolgáló nyilvános teljes tartománynevét a kiépítés során vagy az az aks update paranccsal engedélyezheti a --enable-public-fqdn
meglévő fürtök paraméterével. Ha engedélyezi a nyilvános teljes tartománynevet, a kiszolgálóhoz hozzáférő virtuális gépeknek, például az Azure DevOps saját üzemeltetésű ügynökének vagy egy GitHub Actions saját üzemeltetésű futónak ugyanabban a virtuális hálózatban kell lenniük, amely a fürtöt üzemelteti, vagy egy virtuális hálózatok közötti társviszony-létesítésen vagy helyek közötti VPN-en keresztül csatlakoztatott hálózaton kell lennie.
Privát AKS-fürt esetén letilthatja az API-kiszolgáló nyilvános teljes tartománynevét. A privát vezérlősíkkal való kommunikációhoz a virtuális gépnek ugyanabban a virtuális hálózatban kell lennie, vagy olyan virtuális társhálózatban kell lennie, amely a privát DNS-zónáhozkapcsolódik. A A
privát DNS-zónában lévő rekord feloldja az API-kiszolgáló teljes tartománynevét a mögöttes vezérlősíkkal kommunikáló privát végpont IP-címére. További információ: Privát Azure Kubernetes Service-fürt létrehozása.
Privát fürt üzembehelyezési lehetőségei
Az AKS-erőforrás-szolgáltató a következő paramétereket teszi elérhetővé a privát AKS-fürt üzembe helyezésének testreszabásához:
authorizedIpRanges
(karakterlánc) ciDR formátumban adja meg az engedélyezett IP-címtartományokat.disableRunCommand
(logikai) azt adja meg, hogy letiltsa-e arun
fürt parancsát.enablePrivateCluster
(logikai) azt adja meg, hogy privátként hozza-e létre a fürtöt.enablePrivateClusterPublicFQDN
(logikai) azt adja meg, hogy létre kell-e hozni egy másik nyilvános teljes tartománynevet a privát fürthöz.privateDnsZone
(sztring) egy privát DNS-zónát határoz meg a csomópont erőforráscsoportjában. Ha nem ad meg értéket, az erőforrás-szolgáltató létrehozza a zónát. A következő értékeket adhatja meg:System
az alapértelmezett érték.None
alapértelmezés szerint a nyilvános DNS lesz, így az AKS nem hoz létre privát DNS-zónát.<Your own private DNS zone resource ID>
egy privát DNS-zónát használ, amelyet a következő formátumbanprivatelink.<region>.azmk8s.io
hoz létre: vagy<subzone>.privatelink.<region>.azmk8s.io.
Az alábbi táblázat a privát AKS-fürt üzembe helyezésének DNS-konfigurációs lehetőségeit mutatja be:
saját DNS zónabeállítások | enablePrivateClusterPublicFQDN: true | enablePrivateClusterPublicFQDN: false |
---|---|---|
Rendszer | Az ügynökcsomópontok és az AKS-fürt virtuális hálózatában vagy bármely, a privát DNS-zónához csatlakoztatott virtuális hálózatban található egyéb virtuális gépek a privát DNS-zónarekord A használatával oldják fel a privát végpont magánhálózati IP-címét.Bármely más virtuális gép az API-kiszolgáló nyilvános teljes tartománynevét használja. |
Az ügynökcsomópontok és az AKS-fürt virtuális hálózatában vagy bármely, a privát DNS-zónához csatlakoztatott virtuális hálózatban található egyéb virtuális gépek a privát DNS-zónarekord A használatával oldják fel a privát végpont magánhálózati IP-címét.Nem érhető el nyilvános API-kiszolgáló teljes tartományneve. |
Nincs | Az összes virtuális gép, beleértve az ügynökcsomópontokat is, az API-kiszolgáló nyilvános teljes tartománynevét használja, amely az A Azure által felügyelt nyilvános DNS-zónában lévő rekordon keresztül érhető el. |
Helytelen konfiguráció. A privát AKS-fürtnek legalább egy nyilvános vagy egy privát DNS-zónára van szüksége az API-kiszolgáló névfeloldáshoz. |
<Saját privát DNS-zóna erőforrás-azonosítója> | Az ügynökcsomópontok és az AKS-fürt virtuális hálózatában vagy bármely, a privát DNS-zónához csatlakoztatott virtuális hálózatban található egyéb virtuális gépek a privát DNS-zónarekord A használatával oldják fel a privát végpont magánhálózati IP-címét.Bármely más virtuális gép az API-kiszolgáló nyilvános teljes tartománynevét használja. |
Az ügynökcsomópontok és az AKS-fürt virtuális hálózatában vagy bármely, a privát DNS-zónához csatlakoztatott virtuális hálózatban található egyéb virtuális gépek a privát DNS-zónarekord A használatával oldják fel a privát végpont magánhálózati IP-címét.Nem érhető el nyilvános API-kiszolgáló teljes tartományneve. |
Privát fürtkapcsolat és -kezelés
A privát fürt hálózati kapcsolatának létrehozására több lehetőség is van.
Hozzon létre virtuális gépeket ugyanabban a virtuális hálózatban, mint az AKS-fürt.
Használjon virtuális gépeket egy különálló virtuális hálózaton, és állítsa be a virtuális hálózatok közötti társviszonyt az AKS-fürt virtuális hálózatával.
Az az aks command invoke Azure CLI-paranccsal anélkül futtathat
kubectl
éshelm
parancsokat a privát fürtön, hogy közvetlenül csatlakozna a fürthöz.Használjon azure-beli privát végponti kapcsolatot.
A privát AKS-fürtöt a kubectl parancssori eszközzel kezelheti egy felügyeleti virtuális gépről ugyanabban a virtuális hálózatban vagy egy társviszonyban álló virtuális hálózatból.
Az Azure Bastiont használhatja ugyanabban a virtuális hálózatban vagy egy társviszonyban lévő virtuális hálózatban egy jumpbox felügyeleti virtuális géphez való csatlakozáshoz. Az Azure Bastion egy teljes körűen felügyelt szolgáltatásként nyújtott platform (PaaS), amely lehetővé teszi a virtuális géphez való csatlakozást a böngésző és a Azure Portal használatával. Az Azure Bastion biztonságos és zökkenőmentes távoli asztali protokollt (RDP) vagy biztonságos rendszerhéjat (SSH) használó virtuális gép kapcsolatot biztosít a transport layer security (TLS) használatával közvetlenül a Azure Portal. Amikor a virtuális gépek az Azure Bastionon keresztül csatlakoznak, nincs szükségük nyilvános IP-címre, ügynökre vagy speciális ügyfélszoftverre.
Az az aks command invoke paranccsal is futtathat kubectl
vagy helm
parancsokat futtathat a privát AKS-fürtön anélkül, hogy jumpbox virtuális géphez kellene csatlakoznia.
Engedélyezett IP-tartományok
A fürtbiztonság javítására és az API-kiszolgálóra irányuló támadások minimalizálására a második lehetőség az engedélyezett IP-tartományok használata. Az engedélyezett IP-címek a nyilvános AKS-fürt vezérlősíkjának hozzáférését az IP-címek és aCIDR-ek ismert listájára korlátozzák. Ha ezt a lehetőséget használja, az API-kiszolgáló továbbra is nyilvánosan elérhető, de a hozzáférés korlátozott. További információ: Biztonságos hozzáférés az API-kiszolgálóhoz engedélyezett IP-címtartományok használatával a Azure Kubernetes Service (AKS)-ben.
Az alábbi az aks update
Azure CLI-parancs engedélyezi az IP-címtartományokat:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--api-server-authorized-ip-ranges 73.140.245.0/24
AKS-kapcsolati szempontok
Az AKS privát fürt nagyobb biztonságot és elkülönítést biztosít, mint az engedélyezett IP-címek. Meglévő nyilvános AKS-fürtöt azonban nem konvertálhat privát fürtté. Bármely meglévő AKS-fürthöz engedélyezheti az engedélyezett IP-címeket.
A privát API-kiszolgáló végpontjaira nem alkalmazhat engedélyezett IP-tartományokat. Az engedélyezett IP-címek csak a nyilvános API-kiszolgálóra vonatkoznak.
A privát fürtök nem támogatják az Azure DevOps által üzemeltetett ügynököket. Fontolja meg a saját üzemeltetésű ügynökök használatát.
Ha engedélyezni szeretné Azure Container Registry számára, hogy privát AKS-fürttel működjön, állítson be egy privát kapcsolatot a tárolóregisztrációs adatbázishoz a fürt virtuális hálózatában. Vagy állítsa be a társviszonyt a Container Registry virtuális hálózata és a privát fürt virtuális hálózata között.
Azure Private Link szolgáltatáskorlátozások a privát fürtökre vonatkoznak.
Ha egy privát fürt ügyfél-alhálózatában törli vagy módosítja a privát végpontot, a fürt működése leáll.
Közreműködők
Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.
Fő szerzők:
- Paolo Salvatori | Szolgáltatásvezető mérnök
- Martin Gjoshevski | Vezető szolgáltatásmérnök
- Laura Nicolas | Vezető szoftvermérnök
Egyéb közreműködők:
- Chad Kittel | Vezető szoftvermérnök
- Ed Price | Vezető tartalomprogram-kezelő
- Theano Petersen | Műszaki író
A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.
Következő lépések
- AKS Amazon EKS-szakembereknek
- Kubernetes-identitás- és hozzáférés-kezelés
- Kubernetes monitorozása és naplózása
- Kubernetes-fürt tárolási lehetőségei
- A Kubernetes költségkezelése
- Kubernetes-csomópont- és csomópontkészlet-kezelés
- Fürtszabályozás
Kapcsolódó források (lehet, hogy a cikkek angol nyelvűek)
Az alábbi hivatkozások dokumentációs és automatizálási mintákra mutató hivatkozásokat tartalmaznak az AKS-fürtök biztonságos API-val történő üzembe helyezéséhez:
- Privát AKS-fürt létrehozása nyilvános DNS-zónával
- Privát Azure Kubernetes Service-fürt létrehozása a Terraform és az Azure DevOps használatával
- Nyilvános vagy privát Azure Kubernetes Service-fürt létrehozása az Azure NAT Gateway és a Azure Application Gateway használatával
- Privát végpontok használata privát AKS-fürttel
- A Azure Private Link bemutatása
- A hálózati infrastruktúra biztonságossá tételének bemutatása az Azure hálózati biztonságával