Az Azure Kubernetes Service (AKS) alkalmazásainak és fürtjeinek biztonsági fogalmai
A tárolóbiztonság védi a teljes teljes folyamatot az Azure Kubernetes Service-ben (AKS) futó alkalmazás-számítási feladatokra való buildeléstől.
A biztonságos ellátási lánc tartalmazza a buildkörnyezetet és a beállításjegyzéket.
A Kubernetes biztonsági összetevőket, például podbiztonsági szabványokat és titkos kulcsokat tartalmaz. Az Azure olyan összetevőket tartalmaz, mint az Active Directory, a Microsoft Defender for Containers, az Azure Policy, az Azure Key Vault, a hálózati biztonsági csoportok és a konvenciós fürtfrissítések. Az AKS a következő biztonsági összetevőket egyesíti a következőkkel:
- Adjon meg egy teljes hitelesítési és engedélyezési történetet.
- Az alkalmazások védelméhez alkalmazza a beépített AKS Azure Policyt.
- Végpontok közötti megállapítások az alkalmazáson keresztüli buildelésből a Microsoft Defender for Containers használatával.
- Tartsa az AKS-fürtön a legújabb operációsrendszer-biztonsági frissítéseket és Kubernetes-kiadásokat.
- Biztonságos podforgalmat és hozzáférést biztosít a bizalmas hitelesítő adatokhoz.
Ez a cikk bemutatja azokat az alapvető fogalmakat, amelyek biztosítják az alkalmazásokat az AKS-ben.
Biztonság összeállítása
Az ellátási lánc belépési pontjaként fontos, hogy statikus elemzést végezzen a rendszerkép-buildekről, mielőtt előléptetné őket a folyamaton. Ez magában foglalja a biztonsági rések és a megfelelőség értékelését. Nem arról van szó, hogy egy build meghibásodik, mert biztonsági rése van, mivel ez megszakítja a fejlesztést. A szállítói állapotnak a fejlesztői csapatok által végrehajtható biztonsági rések alapján történő szegmentálásáról van szó. A türelmi időszakok használatával a fejlesztőknek időt kell hagyniuk az azonosított problémák elhárítására.
Beállításjegyzék biztonsága
A rendszerkép biztonságirés-állapotának felmérése a beállításjegyzékben észleli a eltérést, és olyan képeket is észlel, amelyek nem a buildkörnyezetből származnak. A Jegyző V2 használatával aláírásokat csatolhat a rendszerképekhez, így meggyőződhet arról, hogy az üzembe helyezés megbízható helyről érkezik.
Fürtbiztonság
Az AKS-ben a Kubernetes fő összetevői a Microsoft által biztosított, felügyelt és karbantartott felügyelt szolgáltatás részét képezik. Minden AKS-fürt saját egybérlős, dedikált Kubernetes-főkiszolgálóval rendelkezik, amely biztosítja az API Servert, a Schedulert stb. További információ: Az Azure Kubernetes Service sebezhetőségi kezelése.
A Kubernetes API-kiszolgáló alapértelmezés szerint nyilvános IP-címet és teljes tartománynevet (FQDN) használ. Engedélyezett IP-tartományok használatával korlátozhatja az API-kiszolgáló végpontjának elérését. Létrehozhat egy teljesen privát fürtöt is, amely korlátozza az API-kiszolgáló hozzáférését a virtuális hálózathoz.
Az API-kiszolgálóhoz való hozzáférést a Kubernetes szerepköralapú hozzáférés-vezérlésével (Kubernetes RBAC) és az Azure RBAC-vel szabályozhatja. További információ: Microsoft Entra integráció az AKS-sel.
Csomópont biztonsága
Az AKS-csomópontok az Ön által felügyelt és karbantartott Azure-beli virtuális gépek (VM-ek).
- A Linux-csomópontok az Ubuntu vagy az Azure Linux optimalizált verzióit futtatják.
- A Windows Server-csomópontok egy optimalizált Windows Server 2022-kiadást futtatnak a tároló futtatókörnyezetével
containerd
.
Az AKS-fürt létrehozásakor vagy vertikális felskálázásakor a csomópontok automatikusan üzembe lesznek helyezve a legújabb operációsrendszer-biztonsági frissítésekkel és konfigurációkkal.
Feljegyzés
Futó AKS-fürtök:
- A Kubernetes 1.19-es és újabb verziója – A Linux-csomópontkészletek tároló-futtatókörnyezetként használják
containerd
. A Windows Server 2019 és a Windows Server 2022 csomópontkészletek tároló-futtatókörnyezetként használhatókcontainerd
. További információ: Windows Server-csomópontkészlet hozzáadása a következővelcontainerd
: . - Kubernetes 1.19-es és korábbi verzió – A Linux-csomópontkészletek a Dockert használják tároló-futtatókörnyezetként.
A Linux- és Windows-feldolgozó csomópontok biztonsági frissítési folyamatáról további információt a Biztonsági javítás csomópontok című témakörben talál.
Az Azure 2. generációs virtuális gépeket futtató AKS-fürtök támogatják a megbízható indítást, amely védelmet nyújt a fejlett és állandó támadási technikák ellen az egymástól függetlenül engedélyezhető technológiák, például a megbízható platformmodul (vTPM) biztonságos rendszerindítási és virtualizált verziójának kombinálásával. A rendszergazdák ellenőrzött és aláírt rendszerindítókkal, operációsrendszer-kernelekkel és illesztőprogramokkal helyezhetnek üzembe AKS-feldolgozó csomópontokat a mögöttes virtuális gép teljes rendszerindítási láncának integritásának biztosítása érdekében.
Csomópont-engedélyezés
A csomópont-engedélyezés egy speciális célú engedélyezési mód, amely kifejezetten engedélyezi a Kubelet API-kéréseket a kelet-nyugati támadások elleni védelem érdekében. A csomópont-engedélyezés alapértelmezés szerint engedélyezve van az AKS 1.24+ fürtökön.
Csomópont üzembe helyezése
A csomópontok egy privát virtuális hálózati alhálózatra vannak üzembe helyezve, amelyhez nincs hozzárendelve nyilvános IP-cím. Hibaelhárítási és felügyeleti célokra az SSH alapértelmezés szerint engedélyezve van, és csak a belső IP-címmel érhető el. Az SSH letiltása a fürt- és csomópontkészlet létrehozásakor, illetve egy meglévő fürt vagy csomópontkészlet létrehozásakor előzetes verzióban érhető el. További információt az SSH-hozzáférés kezelése című témakörben talál.
Csomópont-tároló
A tárolás biztosításához a csomópontok Azure Managed Disk-eket használnak. A legtöbb virtuálisgép-csomópontméret esetében az Azure Managed Disks a nagy teljesítményű SSD-k által támogatott prémium szintű lemezek. A felügyelt lemezeken tárolt adatok automatikusan titkosítva lesznek az Azure-platform inaktív állapotában. A redundancia javítása érdekében az Azure-beli felügyelt lemezek biztonságosan replikálódnak az Azure-adatközpontban.
Ellenséges több-bérlős számítási feladatok
A Kubernetes-környezetek jelenleg nem biztonságosak az ellenséges, több-bérlős használathoz. Az olyan további biztonsági funkciók, mint a Pod biztonsági szabályzatok vagy a Kubernetes RBAC a csomópontokhoz, hatékonyan blokkolják a kihasználtságokat. Az ellenséges több-bérlős számítási feladatok futtatásakor a valódi biztonság érdekében csak egy hipervizorban bízzon meg. A Kubernetes biztonsági tartománya a teljes fürt lesz, nem pedig egy egyedi csomópont.
Az ilyen típusú ellenséges több-bérlős számítási feladatokhoz fizikailag izolált fürtöket kell használnia. A számítási feladatok elkülönítésének módjairól további információt az AKS-ben a fürtelkülönítés ajánlott eljárásaiban talál.
Izolált számítási kapacitás
A megfelelőségi vagy szabályozási követelmények miatt bizonyos számítási feladatokhoz magas fokú elkülönítésre lehet szükség más ügyfél-számítási feladatoktól. Ezekhez a számítási feladatokhoz az Azure a következőt biztosítja:
- Az AKS-fürtök ügynökcsomópontjaiként használandó kerneltárolók . Ezek a tárolók teljesen el vannak különítve egy adott hardvertípushoz, és elkülönítve vannak az Azure Host Fabrictől, a gazdagép operációs rendszerétől és a hipervizortól. Egyetlen ügyfélnek vannak szentelve. Az AKS-fürt létrehozásakor vagy csomópontkészlet hozzáadásakor válassza ki az izolált virtuális gépek egyik méretét csomópontméretként.
- A bizalmas tárolók (előzetes verzió) szintén a Kata Bizalmas tárolók szolgáltatáson alapulnak, titkosítják a tárolómemóriát, és megakadályozzák, hogy a számítások során a memóriában lévő adatok egyértelmű szövegben, olvasható formátumban és illetéktelen módosítással legyenek kezelve. Segít elkülöníteni a tárolókat más tárolócsoportoktól/podoktól, valamint a virtuálisgép-csomópont operációs rendszer kernelétől. A bizalmas tárolók (előzetes verzió) hardveralapú memóriatitkosítást (SEV-SNP) használnak.
- A Pod-tesztkörnyezet (előzetes verzió) elkülönítési határt biztosít a tárolóalkalmazás és a tárológazda megosztott kernel- és számítási erőforrásai (CPU, memória és hálózat) között.
Hálózati biztonság
A helyszíni hálózatokkal való kapcsolat és biztonság érdekében üzembe helyezheti az AKS-fürtöt a meglévő Azure-beli virtuális hálózati alhálózatokon. Ezek a virtuális hálózatok az Azure Helyek közötti VPN vagy Express Route használatával csatlakoznak vissza a helyszíni hálózathoz. Privát, belső IP-címmel rendelkező Kubernetes bejövőforgalom-vezérlők definiálása a szolgáltatások belső hálózati kapcsolathoz való hozzáférésének korlátozásához.
Azure-beli hálózati biztonsági csoportok
A virtuális hálózati forgalom szűréséhez az Azure hálózati biztonsági csoportszabályokat használ. Ezek a szabályok határozzák meg a forrás- és cél IP-tartományokat, portokat és protokollokat, amelyek engedélyezettek vagy megtagadták az erőforrásokhoz való hozzáférést. Az alapértelmezett szabályok a Kubernetes API-kiszolgáló felé történő TLS-forgalom engedélyezéséhez jönnek létre. Szolgáltatásokat hozhat létre terheléselosztókkal, portleképezésekkel vagy bejövő útvonalakkal. Az AKS automatikusan módosítja a hálózati biztonsági csoportot az adatforgalomnak megfelelően.
Ha saját alhálózatot biztosít az AKS-fürthöz (akár az Azure CNI-t, akár a Kubenetet használja), ne módosítsa az AKS által felügyelt hálózati hálózati biztonsági csoportot. Ehelyett hozzon létre további alhálózati szintű hálózati biztonsági csoportokat a forgalom áramlásának módosításához. Győződjön meg arról, hogy nem zavarják a fürt szükséges forgalmát, például a terheléselosztó hozzáférését, a vezérlősíkkal való kommunikációt vagy a kimenő forgalmat.
Kubernetes hálózati szabályzat
A fürt podjai közötti hálózati forgalom korlátozásához az AKS támogatja a Kubernetes hálózati szabályzatait. A hálózati házirendek használatával engedélyezheti vagy letilthatja a fürt bizonyos hálózati útvonalait névterek és címkeválasztók alapján.
Alkalmazás biztonsága
Az AKS-en futó podok védelméhez fontolja meg a Microsoft Defender for Containers használatát a podokon futó alkalmazások elleni kibertámadások észleléséhez és korlátozásához. Futtassa a folyamatos vizsgálatot az alkalmazás sebezhetőségi állapotának eltéréseinek észleléséhez, és implementáljon egy "kék/zöld/kanári" folyamatot a sebezhető képek javításához és cseréjéhez.
Tárolók erőforrásokhoz való hozzáférésének biztonságossá tétele
Ugyanúgy, ahogyan a felhasználóknak vagy csoportoknak meg kell adnia a szükséges minimális jogosultságokat, a tárolókat is csak a szükséges műveletekre és folyamatokra kell korlátozni. A támadás kockázatának minimalizálása érdekében kerülje az eszkalált jogosultságokat vagy gyökérhozzáférést igénylő alkalmazások és tárolók konfigurálását. Ajánlott eljárásként ajánlott a beépített Linux biztonsági funkciók, például az AppArmor és a seccomp használata [biztonságos tároló hozzáférése az erőforrásokhoz][secure-container-access].
A Kubernetes titkos kódjai
Kubernetes-titkos kóddal bizalmas adatokat szúrhat be podokba, például hozzáférési hitelesítő adatokat vagy kulcsokat.
- Hozzon létre egy titkos kulcsot a Kubernetes API használatával.
- Határozza meg a podot vagy az üzembe helyezést, és kérjen egy adott titkos kulcsot.
- A titkos kulcsokat csak olyan ütemezett podokkal rendelkező csomópontok számára biztosítjuk, amelyekhez szükség van rájuk.
- A titkos kód tmpf-ben van tárolva, nem lemezre írva.
- Amikor egy titkos kulcsot igénylő csomópont utolsó podját törli, a titkos kód törlődik a csomópont tmpf-jeiből.
- A titkos kulcsok egy adott névtérben vannak tárolva, és csak az azonos névtérben lévő podokból érhetők el.
A titkos kódok használata csökkenti a pod vagy szolgáltatás YAML-jegyzékében definiált bizalmas információkat. Ehelyett a Kubernetes API-kiszolgálón tárolt titkos kulcsot kell kérnie a YAML-jegyzék részeként. Ez a megközelítés csak az adott pod hozzáférését biztosítja a titkos kódhoz.
Feljegyzés
A nyers titkos kulcs jegyzékfájljai a titkos adatokat base64 formátumban tartalmazzák. További információkért tekintse meg a hivatalos dokumentációt. Kezelje ezeket a fájlokat bizalmas információként, és soha ne véglegesítse őket a forráskezelésben.
A Kubernetes-titkos kulcsokat az etcd, egy elosztott kulcs-érték tároló tárolja. Az AKS teljes mértékben kezeli az etcd-tárolót , és az adatok titkosítva vannak az Azure-platformon belül.
Következő lépések
Az AKS-fürtök biztonságossá tételével kapcsolatos első lépésekért tekintse meg az AKS-fürtök frissítését ismertető témakört.
A kapcsolódó ajánlott eljárásokért tekintse meg a fürtbiztonságra és az AKS frissítésére vonatkozó ajánlott eljárásokat, valamint az AKS podbiztonságának ajánlott eljárásait.
A Kubernetes és az AKS alapfogalmaival kapcsolatos további információkért lásd:
Azure Kubernetes Service