Ochrana posílením zabezpečení roviny dat Kubernetes
Tato stránka popisuje, jak používat sadu doporučení zabezpečení v programu Microsoft Defender for Cloud vyhrazená pro posílení zabezpečení roviny dat Kubernetes.
Tip
Seznam doporučení zabezpečení, která se můžou zobrazit pro clustery a uzly Kubernetes, najdetev doporučeních kontejnerů.
Nastavení ochrany úloh
Microsoft Defender pro cloud obsahuje sadu doporučení, která jsou k dispozici po instalaci služby Azure Policy pro Kubernetes.
Požadavky
- Přidejte požadovaná pravidla plně kvalifikovaného názvu domény nebo aplikace pro zásady Azure.
- (Pro clustery mimo AKS) Připojte existující cluster Kubernetes ke službě Azure Arc.
Povolení posílení zabezpečení roviny dat Kubernetes
Azure Policy pro Kubernetes můžete povolit jedním ze dvou způsobů:
- Povolení pro všechny aktuální a budoucí clustery pomocí nastavení plánu nebo konektoru
- Nasazení Služby Azure Policy pro Kubernetes v existujících clusterech
Povolení služby Azure Policy pro Kubernetes pro všechny aktuální a budoucí clustery pomocí nastavení plánu nebo konektoru
Poznámka:
Pokud povolíte toto nastavení, v clusteru se nainstalují pody služby Azure Policy pro Kubernetes. Tím se přidělí malé množství procesoru a paměti pro pody, které se mají použít. Toto přidělení může dosáhnout maximální kapacity, ale nemá vliv na zbývající prostředky procesoru a paměti prostředku.
Poznámka:
Povolení AWS prostřednictvím konektoru se nepodporuje kvůli omezení v EKS, které vyžaduje, aby správce clusteru přidal oprávnění pro novou roli IAM v samotném clusteru.
Povolení pro předplatná Azure nebo místní prostředí
Když povolíte Microsoft Defender for Containers, ve výchozím nastavení se pro Službu Azure Kubernetes a pro clustery Kubernetes s podporou Azure Arc v příslušném předplatném povolí nastavení Azure Policy for Kubernetes. Pokud nastavení zakážete při počáteční konfiguraci, můžete ho potom povolit ručně.
Pokud jste v plánu kontejnerů zakázali nastavení Azure Policy pro Kubernetes, můžete ho povolit ve všech clusterech ve vašem předplatném pomocí následujících kroků:
Přihlaste se k portálu Azure.
Přejděte do nastavení cloudového>prostředí v programu Microsoft Defender.
Vyberte příslušné předplatné.
Na stránce Plány Defenderu se ujistěte, že jsou kontejnery přepnuty na Zapnuto.
Vyberte Nastavení.
Na stránce Nastavení a monitorování přepněte možnost Azure Policy pro Kubernetes na Zapnuto.
Povolení pro projekty GCP
Když povolíte Microsoft Defender for Containers na konektoru GCP, nastavení Rozšíření Azure Policy pro Azure Arc je ve výchozím nastavení povolené pro modul Google Kubernetes v příslušném projektu. Pokud nastavení zakážete při počáteční konfiguraci, můžete ho potom povolit ručně.
Pokud jste v konektoru GCP zakázali nastavení rozšíření Azure Policy pro Azure Arc, můžete ho pro svůj konektor GCP povolit pomocí následujících kroků.
Nasazení Služby Azure Policy pro Kubernetes v existujících clusterech
Azure Policy pro Kubernetes můžete nakonfigurovat ručně na existujících clusterech Kubernetes prostřednictvím stránky Doporučení. Po povolení budou doporučení k posílení zabezpečení dostupná (některá doporučení vyžadují jinou konfiguraci).
Poznámka:
Pro AWS není možné provést onboarding ve velkém měřítku pomocí konektoru, ale můžete ho nainstalovat na všechny existující clustery nebo na konkrétní clustery s doporučením clusterů Kubernetes s podporou Azure Arc, které by měly mít nainstalované rozšíření Azure Policy pro rozšíření Kubernetes.
Nasazení služby Azure Policy pro Kubernetes do určených clusterů:
Na stránce s doporučeními vyhledejte relevantní doporučení:
Azurový-
"Azure Kubernetes Service clusters should have the Azure Policy add-on for Kubernetes installed"
GCP -
"GKE clusters should have the Azure Policy extension"
.AWS a místní prostředí -
"Azure Arc-enabled Kubernetes clusters should have the Azure policy extension for Kubernetes extension installed"
.Tip
Doporučení je součástí různých kontrolních mechanismů zabezpečení a nezáleží na tom, který z nich vyberete v dalším kroku.
V libovolném ovládacím prvku zabezpečení vyberte doporučení, abyste zobrazili prostředky, na které můžete doplněk nainstalovat.
Vyberte příslušný cluster a vyberte Opravit.
Zobrazení a konfigurace sady doporučení
Přibližně 30 minut po dokončení instalace Služby Azure Policy pro Kubernetes zobrazuje Defender for Cloud stav clusterů pro následující doporučení, přičemž každý z nich je v příslušném ovládacím prvku zabezpečení, jak je znázorněno níže:
Poznámka:
Pokud službu Azure Policy pro Kubernetes instalujete poprvé, zobrazí se tato doporučení jako nová přidání v seznamu doporučení.
Tip
Některá doporučení obsahují parametry, které je potřeba přizpůsobit prostřednictvím služby Azure Policy, aby je bylo možné efektivně používat. Pokud chcete například využít výhod doporučených imagí kontejnerů, měli byste je nasadit jenom z důvěryhodných registrů, musíte definovat důvěryhodné registry. Pokud nezadáte potřebné parametry pro doporučení, která vyžadují konfiguraci, zobrazí se úlohy jako poškozené.
Poznámka:
Komponenty Microsoftu, jako je senzor Defenderu a agent služby Azure Monitor (AMA), jsou ve výchozím nastavení nasazené v oboru názvů kube-system. Toto nastavení zajišťuje, že nejsou v doporučeních roviny dat označeny jako nevyhovující. Nástroje dodavatele třetích stran nainstalované v jiném oboru názvů se ale můžou označit jako nevyhovující předpisům. Pokud chcete z těchto doporučení vyloučit dodavatele třetích stran, můžete do seznamu vyloučení přidat jejich obor názvů.
Název doporučení | Bezpečnostní prvek | Vyžaduje se konfigurace. |
---|---|---|
Měly by se vynutit limity procesoru a paměti kontejneru. | Ochrana aplikací před útoky DDoS | Ano |
Image kontejnerů by se měly nasazovat jenom z důvěryhodných registrů. | Náprava ohrožení zabezpečení | Ano |
Pro kontejnery by se měly vynucovat nejméně privilegované funkce Linuxu. | Správa přístupu a oprávnění | Ano |
Kontejnery by měly používat pouze povolené profily AppArmor. | Náprava konfigurací zabezpečení | Ano |
Služby by měly naslouchat pouze na povolených portech. | Omezení neoprávněného síťového přístupu | Ano |
Použití hostitelských sítí a portů by mělo být omezeno | Omezení neoprávněného síťového přístupu | Ano |
Použití připojení svazků HostPath podu by mělo být omezeno na známý seznam. | Správa přístupu a oprávnění | Ano |
Vyhnete se eskalaci kontejneru s oprávněními. | Správa přístupu a oprávnění | No |
Kontejnery sdílející citlivé obory názvů hostitelů by se měly vyhnout | Správa přístupu a oprávnění | No |
U kontejnerů by se měl vynucovat kořenový systém souborů jen pro čtení. | Správa přístupu a oprávnění | No |
Clustery Kubernetes by měly být přístupné jenom přes PROTOKOL HTTPS. | Šifrování přenášených dat | No |
Clustery Kubernetes by měly zakázat automatické připojování přihlašovacích údajů rozhraní API. | Správa přístupu a oprávnění | No |
Clustery Kubernetes by neměly používat výchozí obor názvů. | Implementace osvědčených postupů zabezpečení | No |
Clustery Kubernetes by neměly udělovat možnosti zabezpečení CAPSYSADMIN | Správa přístupu a oprávnění | No |
Privilegované kontejnery by se měly vyhnout | Správa přístupu a oprávnění | No |
Vyhnete se spouštění kontejnerů jako uživatel root. | Správa přístupu a oprávnění | No |
U doporučení s parametry, které je potřeba přizpůsobit, je potřeba nastavit parametry:
Nastavení parametrů:
Přihlaste se k portálu Azure.
Přejděte do nastavení cloudového>prostředí v programu Microsoft Defender.
Vyberte příslušné předplatné.
V nabídce Defenderu pro cloud vyberte Zásady zabezpečení.
Vyberte příslušné zadání. Výchozí přiřazení je
ASC default
.Otevřete kartu Parametry a podle potřeby upravte hodnoty.
Vyberte Zkontrolovat a uložit.
Zvolte Uložit.
Vynucení některého z doporučení:
Otevřete stránku s podrobnostmi doporučení a vyberte Odepřít:
Otevře se podokno pro nastavení oboru.
Nastavte obor a vyberte Změnit, aby se odepřel.
Pokud chcete zjistit, která doporučení platí pro vaše clustery:
Otevřete stránku inventáře prostředků v Programu Defender for Cloud a nastavte filtr typů prostředků na služby Kubernetes.
Vyberte cluster, který chcete prozkoumat a zkontrolovat dostupná doporučení, která jsou pro něj k dispozici.
Když zobrazíte doporučení ze sady ochrany úloh, zobrazí se vedle clusteru i počet ovlivněných podů (komponent Kubernetes). Seznam konkrétních podů zobrazíte tak, že vyberete cluster a pak vyberete Provést akci.
K otestování vynucení použijte následující dvě nasazení Kubernetes:
Jedním z nich je nasazení, které je v pořádku a vyhovuje sadě doporučení ochrany úloh.
Druhá je pro nasazení, které není v pořádku, nedodržuje žádná doporučení.
Nasaďte ukázkové soubory .yaml tak, jak jsou, nebo je použijte jako referenci k nápravě vlastní úlohy.
Příklad nasazení v pořádku – soubor .yaml
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
Příklad nasazení v pořádku – soubor .yaml
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
Další kroky
V tomto článku jste zjistili, jak nakonfigurovat posílení zabezpečení roviny dat Kubernetes.
Související materiály najdete na následujících stránkách: