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áért tekintse áta tárolóra vonatkozó javaslatokat.
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
- Adja hozzá az Azure-szabályzathoz szükséges teljes tartománynevet/alkalmazásszabályokat.
- (Nem AKS-fürtök esetén) Meglévő Kubernetes-fürt csatlakoztatása az Azure Archoz.
Kubernetes-adatsíkok megkeményítésének engedélyezése
Az Azure Policy for Kubernetes kétféleképpen engedélyezhető:
- Az összes jelenlegi és jövőbeli fürt engedélyezése terv-/összekötő-beállításokkal
- Az Azure Policy for Kubernetes üzembe helyezése meglévő fürtökön
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:
Jelentkezzen be az Azure Portalra.
Lépjen a Felhőhöz készült Microsoft Defender> Környezet beállításaihoz.
Válassza ki az adott előfizetést.
A Defender csomagok lapján győződjön meg arról, hogy a Tárolók be van kapcsolva.
Válassza a Beállítások lehetőséget.
A Beállítások > Monitorozás lapon állítsa be az "Azure Policy for Kubernetes" kapcsolót Be értékre.
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
A Javaslatok lapon manuálisan konfigurálhatja a Kubernetes-hez készült Azure Policyt a meglévő Kubernetes-fürtökön. 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.
Az Azure Policy for Kubernetes üzembe helyezése megadott fürtökön:
A javaslatok lapon keresse meg a megfelelő javaslatot:
Kék-
"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"
.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.
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.
Válassza ki a megfelelő fürtöt, és válassza a Szervizelés lehetőséget.
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.
Feljegyzés
A Microsoft-összetevők, például a Defender-érzékelő és az Azure Monitor Agent (AMA) alapértelmezés szerint a Kube-rendszer névterében vannak üzembe helyezve. Ez a beállítás biztosítja, hogy az adatsík-javaslatokban ne legyenek nem megfelelőként megjelölve. Előfordulhat azonban, hogy egy másik névtérben telepített külső gyártói eszközök nem megfelelőként vannak megjelölve. Ha külső gyártókat szeretne kizárni ezekből a javaslatokból, hozzáadhatja a névterüket a kizárási listához.
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:
Jelentkezzen be az Azure Portalra.
Lépjen a Felhőhöz készült Microsoft Defender> Környezet beállításaihoz.
Válassza ki az adott előfizetést.
A Felhőhöz készült Defender menüjében válassza a Biztonsági szabályzat lehetőséget.
Válassza ki a megfelelő hozzárendelést. Az alapértelmezett hozzárendelés a következő
ASC default
: .Nyissa meg a Paraméterek lapot, és szükség szerint módosítsa az értékeket.
Válassza a Véleményezés és mentés lehetőséget.
Válassza a Mentés lehetőséget.
A javaslatok kikényszerítése:
Nyissa meg a javaslat részleteit tartalmazó lapot, és válassza a Megtagadás lehetőséget:
Megnyílik a hatókör beállítására szolgáló panel.
Á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:
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.
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.
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: