Включение стандарта FIPS для пулов узлов Службы Azure Kubernetes (AKS)

Федеральный стандарт обработки информации (FIPS) 140-2 — это стандартный государственный стандарт США, который определяет минимальные требования к безопасности для криптографических модулей в продуктах и системах информационных технологий. Служба Azure Kubernetes (AKS) позволяет создавать пулы узлов Linux и Windows с поддержкой FIPS 140-2. Экземпляры, развернутые в пулах узлов, соответствующих FIPS, могут использовать эти криптографические модули для повышения безопасности и обеспечения соответствия требованиям безопасности в рамках соответствия требованиям FedRAMP. Дополнительные сведения о FIPS 140-2 см. в разделе Федеральный стандарт обработки информации (FIPS) 140.

Необходимые компоненты

  • Azure CLI версии 2.32.0 или более поздней версии, установленной и настроенной. Чтобы узнать версию, выполните команду az --version. Дополнительные сведения об установке или обновлении Azure CLI см. в разделе Установка Azure CLI.

Примечание.

Надстройка мониторинга AKS поддерживает пулы узлов с поддержкой FIPS с Ubuntu, Azure Linux и Windows, начиная с агента 3.1.17 (Linux) и Win-3.1.17 (Windows).

Ограничения

  • Пулы узлов с поддержкой FIPS имеют следующие ограничения:
    • Для пулов узлов, соответствующих FIPS, необходима служба Kubernetes версии 1.19 и выше.
    • Чтобы обновить базовые пакеты или модули, используемые для FIPS, необходимо использовать Обновление образа узла.
    • Образы контейнеров на узлах, отвечающих стандарту FIPS, не проверялись на соответствие этому стандарту.
    • Подключение общей папки CIFS завершается сбоем, так как FIPS отключает некоторые модули проверки подлинности. Чтобы обойти эту проблему, ознакомьтесь с ошибками при подключении общей папки в пуле узлов с поддержкой FIPS.

Внимание

Образ Linux, соответствующий FIPS, отличается от образа по умолчанию, используемого для пулов узлов на базе Linux. Чтобы включить FIPS в пуле узлов, необходимо создать новый пул узлов на базе Linux. Вы не можете включить FIPS в существующих пулах узлов.

Образы узлов с поддержкой FIPS могут иметь разные номера версий, например версию ядра, чем образы, которые не включены в FIPS. Цикл обновления для пулов узлов с поддержкой FIPS и образов узлов может отличаться от пулов узлов и образов, которые не включены в FIPS.

Создание пула узлов Linux с поддержкой FIPS

  1. Создайте пул узлов Linux с поддержкой FIPS с помощью az aks nodepool add команды с параметром --enable-fips-image .

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image
    

    Примечание.

    Вы также можете использовать --enable-fips-image параметр с az aks create командой при создании кластера для включения FIPS в пуле узлов по умолчанию. При добавлении пулов узлов в кластер, созданный таким образом, необходимо использовать --enable-fips-image параметр при добавлении пулов узлов для создания пула узлов с поддержкой FIPS.

  2. Убедитесь, что пул узлов включен с поддержкой az aks show FIPS с помощью команды и запроса значения enableFIPS в agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    

    В следующем примере выходных данных показано, что пул узлов fipsnp включен с поддержкой FIPS:

    Name       enableFips
    ---------  ------------
    fipsnp     True
    nodepool1  False  
    
  3. Вывод списка узлов с помощью kubectl get nodes команды.

    kubectl get nodes
    

    В следующем примере выходных данных показан список узлов в кластере. Узлы, начиная с aks-fipsnp , являются частью пула узлов с поддержкой 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. Запустите развертывание с интерактивным сеансом на одном из узлов в пуле узлов с поддержкой FIPS с помощью kubectl debug команды.

    kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  5. В выходных данных интерактивного сеанса убедитесь, что включены криптографические библиотеки FIPS. Выходные данные должны выглядеть примерно так:

    root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled
    1
    

Пулы узлов с поддержкой FIPS также имеют метку kubernetes.azure.com/fips_enabled=true, которую развертывания могут использовать для целевых пулов узлов.

Создание пула узлов Windows с поддержкой FIPS

  1. Создайте пул узлов Windows с поддержкой FIPS с помощью az aks nodepool add команды с параметром --enable-fips-image . В отличие от пулов узлов Linux пулы узлов Windows используют один набор образов.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name fipsnp \
        --enable-fips-image \
        --os-type Windows
    
  2. Убедитесь, что пул узлов включен с поддержкой az aks show FIPS с помощью команды и запроса значения enableFIPS в agentPoolProfiles.

    az aks show \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \
        -o table
    
  3. Убедитесь, что пулы узлов Windows имеют доступ к криптографическим библиотекам FIPS, создав подключение RDP к узлу Windows в пуле узлов с поддержкой FIPS и проверка реестре. В области применения Выполнить введите regedit.

  4. Найдите HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy в реестре.

  5. Если Enabled задано значение 1, то fiPS включен.

Screenshot shows a picture of the registry editor to the FIPS Algorithm Policy, and it being enabled.

Пулы узлов с поддержкой FIPS также имеют метку kubernetes.azure.com/fips_enabled=true, которую развертывания могут использовать для целевых пулов узлов.

Следующие шаги

Дополнительные сведения о безопасности AKS см. в разделе Рекомендации по обеспечению безопасности кластера и обновления в службе Azure Kubernetes (AKS).