Szerkesztés

Megosztás a következőn keresztül:


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 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.

Privát AKS-fürtöt bemutató diagram.

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

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: