A Kubernetes adatsík-megerősítésének védelme

Ez a lap azt ismerteti, hogyan használhatja Felhőhöz készült Microsoft Defender Kubernetes-adatsík-megkeményítésre vonatkozó biztonsági javaslatait.

Tipp.

A Kubernetes-fürtökre és csomópontokra vonatkozó biztonsági javaslatok listáját a javaslatok referenciatáblájának Tárolójavaslatok szakaszában találja.

A számítási feladatok védelmének beállítása

Felhőhöz készült Microsoft Defender a telepítés után elérhető javaslatcsomagot tartalmazAzure Policy for Kubernetes.

Előfeltételek

Kubernetes-adatsíkok megkeményítésének engedélyezése

Az Azure Policy for Kubernetes kétféleképpen engedélyezhető:

Az Azure Policy for Kubernetes engedélyezése az összes jelenlegi és jövőbeli fürthöz a terv/összekötő beállításaival

Feljegyzés

Ha engedélyezi ezt a beállítást, az Azure Policy for Kubernetes-podok telepítve lesznek a fürtön. Ezzel kis mennyiségű processzort és memóriát foglal le a podok számára. Ez a lefoglalás elérheti a maximális kapacitást, de nem befolyásolja az erőforrás processzorának és memóriájának többi részét.

Feljegyzés

Az AWS-nek az összekötőn keresztüli engedélyezése nem támogatott az EKS korlátozása miatt, amely megköveteli, hogy a fürt rendszergazdája adjon hozzá engedélyeket egy új IAM-szerepkörhöz magához a fürthöz.

Azure-előfizetések vagy helyszíni szolgáltatások engedélyezése

A Microsoft Defender for Containers engedélyezésekor alapértelmezés szerint engedélyezve van az "Azure Policy for Kubernetes" beállítás az Azure Kubernetes Service-ben és az Azure Arc-kompatibilis Kubernetes-fürtök esetében a megfelelő előfizetésben. Ha letiltja a beállítást a kezdeti konfigurációban, manuálisan is engedélyezheti azt.

Ha letiltotta az "Azure Policy for Kubernetes" beállításokat a tárolók csomagjában, az alábbi lépéseket követve engedélyezheti az előfizetés összes fürtöjén:

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a Felhőhöz készült Microsoft Defender> Környezet beállításaihoz.

  3. Válassza ki az adott előfizetést.

  4. A Defender csomagok lapján győződjön meg arról, hogy a Tárolók be van kapcsolva.

  5. Válassza a Beállítások lehetőséget.

    Screenshot showing the settings button in the Defender plan.

  6. A Gépház & Monitorozás lapon állítsa be az "Azure Policy for Kubernetes" kapcsolót.

    Screenshot showing the toggles used to enable or disable the extensions.

GCP-projektek engedélyezése

Ha engedélyezi a Microsoft Defender for Containerst egy GCP-összekötőn, az "Azure Policy Extension for Azure Arc" beállítás alapértelmezés szerint engedélyezve van a Google Kubernetes Engine esetében a megfelelő projektben. Ha letiltja a beállítást a kezdeti konfigurációban, manuálisan is engedélyezheti azt.

Ha letiltotta az "Azure Policy-bővítmény az Azure Archoz" beállítást a GCP-összekötőben, az alábbi lépéseket követve engedélyezheti azt a GCP-összekötőn.

Az Azure Policy for Kubernetes üzembe helyezése meglévő fürtökön

Az Azure Policy for Kubernetes manuálisan konfigurálható a meglévő Kubernetes-fürtökön a Javaslatok lapon. Ha engedélyezve van, a megkeményítési javaslatok elérhetővé válnak (néhány javaslathoz más konfigurációra van szükség).

Feljegyzés

Az AWS-hez nem lehet nagy léptékű előkészítést végezni az összekötővel, de az Azure Arc-kompatibilis Kubernetes-fürtök ajánlásával minden meglévő fürtön vagy adott fürtön telepíthető az Azure Policy Extension for Kubernetes-bővítmény.

AzAzure Policy for Kubernetesüzembe helyezése megadott fürtökön:

  1. A javaslatok lapon keresse meg a megfelelő javaslatot:

    • Azure-"Azure Kubernetes Service clusters should have the Azure Policy add-on for Kubernetes installed"

    • GCP - "GKE clusters should have the Azure Policy extension".

    • AWS és helyszíni - "Azure Arc-enabled Kubernetes clusters should have the Azure policy extension for Kubernetes extension installed". Screenshot showing the Azure Kubernetes service clusters recommendation.

      Tipp.

      A javaslatot különböző biztonsági vezérlők tartalmazzák, és nem számít, hogy melyiket választja ki a következő lépésben.

  2. A biztonsági vezérlők bármelyikében válassza ki a javaslatot a bővítmény telepítéséhez szükséges erőforrások megtekintéséhez.

  3. Válassza ki a megfelelő fürtöt, és válassza a Szervizelés lehetőséget.

    Screenshot that shows how to select the cluster to remediate.

A javaslatok kötegének megtekintése és konfigurálása

Körülbelül 30 perccel a Kubernetes-hez készült Azure Policy telepítése után Felhőhöz készült Defender a fürtök állapotának állapotát mutatja a következő javaslatokhoz, mindegyik a megfelelő biztonsági vezérlőben látható módon:

Feljegyzés

Ha először telepíti a KubernetesHez készült Azure Policyt, ezek a javaslatok új kiegészítésként jelennek meg a javaslatok listájában.

Tipp.

Egyes javaslatok olyan paraméterekkel rendelkeznek, amelyeket az Azure Policy használatával kell testre szabni a hatékony használatukhoz. Ha például a tárolólemezképekre vonatkozó javaslatot csak megbízható adatbázisból szeretné üzembe helyezni, meg kell határoznia a megbízható adatbázisokat. Ha nem adja meg a konfigurációt igénylő javaslatokhoz szükséges paramétereket, a számítási feladatok nem megfelelő állapotúként jelennek meg.

Javaslat neve Biztonsági szabályozás Konfiguráció szükséges
A tároló processzor- és memóriakorlátait kötelező megadni Alkalmazások védelme DDoS-támadásokkal szemben Igen
A tárolólemezképeket csak megbízható adatbázisból szabad üzembe helyezni Sebezhetőségek javítása Igen
A legkevésbé kiemelt Linux-képességeket a tárolókhoz kell kikényszeríteni Hozzáférés és engedélyek kezelése Igen
A tárolók csak engedélyezett AppArmor-profilokat használhatnak Biztonsági konfigurációk javítása Igen
A szolgáltatásoknak csak az engedélyezett portokon kell figyelnie Jogosulatlan hálózati hozzáférés korlátozása Igen
Korlátozni kell a gazdagépek hálózatának és portjainak használatát Jogosulatlan hálózati hozzáférés korlátozása Igen
A pod HostPath-kötetcsatlakozók használatát egy ismert listára kell korlátozni Hozzáférés és engedélyek kezelése Igen
A jogosultságok eszkalálásával rendelkező tárolót kerülni kell Hozzáférés és engedélyek kezelése Nem
Kerülni kell a bizalmas gazdagépnévtereket használó tárolókat Hozzáférés és engedélyek kezelése Nem
A tárolókhoz nem módosítható (írásvédett) gyökér fájlrendszert kell kényszeríteni Hozzáférés és engedélyek kezelése Nem
A Kubernetes-fürtök csak HTTPS-en keresztül érhetők el Átvitel alatt lévő adatok titkosítása Nem
A Kubernetes-fürtöknek le kell tiltania az API-hitelesítő adatok automatikus leválasztását Hozzáférés és engedélyek kezelése Nem
A Kubernetes-fürtök nem használhatják az alapértelmezett névteret Ajánlott biztonsági eljárások alkalmazása Nem
A Kubernetes-fürtök nem biztosíthatnak CAPSYSADMIN biztonsági képességeket Hozzáférés és engedélyek kezelése Nem
A kiemelt tárolókat kerülni kell Hozzáférés és engedélyek kezelése Nem
Kerülni kell a tárolók gyökérfelhasználóként való futtatását Hozzáférés és engedélyek kezelése Nem

A testre szabandó paraméterekkel kapcsolatos javaslatokhoz be kell állítania a paramétereket:

A paraméterek beállítása:

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a Felhőhöz készült Microsoft Defender> Környezet beállításaihoz.

  3. Válassza ki az adott előfizetést.

  4. A Felhőhöz készült Defender menüjében válassza a Biztonsági szabályzat lehetőséget.

  5. Válassza ki a megfelelő hozzárendelést. Az alapértelmezett hozzárendelés a következő ASC default: .

  6. Nyissa meg a Paraméterek lapot, és szükség szerint módosítsa az értékeket.

    Screenshot showing where to modify the parameters for one of the recommendations in the Kubernetes data plane hardening protection bundle.

  7. Válassza a Véleményezés és mentés lehetőséget.

  8. Válassza a Mentés lehetőséget.

A javaslatok kikényszerítése:

  1. Nyissa meg a javaslat részleteit tartalmazó lapot, és válassza a Megtagadás lehetőséget:

    Screenshot showing the Deny option for Azure Policy parameter.

    Megnyílik a hatókör beállítására szolgáló panel.

  2. Állítsa be a hatókört, és válassza a Módosítás elemet a megtagadáshoz.

Annak megtekintéséhez, hogy mely javaslatok vonatkoznak a fürtökre:

  1. Nyissa meg Felhőhöz készült Defender eszközleltár-oldalát, és állítsa be az erőforrástípus-szűrőt a Kubernetes-szolgáltatásokra.

  2. Válasszon ki egy fürtöt, amely megvizsgálja és áttekinti a számára elérhető javaslatokat.

Ha a számítási feladatvédelmi csoport javaslatát tekinti meg, az érintett podok ("Kubernetes-összetevők") száma megjelenik a fürt mellett. Az adott podok listájához jelölje ki a fürtöt, majd válassza a Művelet végrehajtása lehetőséget.

Screenshot showing where to view the affected pods for a Kubernetes recommendation.

A kényszerítés teszteléséhez használja az alábbi két Kubernetes-üzembe helyezést:

  • Az egyik az kifogástalan üzembe helyezés, amely megfelel a számítási feladatok védelmére vonatkozó javaslatok csomagjának.

  • A másik egy nem kifogástalan üzembe helyezés, amely nem felel meg a javaslatoknak .

Helyezze üzembe a .yaml-fájlokat, vagy használja őket hivatkozásként a saját számítási feladatainak szervizeléséhez.

Kifogástalan üzembe helyezési példa .yaml-fájl

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-healthy-deployment
  labels:
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
      annotations:
        container.apparmor.security.beta.kubernetes.io/redis: runtime/default
    spec:
      containers:
      - name: redis
        image: <customer-registry>.azurecr.io/redis:latest
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 100m
            memory: 250Mi
        securityContext:
          privileged: false
          readOnlyRootFilesystem: true
          allowPrivilegeEscalation: false
          runAsNonRoot: true
          runAsUser: 1000
---
apiVersion: v1
kind: Service
metadata:
  name: redis-healthy-service
spec:
  type: LoadBalancer
  selector:
    app: redis
  ports:
  - port: 80
    targetPort: 80

Nem kifogástalan üzembe helyezési példa .yaml-fájlra

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-unhealthy-deployment
  labels:
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:      
      labels:
        app: redis
    spec:
      hostNetwork: true
      hostPID: true 
      hostIPC: true
      containers:
      - name: redis
        image: redis:latest
        ports:
        - containerPort: 9001
          hostPort: 9001
        securityContext:
          privileged: true
          readOnlyRootFilesystem: false
          allowPrivilegeEscalation: true
          runAsUser: 0
          capabilities:
            add:
              - NET_ADMIN
        volumeMounts:
        - mountPath: /test-pd
          name: test-volume
          readOnly: true
      volumes:
      - name: test-volume
        hostPath:
          # directory location on host
          path: /tmp
---
apiVersion: v1
kind: Service
metadata:
  name: redis-unhealthy-service
spec:
  type: LoadBalancer
  selector:
    app: redis
  ports:
  - port: 6001
    targetPort: 9001

Következő lépések

Ebből a cikkből megtudhatja, hogyan konfigurálhatja a Kubernetes adatsík-keményítését.

A kapcsolódó anyagokért tekintse meg a következő oldalakat: