Az Azure Kubernetes Application Network biztonságának áttekintése (előzetes verzió)

Fontos

Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióihoz részleges támogatást nyújt az ügyfélszolgálat a tőle telhető legjobb módon. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:

Az Azure Kubernetes Application Network automatikus kölcsönös TLS (mTLS) és identitásalapú engedélyezés révén biztosítja a csatlakoztatott Azure Kubernetes Service-fürtök szolgáltatásai közötti kommunikációt. A számítási feladatok identitásait adja ki, és kezeli a tanúsítványok kiállítását, rotálását és érvényesítését, hogy lehetővé tegye a titkosított, hitelesített és explicit módon engedélyezett szolgáltatásközi kommunikációt manuális konfiguráció nélkül, fiPS-kompatibilis titkosítással az átvitel során.

Ez a cikk áttekintést nyújt az Azure Kubernetes Application Network biztonsági funkcióiról, beleértve az mTLS-eket, a számítási feladatok identitásait, a tanúsítványkezelést és az engedélyezési szabályzatokat. Emellett a biztonságos kommunikáció Azure Kubernetes Application Network-környezetben való megvalósításának korlátait és következő lépéseit is ismerteti.

Korlátozások

  • A tanúsítványokat jelenleg egy Azure Kubernetes Application Network által felügyelt hitelesítésszolgáltató (CA) állítja ki, és nem láncolt nyilvános hitelesítésszolgáltatóhoz.

mTLS

Az Application Network az mTLS használatával biztosít identitásalapú, titkosított kommunikációt a számítási feladatok között. Az Application Network-hez csatlakoztatott fürtök minden egyes szolgáltatása automatikusan kap egy tanúsítványt, amely lehetővé teszi, hogy igazolja az identitását, és megbízható, titkosított kapcsolatokat létesítsen ugyanazon alkalmazáshálózat más szolgáltatásaival. Az átvitel közbeni titkosítás FIPS-kompatibilis titkosítást használ.

mTLS migrálási stratégia

Az Application Network jelenleg mind a titkosított, mind a titkosítatlan forgalmat engedélyezi. Ez a megközelítés biztosítja, hogy a meglévő számítási feladatok továbbra is normálisan működjenek, míg az új vagy frissített számítási feladatok automatikusan mTLS-t használnak a biztonságos kommunikációhoz. Ez azt jelenti, hogy állásidő nélkül mTLS-t alkalmazhat a számítási feladatok közötti biztonságos kommunikációhoz. A migrálás befejezése után szigorú módra válthat a hitelesítés kényszerítése érdekében.

Az mTLS előnyei az Azure Kubernetes Application Networkben

Az mTLS az Azure Kubernetes Application Networkben a következőkben nyújt segítséget:

  • Az átvitel alatt lévő adatok védelme: Az összes szolgáltatás közötti forgalom automatikusan titkosítható (FIPS-kompatibilis).
  • A szolgáltatás identitásának ellenőrzése: Minden számítási feladathoz egyedi alkalmazáshálózat által felügyelt gyökértanúsítvány és köztes tanúsítvány tartozik.
  • Egyszerűbb műveletek: Az Application Network kezeli a tanúsítványok kiállítását, rotálását és visszavonását a felhasználók számára.

Tanúsítványkezelés

Az Azure Kubernetes Application Network az Azure Key Vault által támogatott tanúsítványkezelést biztosít, amely az mTLS-hez használt tanúsítványokat állítja ki és tartja karban. Ez a szolgáltatás közös megbízhatósági határt hoz létre az ugyanazon alkalmazáshálózati erőforráshoz csatlakoztatott összes AKS-fürtön.

Az Application Network automatikusan kezeli a fő- és köztes tanúsítványok teljes életciklusát, beleértve a kiépítést, a megújítást és a rotációt. Ez biztosítja, hogy a számítási feladatok identitásai érvényesek maradjanak, és a kommunikáció idővel biztonságos maradjon. Nem kell manuálisan létrehoznia, tárolnia vagy elforgatnia a tanúsítványokat.

Az alábbi ábra az Application Network tanúsítványhierarchiáját mutatja be, amely bemutatja, hogy a legfelső szintű hitelesítésszolgáltató, a köztes hitelesítésszolgáltatók és a számítási feladatok tanúsítványai hogyan vannak strukturálva a csatlakoztatott fürtök közötti megbízhatóság létrehozásához:

Képernyőkép az Azure Kubernetes Application Network tanúsítványhierarchiáját bemutató diagramról, amely bemutatja, hogyan vannak strukturálva a legfelső szintű hitelesítésszolgáltató, a köztes hitelesítésszolgáltatók és a számítási feladatok tanúsítványai a csatlakoztatott fürtök közötti megbízhatóság kialakításához.

Tanúsítványhierarchia és életciklus

Az Application Network-erőforrás létrehozásakor a rendszer kiépít egy legfelső szintű hitelesítésszolgáltatót , amely az alkalmazáshálózat megbízhatósági horgonyaként szolgál. Amikor egy AKS-fürt tagként csatlakozik az alkalmazáshálózathoz, az Application Network kiad egy köztes tanúsítványt a tag számára, amelyet az Application Network legfelső szintű hitelesítésszolgáltatója aláírt. Minden csatlakoztatott AKS-fürt az Application Network által felügyelt köztes tanúsítványával ad ki rövid élettartamú számítási feladatok tanúsítványait az adott fürt számítási feladatai számára.

Minden számítási feladattanúsítvány örökli a megbízhatóságot az Application Network legfelső szintű hitelesítésszolgáltatójától, és egységes megbízhatósági határt tart fenn az erőforráson. A főtanúsítványok és a köztes tanúsítványok rotációja transzparens módon kezelhető a felhasználók számára anélkül, hogy leállást vagy forgalmi fennakadásokat okoznál. Ez a felügyelt hierarchia konzisztens, ellenőrizhető megbízhatóságot biztosít az alkalmazáshálózat összes fürtjében, miközben automatikusan fenntartja az egyes tanúsítványok érvényességét.

Bármely tagfürtből lekérheti a fő hitelesítésszolgáltatói tanúsítványt a istio-root-cert névtér alatti konfigurációs térképről applink-system.

Tanúsítványtípusok és rotációs időszakok

Tanúsítvány típusa Scope Érvényességi Forgatási időszak Purpose
Root CA Azure Kubernetes Application Network 12 hónap 6 hónap Létrehozza az Azure Kubernetes Alkalmazáshálózathoz csatlakoztatott összes fürt megbízhatósági határát.
Köztes hitelesítésszolgáltató Klászter 90 nap 45 nap Számítási feladatok tanúsítványainak kiállítása a fürtön belüli feladatokhoz
Munkaterhelés tanúsítvány Munkaterhelés 24 óra 12 óra A számítási feladatok hitelesítése és a szolgáltatások közötti kommunikáció biztonságossá tétele

Számítási feladatok identitása és engedélyezése

Az alkalmazások növekedésével a szolgáltatásoknak gyakran biztonságosan kell kommunikálniuk az ugyanazon az üzemelő példányon belüli különböző névtereken és környezeteken. A tanúsítványok kezelése és annak biztosítása, hogy minden szolgáltatás képes legyen ellenőrizni, hogy kivel beszél, gyorsan összetetté és hibalehetőséggé válhat. Az Azure Kubernetes Application Network a számítási feladatok identitásainak automatikus hozzárendelésével és kezelésével kiküszöböli ezt a többletterhelést.

Egy alkalmazáshálózattal összekapcsolt környezetben a számítási feladatok biztonságosan kommunikálnak a névtereken belül és a névterek között. Annak érdekében, hogy az egyes szolgáltatások megbízhatók és hitelesíthetők legyenek, az Application Network minden számítási feladatot egy ellenőrizhető identitáshoz rendel, amely a névterét és a szolgáltatásfiókját jelöli.

Minden Application Network-számítási feladat automatikusan egyedi identitást kap SPIFFE formátumban, amely tartalmazza a névteret és a szolgáltatásfiókot. Az identitás a következőképpen van formázva:

spiffe://cluster.local/ns/<namespace>/sa/<service-account>

Ez az identitás beágyazva van a számítási feladat tanúsítványába, és a szolgáltatás identitásának igazolására szolgál, amikor más számítási feladatokkal kommunikál. Az Azure Kubernetes Application Network ezt az SPIFFE-alapú identitásmodellt használja Istio engedélyezési szabályzatokkal, így egyértelmű, konzisztens szabályokat határozhat meg, amelyekhez a szolgáltatások kommunikálhatnak.

Hozzáférési szabályzatok definiálása

Az Istio AuthorizationPolicies használatával szabályozhatja, hogy mely számítási feladatok kommunikálhatnak a környezetben. Ezek a szabályzatok lehetővé teszik a hozzáférést ellenőrzött számítási feladatok identitásai alapján, nem pedig hálózati helyek vagy IP-címek alapján. Ez a megközelítés lehetővé teszi a konzisztens hozzáférés-vezérlők kikényszerítését még a szolgáltatások méretezése és a csomópontok közötti mozgás esetén is. Például engedélyezheti, hogy csak bizonyos átjárók vagy számítási feladatok hívjanak meg egy szolgáltatást úgy, hogy a szabályzat főszereplői listájában szereplő SPIFFE-identitásaikra hivatkoznak, ahogyan az az alábbi példában látható:

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: allow-gateway-to-app
  namespace: default
spec:
  selector:
    matchLabels:
      app: myApp
  action: ALLOW
  rules:
  - from:
    - source:
        principals:
        - cluster.local/ns/default/sa/myApp-gateway // see SPIFFE format above

Szabályzattervezési útmutató

Engedélyezési szabályzatok tervezésekor tartsa szem előtt az alábbi ajánlott eljárásokat:

  • Mindig adja meg a névteret és a szolgáltatásfiókot is, hogy megakadályozza a nem szándékolt keresztnévtér-hozzáférést.
  • A finomhangolt hozzáféréshez használjon szerepköröket az explicit munkaterhelési identitások meghatározásához.
  • Ha szükséges, a névterek használatával definiáljon szélesebb megbízhatósági határokat.
  • Kerülje azokat a szabályokat, amelyek csak névtér nélküli szolgáltatásfiókok nevét egyeztetik meg, mivel ez hozzáférést biztosíthat a fürtök vagy környezetek között.
  • Kombinálja AuthorizationPolicies a Kubernetes NetworkPolicies-szel, hogy mind az identitásalapú, mind a hálózati alapú elkülönítést érvényesítse.

Megjegyzés:

Az Azure Kubernetes Application Network-hitelesítés az IP-cím helyett az ellenőrzött számítási feladatok identitásán alapul. Ez biztosítja a konzisztens végrehajtást, még akkor is, amikor a számítási feladatok méreteződnek vagy csomópontok között mozognak.

Az Azure Kubernetes Application Network által felügyelt identitások, tanúsítványok és szabályzatvezérlők kombinálásával identitásalapú, minimális jogosultságú szolgáltatás-kommunikációt valósíthat meg, biztosítva a hitelesített, titkosított és explicit módon engedélyezett forgalmat a fürtök számítási feladatai között.

Az Azure Kubernetes Application Networkről az alábbi cikkekben olvashat bővebben: