Ez a cikk az Azure Kubernetes Service (AKS) és az Amazon Elastic Kubernetes Service (Amazon EKS) hálózatkezelési módjait hasonlítja össze. A cikk bemutatja, 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.
Feljegyzé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 amazon webszolgáltatások (AWS) erőforrásokat indíthat el egy nyilvános és privát alhálózatokból álló virtuális hálózatba, vagy a VPC IP-címtartományaiba. A nyilvános alhálózatok olyan erőforrásokat üzemeltetnek, amelyeket az internethez kell csatlakoztatni, és a privát alhálózatok 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ódon szabályozza a fürtvégponthoz való hozzáférést. Egyszerre 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 tartományközi útválasztási (CIDR) korlátozásokat adhat hozzá a nyilvános végponthoz csatlakozni képes ügyfél IP-címek korlátozásához.
Az Amazon EKS-csomópontok a 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ül történő 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, a Kubernetes API az Amazon VPC-n belülről érkező kéréseket, például a feldolgozó csomópontot a síkkommunikáció szabályozásához, hagyja el a VPC-t, de ne hagyja el az Amazon hálózatát. Ahhoz, hogy a csomópontok csatlakozzanak a vezérlősíkhoz, nyilvános IP-címet és internetes átjáróhoz vezető útvonalat kell használniuk, vagy egy hálózati címfordítási (NAT) átjáróhoz vezető útvonalat kell használniuk, ahol használhatják a NAT-átjáró 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 Kubernetes API-kérések a VPC-ben az Amazon EKS által felügyelt rugalmas hálózati adaptereken (ENI-k) keresztül 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
parancsoknak) a fürt VPC-jén vagy csatlakoztatott hálózatán belülről kell érkeznie. Az API-kiszolgálóhoz való nyilvános hozzáférés az internetről le van tiltva. Ezt a hozzáférési módot az AWS virtuális magánhálózat (AWS VPN) vagy a közvetlen AWS Csatlakozás használatával implementálhatja a VPC-hez. Ha AWS VPN vagy Direct nélkül szeretné korlátozni a végponthoz való hozzáférést Csatlakozás ciDR-korlátozásokat adhat hozzá a nyilvános végponthoz a kapcsolatok korlátozásához további hálózatkezelés beállítása nélkül.
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 hálózati hozzáférésének biztosítására az AKS-ben, egy privát AKS-fürtben vagy az 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 (VM) privát módon kommunikálhatnak a vezérlősíkkal a privát végponton keresztül. A vezérlősíkot vagy API-kiszolgálót az Azure által felügyelt előfizetés üzemelteti, míg az AKS-fürt és a csomópontkészletek 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ás-szolgáltató létrehoz egy 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 az Azure nyilvános DNS-zónájában egy megfelelő címrekorddal (A
) együtt. 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ás-szolgá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-, Bicep-, 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 saját üzemeltetésű GitHub Actions-futónak ugyanabban a virtuális hálózatban kell lenniük, amely a fürtöt üzemelteti, vagy egy virtuális hálózati társhálózaton vagy helyek közötti VPN-en keresztül csatlakoztatott hálózaton.
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 vagy egy társhálózatban kell lennie, amely a privát DNS-zónához kapcsoló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 üzembe helyezé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
A (sztring) CIDR formátumban adja meg az engedélyezett IP-tartományokat.disableRunCommand
(logikai) azt határozza meg, hogy letiltsa-e arun
fürt parancsát.enablePrivateCluster
(logikai) azt határozza meg, hogy privátként hozza-e létre a fürtöt.enablePrivateClusterPublicFQDN
(logikai) megadja, hogy létre kell-e hoznia egy másik nyilvános teljes tartománynevet a privát fürthöz.privateDnsZone
A (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:<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 beállításait 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 a privát DNS-zónához csatlakoztatott bármely virtuális hálózatban lévő bármely más virtuális gép a privát DNS-zónarekord A használatával oldja fel a privát végpont privát 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 a privát DNS-zónához csatlakoztatott bármely virtuális hálózatban lévő bármely más virtuális gép a privát DNS-zónarekord A használatával oldja fel a privát végpont privát IP-címét.Nem érhető el nyilvános API-kiszolgáló teljes tartományneve. |
Egyik sem | 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 egy 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 a privát DNS-zónához csatlakoztatott bármely virtuális hálózatban lévő bármely más virtuális gép a privát DNS-zónarekord A használatával oldja fel a privát végpont privát 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 a privát DNS-zónához csatlakoztatott bármely virtuális hálózatban lévő bármely más virtuális gép a privát DNS-zónarekord A használatával oldja fel a privát végpont privát 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ürthöz való hálózati kapcsolat létrehozásának számos lehetősége van.
Hozzon létre virtuális gépeket ugyanabban a virtuális hálózaton, mint az AKS-fürt.
Használjon virtuális gépeket egy külön 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.
Azure ExpressRoute- vagy VPN-kapcsolat használata.
Az Azure CLI-parancs az aks parancs meghívásával futtathat és
helm
parancsokat futtathatkubectl
a privát fürtön anélkül, hogy közvetlenül csatlakozna a fürthöz.Azure Private Endpoint-kapcsolat használata.
A privát AKS-fürtöket a kubectl parancssori eszközzel kezelheti egy felügyeleti virtuális gépről ugyanabban a virtuális hálózatban vagy egy társhálózaton.
Az Azure Bastiont használhatja ugyanabban a virtuális hálózatban vagy egy társhálózattal rendelkező virtuális géphez való csatlakozáshoz. Az Azure Bastion egy teljes körűen felügyelt szolgáltatásplatform (PaaS), amely lehetővé teszi a virtuális géphez való csatlakozást a böngésző és az Azure Portal használatával. Az Azure Bastion biztonságos és zökkenőmentes távoli asztali protokollt (RDP) vagy Secure Shell (SSH) virtuálisgép-kapcsolatot biztosít a Transport Layer Security (TLS) szolgáltatáson keresztül közvetlenül az Azure Portalról. 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 parancshívással kubectl
futtathat 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ök vezérlősíkjának hozzáférését az IP-címek és a CIDR-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 az Azure Kubernetes Service-ben (AKS).
Az alábbi az aks update
Azure CLI-parancs engedélyezi az IP-tartományokat:
az aks update \
--resource-group myResourceGroup \
--name myAKSCluster \
--api-server-authorized-ip-ranges 73.140.245.0/24
Az AKS-kapcsolat szempontjai
Az AKS privát fürt nagyobb biztonságot és elkülönítést biztosít, mint az engedélyezett IP-címek. A meglévő nyilvános AKS-fürtöket azonban nem konvertálhatja privát fürtté. Bármely meglévő AKS-fürthöz engedélyezhet engedélyezett IP-címeket.
Nem alkalmazhat engedélyezett IP-tartományokat privát API-kiszolgálóvégpontokra. 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é, hogy az Azure Container Registry 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 Tárolóregisztrációs adatbázis virtuális hálózata és a privát fürt virtuális hálózata között.
Az Azure Private Link szolgáltatás korlátozásai 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 | Főszolgáltatás-mérnök
- Martin Gjoshevski | Vezető szervizmérnök
- Laura Nicolas | Vezető szoftvermérnök
Egyéb közreműködők:
- Chad Kittel | Fő 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 beállításai
- A Kubernetes költségkezelése
- Kubernetes-csomópont és csomópontkészlet kezelése
- Fürtszabályozás
Kapcsolódó erőforrások
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 Azure-alkalmazás Gateway használatával
- Privát végpontok használata privát AKS-fürttel
- Az 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