Povolení standardu FIPS (Federal Information Process Standard) pro fondy uzlů Azure Kubernetes Service (AKS)
Federální standard pro zpracování informací (FIPS) 140-2 je bezpečnostní standard vlády USA, který definuje minimální bezpečnostní požadavky na kryptografické moduly v produktech a systémech informačních technologií. Azure Kubernetes Service (AKS) umožňuje vytvářet fondy uzlů s Linuxem a Windows s povoleným rozhraním FIPS 140-2. Nasazení běžící na fondech uzlů s podporou FIPS mohou tyto kryptografické moduly používat k zajištění vyššího zabezpečení a pomáhají tak splnit bezpečnostní kontroly v rámci dodržování předpisů FedRAMP. Další informace o FIPS 140-2 naleznete v tématu Federal Information Processing Standard (FIPS) 140.
Požadavky
- Azure CLI verze 2.32.0 nebo novější je nainstalovaná a nakonfigurovaná. Verzi zjistíte spuštěním příkazu
az --version
. Další informace o instalaci nebo upgradu Azure CLI najdete v tématu Instalace Azure CLI.
Poznámka:
Doplněk pro monitorování AKS podporuje fondy uzlů s podporou FIPS s Ubuntu, Azure Linuxem a Windows počínaje agentem verze 3.1.17 (Linux) a Win-3.1.17 (Windows).
Omezení
- Fondy uzlů s podporou FIPS mají následující omezení:
- Fondy uzlů s podporou FIPS vyžadují Kubernetes verze 1.19 a vyšší.
- Pokud chcete aktualizovat základní balíčky nebo moduly používané pro FIPS, musíte použít upgrade image uzlu.
- Image kontejnerů na uzlech FIPS se neposoužily kvůli dodržování předpisů FIPS.
- Připojení sdílené složky CIFS selže, protože FIPS zakáže některé ověřovací moduly. Chcete-li tento problém vyřešit, podívejte se na chyby při připojování sdílené složky ve fondu uzlů s podporou FIPS.
Důležité
Image Linuxu s podporou FIPS je jiná image než výchozí linuxová image používaná pro fondy uzlů založených na Linuxu.
Image uzlů s podporou FIPS můžou mít různá čísla verzí, jako je verze jádra, než image, které nejsou povolené pomocí FIPS. Cyklus aktualizace pro fondy uzlů s podporou FIPS a imagí uzlů se může lišit od fondů uzlů a imagí, které nejsou povolené pomocí FIPS.
Podporované verze operačního systému
Fondy uzlů s podporou FIPS můžete vytvořit ve všech podporovaných typech operačních systémů, Linuxu a Windows. Ne všechny verze operačního systému však podporují fondy uzlů s podporou FIPS. Po vydání nové verze operačního systému obvykle existuje čekací doba, než bude kompatibilní se standardem FIPS.
Následující tabulka obsahuje podporované verze operačního systému:
Typ operačního systému | Skladová položka operačního systému | Dodržování předpisů FIPS |
---|---|---|
Linux | Ubuntu | Podporováno |
Linux | Azure Linux | Podporováno |
Windows | Windows Server 2019 | Podporováno |
Windows | Windows Server 2022 | Podporováno |
Pokud výchozí verze Ubuntu nepodporuje FIPS, služba AKS při vyžádání s podporou FIPS ubuntu použije výchozí verzi s podporou FIPS. Například Ubuntu 22.04 je výchozí pro fondy uzlů Linuxu. Vzhledem k tomu, že verze 22.04 v současné době nepodporuje FIPS, AKS ve výchozím nastavení používá Ubuntu 20.04 pro fondy uzlů s podporou FIPS s Linuxem.
Poznámka:
Dříve můžete pomocí rozhraní GetOSOptions API určit, jestli daný operační systém podporuje FIPS. Rozhraní GETOSOptions API je teď zastaralé a už nebude součástí nových verzí rozhraní API AKS od verze 2024-05-01.
Vytvoření fondu uzlů s podporou FIPS pro Linux
Vytvořte fond uzlů s podporou FIPS s Linuxem
az aks nodepool add
pomocí příkazu s parametrem--enable-fips-image
.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image
Poznámka:
Parametr můžete také použít
--enable-fips-image
s příkazemaz aks create
při vytváření clusteru a povolit FIPS ve výchozím fondu uzlů. Při přidávání fondů uzlů do clusteru vytvořeného tímto způsobem musíte parametr použít--enable-fips-image
při přidávání fondů uzlů k vytvoření fondu uzlů s podporou FIPS.Ověřte, že je fond uzlů povolený pomocí
az aks show
příkazu a pomocí dotazu na hodnotu enableFIPS v agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Následující příklad výstupu ukazuje, že fond uzlů fipsnp je povolený FIPS:
Name enableFips --------- ------------ fipsnp True nodepool1 False
Vypíše uzly pomocí
kubectl get nodes
příkazu.kubectl get nodes
Následující příklad výstupu ukazuje seznam uzlů v clusteru. Uzly začínající
aks-fipsnp
jsou součástí fondu uzlů s podporou FIPS.NAME STATUS ROLES AGE VERSION aks-fipsnp-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-fipsnp-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-fipsnp-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9
Pomocí příkazu spusťte nasazení s interaktivní relací na jednom z uzlů ve fondu
kubectl debug
uzlů s podporou FIPS.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Ve výstupu interaktivní relace ověřte, že jsou povolené kryptografické knihovny FIPS. Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
Fondy uzlů s podporou FIPS mají také kubernetes.azure.com/fips_enabled=true popisek, který nasazení můžou použít k cílení na tyto fondy uzlů.
Vytvoření fondu uzlů s podporou FIPS pro Windows
Pomocí příkazu s parametrem
az aks nodepool add
--enable-fips-image
vytvořte fond uzlů Windows s podporou FIPS. Na rozdíl od fondů uzlů založených na Linuxu sdílejí fondy uzlů Windows stejnou sadu imagí.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name fipsnp \ --enable-fips-image \ --os-type Windows
Ověřte, že je fond uzlů povolený pomocí
az aks show
příkazu a pomocí dotazu na hodnotu enableFIPS v agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Ověřte, že fondy uzlů Windows mají přístup k kryptografickým knihovnám FIPS vytvořením připojení RDP k uzlu Windows ve fondu uzlů s podporou FIPS a zkontrolujte registr. Z aplikace Spustit zadejte
regedit
.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
Vyhledejte v registru.Pokud
Enabled
je nastavená hodnota 1, je funkce FIPS povolená.
Fondy uzlů s podporou FIPS mají také kubernetes.azure.com/fips_enabled=true popisek, který nasazení můžou použít k cílení na tyto fondy uzlů.
Aktualizace existujícího fondu uzlů za účelem povolení nebo zakázání FIPS
Existující fondy uzlů Linuxu je možné aktualizovat, aby bylo možné povolit nebo zakázat FIPS. Pokud plánujete migrovat fondy uzlů z jiného typu než FIPS na FIPS, nejprve před migrací do produkčního prostředí ověřte, že vaše aplikace funguje správně v testovacím prostředí. Ověření aplikace v testovacím prostředí by mělo bránit problémům způsobeným tím, že jádro FIPS blokuje některé slabé šifrovací nebo šifrovací algoritmus, například algoritmus MD4, který nedodržuje předpisy FIPS.
Poznámka:
Při aktualizaci existujícího fondu uzlů s Linuxem, aby bylo možné povolit nebo zakázat FIPS, se aktualizace fondu uzlů přesune mezi imagí fips a ne fips. Tato aktualizace fondu uzlů aktivuje opětovné vytvoření image, aby se aktualizace dokončila. To může způsobit, že dokončení aktualizace fondu uzlů trvá několik minut.
Požadavky
- Azure CLI verze 2.64.0 nebo novější Verzi zjistíte spuštěním příkazu
az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.
Povolení FIPS ve stávajícím fondu uzlů
Existující fondy uzlů Linuxu je možné aktualizovat, aby bylo možné povolit FIPS. Při aktualizaci existujícího fondu uzlů se image uzlu změní z aktuální image na doporučenou image FIPS stejné skladové položky operačního systému.
Aktualizujte fond uzlů pomocí příkazu [
az aks nodepool update
][az-aks-nodepool-update] s parametrem--enable-fips-image
.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --enable-fips-image
Výše uvedený příkaz okamžitě aktivuje opětovné vytvoření image fondu uzlů, aby nasadil operační systém kompatibilní se standardem FIPS. K tomuto obnovení dojde během aktualizace fondu uzlů. Nejsou vyžadovány žádné další kroky.
Pomocí příkazu a dotazu na hodnotu enableFIPS v agentPoolProfiles ověřte, že je váš fond uzlů povolený
az aks show
.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Následující příklad výstupu ukazuje, že fond uzlů np je povolený FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Vypíše uzly pomocí
kubectl get nodes
příkazu.kubectl get nodes
Následující příklad výstupu ukazuje seznam uzlů v clusteru. Uzly začínající
aks-np
jsou součástí fondu uzlů s podporou FIPS.NAME STATUS ROLES AGE VERSION aks-np-12345678-vmss000000 Ready agent 6m4s v1.19.9 aks-np-12345678-vmss000001 Ready agent 5m21s v1.19.9 aks-np-12345678-vmss000002 Ready agent 6m8s v1.19.9 aks-nodepool1-12345678-vmss000000 Ready agent 34m v1.19.9
Pomocí příkazu spusťte nasazení s interaktivní relací na jednom z uzlů ve fondu
kubectl debug
uzlů s podporou FIPS.kubectl debug node/aks-np-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
Ve výstupu interaktivní relace ověřte, že jsou povolené kryptografické knihovny FIPS. Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
root@aks-np-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
Fondy uzlů s podporou FIPS mají také kubernetes.azure.com/fips_enabled=true popisek, který nasazení můžou použít k cílení na tyto fondy uzlů.
Zakázání FIPS ve stávajícím fondu uzlů
Existující fondy uzlů Linuxu je možné aktualizovat, aby se zakázalo FIPS. Při aktualizaci existujícího fondu uzlů se image uzlu změní z aktuální image FIPS na doporučenou image bez FIPS stejné skladové položky operačního systému. Po opětovném vytvoření image dojde ke změně image uzlu.
Aktualizujte fond uzlů Linuxu pomocí příkazu [
az aks nodepool update
][az-aks-nodepool-update] s parametrem--disable-fips-image
.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --disable-fips-image
Výše uvedený příkaz okamžitě aktivuje opětovné vytvoření image fondu uzlů, aby nasadil operační systém kompatibilní se standardem FIPS. K tomuto obnovení dojde během aktualizace fondu uzlů. Nejsou vyžadovány žádné další kroky.
Pomocí příkazu a dotazu na hodnotu enableFIPS v agentPoolProfiles ověřte, že váš fond uzlů není povolený
az aks show
.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Následující příklad výstupu ukazuje, že fond uzlů np není povolený FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Další kroky
Další informace o zabezpečení AKS najdete v tématu Osvědčené postupy pro zabezpečení a upgrady clusteru ve službě Azure Kubernetes Service (AKS).
Azure Kubernetes Service