Biztonságos hálózati hozzáférés a Kuberneteshez

Azure Bastion
Azure DNS
Azure Kubernetes Service (AKS)
Azure Private Link
Azure Virtual Network

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.

Egy privát AKS-fürtöt bemutató ábra.

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 a run 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átumban privatelink.<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.

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:

Egyéb közreműködők:

A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.

Következő lépések

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: