Az Azure Kubernetes Service (AKS) alkalmazásainak és fürtjeinek biztonsági fogalmai

A tárolóbiztonság megvédi a teljes folyamatot a teljes folyamattól a buildtől az AKS-Azure Kubernetes Service futó alkalmazás-Azure Kubernetes Service ig.

A biztonságos ellátási lánc tartalmazza a buildkörnyezetet és a beállításjegyzéket.

A Kubernetes olyan biztonsági összetevőket tartalmaz, mint a podok biztonsági szabványa és a titkos kulcsok. Az Azure olyan összetevőket is tartalmaz, mint Active Directory, a Microsoft Defender for Cloud, Azure Policy, Azure Key Vault, a hálózati biztonsági csoportok és a vezényelt fürtfrissítések. Az AKS a következő biztonsági összetevőket kombinálja:

  • Adjon meg egy teljes hitelesítési és engedélyezési történetet.
  • Az AKS beépített Azure Policy az alkalmazások biztonságának biztosítása érdekében.
  • A Microsoft Defender for Containers segítségével az alkalmazáson keresztüli buildből származó, végpontokig betekintő elemzés.
  • Tartsa meg, hogy az AKS-fürt a legújabb operációsrendszer-biztonsági frissítéseket és Kubernetes-kiadásokat futtasa.
  • Biztonságos podforgalom biztosítása és hozzáférés a bizalmas hitelesítő adatokhoz.

Ez a cikk bemutatja az alkalmazásokat az AKS-ben biztonságossá tő alapvető fogalmakat:

Biztonság kiépítése

Az ellátási lánc belépési pontjaként fontos statikus elemzést végezni a rendszerkép-buildekről, mielőtt leléptetik őket a folyamatból. Ide tartozik a biztonsági rések és a megfelelőség felmérése is. Nem azért kell a buildet megszakítani, mert az nagy biztonsági rést jelent, mivel ez megszakítja a fejlesztést, hanem arról, hogy a fejlesztői csapatok által használható biztonsági rések alapján szegmentálják a "Szállító állapotát". Használja a "Türelmi időszakok" lehetőséget is, hogy a fejlesztőknek legyen ideje az azonosított problémák megoldásához.

Beállításjegyzék-biztonság

A regisztrációs adatbázisban a rendszerkép sebezhetőségi állapotának felmérése észleli a sodródásokat, és azokat a rendszerképeket is észleli, amelyek nem a buildkörnyezetből valók. A Notary V2 használatával aláírásokat csatolhat a rendszerképekhez, így biztosíthatja, hogy az üzemelő példányok megbízható helyről származnak.

Fürtbiztonság

Az AKS-ban a Kubernetes fő összetevői a Microsoft által biztosított, felügyelt és karbantartott felügyelt szolgáltatás részei. 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.

Alapértelmezés szerint a Kubernetes API-kiszolgáló nyilvános IP-címet és teljes tartománynevet (FQDN) használ. Az API-kiszolgálóvégponthoz való hozzáférést az engedélyezett IP-tartományok használatával korlátozhatja. Létrehozhat egy teljesen privát fürtöt is, amely korlátozza az API-kiszolgáló virtuális hálózathoz való hozzáférését.

Az API-kiszolgálóhoz való hozzáférést a Kubernetes szerepköralapú hozzáférés-vezérlés (Kubernetes RBAC) és az Azure RBAC használatával szabályozhatja. További információ: Azure AD-integráció az AKS-sel.

Csomópontbiztonság

Az AKS-csomópontok az Ön által felügyel és karbantartott Azure-beli virtuális gépek.

  • A Linux-csomópontok optimalizált Ubuntu-disztribúciót futtatnak a vagy a containerd Docker-tároló-futtatás használatával.
  • Windows-csomópontok a vagy a Docker-tároló-Windows futtatják a Server 2019 optimalizált containerd kiadását.

Az AKS-fürtök létrehozásakor vagy felskáláiban a csomópontok telepítése automatikusan megtörténik az operációs rendszer legújabb biztonsági frissítésével és konfigurációival.

Megjegyzés

AKS-fürtök a következő használatával:

  • A Linux-csomópontkészletek kubernetes 1.19-es és újabb verziói containerd tároló-futtatásként használják. A containerd Windows Server 2019-csomópontkészletekkel való használata jelenleg előzetes verzióban érhető el. További részletekért lásd: Add a Windows containerd Server node pool with ..
  • A Linux-csomópontkészletek 1.19-es előtti Kubernetes tároló-futásideje a Docker. A Windows Server 2019-csomópontkészletek esetén a Docker az alapértelmezett tároló-futtatás.

Csomópontok biztonsági javításokkal

Linux-csomópontok

Az AKS Linux-csomópontjai minden este a disztribúciós biztonsági frissítési csatornájukon keresztül kapják meg a biztonsági javításokat. A csomópontok AKS-fürtben való üzembe helyezésekor a rendszer automatikusan konfigurálja ezt a viselkedést. A megszakítások és a futó számítási feladatokra gyakorolt lehetséges hatások minimalizálása érdekében a csomópontok nem indulnak újra automatikusan, ha egy biztonsági javítás vagy kernelfrissítés ezt igényli. A csomópont-újraindítások kezelésével kapcsolatos további információkért lásd: Biztonsági és kernelfrissítések alkalmazása csomópontokra az AKS-ban.

Az éjszakai frissítések biztonsági frissítéseket alkalmaznak a csomópont operációs rendszerére, de a fürt csomópontjainak létrehozásához használt csomópont-rendszerkép változatlan marad. Ha új Linux-csomópontot ad hozzá a fürthöz, a rendszer az eredeti rendszerképet használja a csomópont létrehozásához. Ez az új csomópont minden este megkapja az automatikus ellenőrzés során elérhető összes biztonsági és kernelfrissítést, de az összes ellenőrzés és újraindítás befejezéséig nem lesz kipakolt. A csomópont rendszerkép-frissítésének használatával ellenőrizheti és frissítheti a fürt által használt csomópont-rendszerképeket. A csomópont-rendszerkép frissítésére vonatkozó további részletekért lásd: Azure Kubernetes Service (AKS) csomópont rendszerképének frissítése.

Windows kiszolgáló-csomópontok

A Windows-csomópontok Windows frissítés nem fut automatikusan, és nem alkalmazza a legújabb frissítéseket. Ütemezheti Windows kiszolgálói csomópontkészlet frissítését az AKS-fürtben a szokásos frissítési Windows és a saját ellenőrzési folyamata körül. Ez a frissítési folyamat olyan csomópontokat hoz létre, amelyek a Windows-rendszerképet és a javításokat futtatják, majd eltávolítja a régebbi csomópontokat. További információ erről a folyamatról: Csomópontkészlet frissítése az AKS-ban.

Csomópont üzembe helyezése

A csomópontok egy magánhálózati virtuális hálózat alhálózatán vannak üzembe osztva, és nincsenek hozzárendelve nyilvános IP-címek. Hibaelhárítási és felügyeleti célokra az SSH alapértelmezés szerint engedélyezve van, és csak a belső IP-cím használatával érhető el.

Node Storage

A tároláshoz a csomópontok Az Azure Managed Disks. A virtuálisgép-csomópontok legtöbb méretében az Azure Managed Disks nagy teljesítményű SSD-Prémium található. A felügyelt lemezeken tárolt adatok titkosítása automatikusan megtörténik az Azure platformon belül. A redundancia javítása érdekében az Azure Managed Disks azure-adatközpontban biztonságosan replikálhatók.

Több-bérlős számítási feladatok

A Kubernetes-környezetek jelenleg nem biztonságosak a rosszindulatú több-bérlős használathoz. Az olyan további biztonsági funkciók, mint a podbiztonsági szabályzatok vagy a Kubernetes RBAC a csomópontokhoz, hatékonyan blokkolják a biztonsági réseket. A rosszindulatú több-bérlős számítási feladatok futtatásakor a valódi biztonság érdekében csak a hipervizorban bízzon meg. A Kubernetes biztonsági tartománya lesz a teljes fürt, nem pedig egy különálló csomópont.

Az ilyen típusú rosszindulatú több-bérlős számítási feladatokhoz fizikailag elkülönített fürtök használata a cél. A számítási feladatok elkülönítésének módjairól a Fürtelszigetelés ajánlott eljárásai az AKS-ban oldalon található további információ.

Számítási elkülönítés

A megfelelőségi vagy szabályozási követelmények miatt bizonyos számítási feladatokhoz nagyfokú elkülönítésre lehet szükség a többi ügyfél számítási feladattól. Ezekhez a számítási feladatokhoz az Azure elkülönített virtuális gépeket biztosít, amelyek ügynökcsomópontként használhatók egy AKS-fürtben. Ezek a virtuális gépek egy adott hardvertípusba vannak elkülönítve, és egyetlen ügyfél számára vannak kiválva.

Az AKS-fürt létrehozásakor vagy csomópontkészlet hozzáadásakor válassza ki az egyik elkülönített virtuális gép méretét.

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 megfelelőség fenntartásához és a legújabb funkciók eléréséhez. Ez a frissítési vezénylés magában foglalja a Kubernetes fő- és ügynökösszetevőit is.

A frissítési folyamat elkezdésében adja meg a felsorolt elérhető Kubernetes-verziók valamelyikét. Az Azure ezután biztonságosan bekábele és kiüríti az egyes AKS-csomópontokat és -frissítéseket.

Cordon and drain (Elkábel és ürítés)

A frissítési folyamat során az AKS-csomópontok külön el vannak különülve a fürttől, hogy megakadályozzák az új podok ütemezését. Ezután a rendszer kiüríti és frissíti a csomópontokat a következőképpen:

  1. A rendszer egy új csomópontot helyez üzembe a csomópontkészletben.
    • Ez a csomópont a legújabb operációsrendszer-lemezképet és javításokat futtatja.
  2. A rendszer az egyik meglévő csomópontot azonosítja a frissítéshez.
  3. Az azonosított csomóponton lévő podok elegánsan leállnak, és a csomópontkészlet többi csomópontján vannak ütemezve.
  4. A kiürített csomópont törlődik az AKS-fürtből.
  5. Az 1–4. lépés addig ismétlődik, amíg a frissítési folyamat részeként az összes csomópontot sikeresen le nem cserélik.

További információ: AKS-fürt frissítése.

Hálózati biztonság

A helyszíni hálózatokkal való kapcsolat és biztonság érdekében az AKS-fürtöt meglévő Azure-beli virtuális hálózati alhálózatok esetében is üzembe helyezheti. Ezek a virtuális hálózatok Azure-beli, hely–hely VPN vagy Express Route használatával csatlakoznak vissza a helyszíni hálózathoz. Privát, belső IP-címekkel definiálja a Kubernetes bejövő vezérlőit 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 a hálózati biztonsági csoport szabályait használja. Ezek a szabályok határozzák meg az erőforrásokhoz való hozzáférést engedélyezett vagy megtagadó forrás és cél IP-címtartományokat, portokat és protokollokat. Az alapértelmezett szabályok a Kubernetes API-kiszolgálóra való TLS-forgalom engedélyezése érdekében vannak létrehozva. A szolgáltatásokat terheléseltöltők, portleképezések vagy bejövő útvonalak segítségével hozza létre. Az AKS automatikusan módosítja a hálózati biztonsági csoportot a forgalomhoz.

Ha saját alhálózatot biztosít az AKS-fürthöz (akár Azure CNI, akár Kubenetet használ), ne módosítsa az AKS által felügyelt hálózati adapterszintű hálózati biztonsági csoportot. Ehelyett hozzon létre további alhálózati szintű hálózati biztonsági csoportokat a forgalom módosításához. Győződjön meg arról, hogy azok nem akadályozzák a fürt szükséges forgalmát, például a terheléselosztáshoz való hozzáférést, a vezérlősíkkal való kommunikációt és a kivezetést.

Kubernetes hálózati szabályzat

A fürt podja közötti hálózati forgalom korlátozásához az AKS támogatja a Kubernetes hálózati szabályzatokat. A hálózati házirendekkel névterek és címkeválasztók alapján engedélyezheti vagy tilthatja le a fürtön belüli adott hálózati elérési utakat.

Alkalmazásbiztonság

Az AKS-on futó podok védelméhez használja a Kuberneteshez használható Microsoft Defendert a podban futó alkalmazások elleni kibertámadások észlelésére és korlátozására. Folyamatos vizsgálat futtatásával észlelheti az alkalmazás sebezhetőségi állapotának eltérését, és implementálhat egy "kék/zöld/canary" folyamatot a sebezhető képek javításához és cseréjéhez.

A Kubernetes titkos kódjai

A Kubernetes titkos kulcsával bizalmas adatokat, például hozzáférési hitelesítő adatokat vagy kulcsokat injektál a podokbe.

  1. Titkos kulcs létrehozása a Kubernetes API használatával.
  2. Határozza meg a podot vagy az üzemelő példányt, és kérjen le egy adott titkos secret-et.
    • A titkos kulcsok csak olyan ütemezett podokkal lévő csomópontok számára biztosítanak információt, amelyekhez szükség van rájuk.
    • A titkos adatokat a tmpfs tárolja, nem lemezre írva.
  3. Amikor törli a titkos adatokat igénylő csomópont utolsó podját, a titkos adatokat a rendszer törli a csomópont tmpfs-ről.
    • A titkos kulcsok egy adott névtérben vannak tárolva, és csak az azonos névtéren belüli podok érhetik el.

A titkos kulcsok használata csökkenti a pod- vagy szolgáltatás YAML-jegyzékfájlban meghatározott bizalmas információkat. Ehelyett a YAML-jegyzékfájl részeként le kell kérnie a Kubernetes API Serveren tárolt titkos adatokat. Ez a megközelítés csak az adott pod számára biztosít hozzáférést a titkos eléréshez.

Megjegyzés

A nyers titkos jegyzékfájlok base64 formátumban tartalmazzák a titkos adatokat (további részletekért tekintse meg a hivatalos dokumentációt). Kezelje ezeket a fájlokat bizalmas információként, és soha ne véglegeselze őket a forrásvezérlőben.

A Kubernetes titkos kulcsokat egy elosztott kulcs-érték tároló stb. tárolja. Az etcd tárolót teljes mértékben az AKS kezeli, az adatok pedig titkosítva vannak az Azure platformon.

Következő lépések

Az AKS-fürtök biztonságossá tétele első lépésekért lásd: AKS-fürt frissítése.

A kapcsolódó ajánlott eljárásokért lásd: Ajánlott eljárások a fürtbiztonsághoz és -frissítésekhez az AKS-ban és Ajánlott podbiztonsági eljárások az AKS-hez.

Az alapvető Kubernetes- és AKS-fogalmakkal kapcsolatos további információkért lásd: