Sdílet prostřednictvím


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

  1. 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říkazem az 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.

  2. 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  
    
  3. 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
    
  4. 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
    
  5. 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

  1. 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
    
  2. 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
    
  3. 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.

  4. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy Vyhledejte v registru.

  5. Pokud Enabled je nastavená hodnota 1, je funkce FIPS povolená.

Snímek obrazovky znázorňující obrázek editoru registru se zásadami algoritmu FIPS a jeho 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.

  1. 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.

  1. 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  
    
  2. 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
    
  3. 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
    
  4. 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.

  1. 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.

  1. 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).