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 2019-kiadást futtatnak a Docker-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.
Megjegyzé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-csomópontkészletek tároló-futtatókörnyezetként használjákcontainerd
, amely jelenleg előzetes verzióban érhető el. 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 Windows Server 2019 csomópontkészletek a Dockert használják az alapértelmezett tároló-futtatókörnyezethez.
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.
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 (Standard kiadás V-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.
Fürtfrissítések
Az Azure frissítési vezénylési eszközöket biztosít az AKS-fürtök és -összetevők frissítéséhez, a biztonság és a megfelelőség fenntartásához, valamint a legújabb funkciók eléréséhez. A frissítési vezénylés magában foglalja a Kubernetes fő- és ügynökösszetevőit is.
A frissítési folyamat elindításához adja meg a felsorolt elérhető Kubernetes-verziók egyikét. Az Azure ezután biztonságosan kordonozza és üríti az egyes AKS-csomópontokat és -frissítéseket.
Kordon és lefolyó
A frissítési folyamat során az AKS-csomópontokat egyenként kordonozza a fürtből, hogy megakadályozza az új podok ütemezését. A csomópontok ürítése és frissítése az alábbiak szerint történik:
- A rendszer új csomópontot helyez üzembe a csomópontkészletben.
- Ez a csomópont a legújabb operációsrendszer-lemezképeket és javításokat futtatja.
- A rendszer az egyik meglévő csomópontot azonosítja a frissítéshez.
- Az azonosított csomópont podjai kecsesen le vannak állítva és ütemezve vannak a csomópontkészlet többi csomópontján.
- Az kiürített csomópont törlődik az AKS-fürtből.
- Az 1–4. lépés mindaddig ismétlődik, amíg az összes csomópont sikeresen le nem cserélődik a frissítési folyamat részeként.
További információt az AKS-fürtök frissítését ismertető szakaszban talál.
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ásbiztonság
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.
Kubernetes Secrets
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.
Megjegyzé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: