Включение стандарта 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 могут иметь разные номера версий, например версию ядра, чем образы, которые не включены в FIPS. Цикл обновления для пулов узлов с поддержкой FIPS и образов узлов может отличаться от пулов узлов и образов, которые не включены в FIPS.
Поддерживаемые версии ОС
Пулы узлов с поддержкой FIPS можно создавать во всех поддерживаемых типах ОС, Linux и Windows. Однако не все версии ОС поддерживают узлы с поддержкой FIPS. После выпуска новой версии ОС обычно существует период ожидания, прежде чем он соответствует FIPS.
В таблице ниже приведены поддерживаемые версии ОС:
Тип ОС | SKU ОС | Соответствие FIPS |
---|---|---|
Linux | Ubuntu | Поддерживается |
Linux | Azure Linux | Поддерживается |
Windows | Windows Server 2019 | Поддерживается |
Windows | Windows Server 2022 | Поддерживается |
При запросе fiPS включено Ubuntu, если версия Ubuntu по умолчанию не поддерживает FIPS, AKS по умолчанию будет по умолчанию использовать последнюю версию Ubuntu с поддержкой FIPS. Например, Ubuntu 22.04 по умолчанию используется для пулов узлов Linux. С 22.04 в настоящее время не поддерживает FIPS, AKS по умолчанию использует Ubuntu 20.04 для узлов с поддержкой FIPS для Linux.
Примечание.
Ранее можно использовать API GetOSOptions для определения того, поддерживается ли данная ОС FIPS. API GetOSOptions теперь устарел, и он больше не будет включен в новые версии API AKS, начиная с 2024-05-01.
Создание пула узлов Linux с поддержкой FIPS
Создайте пул узлов 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.Убедитесь, что пул узлов включен с поддержкой
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
Вывод списка узлов с помощью
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
Запустите развертывание с интерактивным сеансом на одном из узлов в пуле узлов с поддержкой FIPS с помощью
kubectl debug
команды.kubectl debug node/aks-fipsnp-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
В выходных данных интерактивного сеанса убедитесь, что включены криптографические библиотеки FIPS. Выходные данные должны выглядеть примерно так:
root@aks-fipsnp-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
Пулы узлов с поддержкой FIPS также имеют метку kubernetes.azure.com/fips_enabled=true, которую развертывания могут использовать для целевых пулов узлов.
Создание пула узлов Windows с поддержкой FIPS
Создайте пул узлов 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
Убедитесь, что пул узлов включен с поддержкой
az aks show
FIPS с помощью команды и запроса значения enableFIPS в agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
Убедитесь, что пулы узлов Windows имеют доступ к криптографическим библиотекам FIPS, создав подключение RDP к узлу Windows в пуле узлов с поддержкой FIPS и проверьте реестр. В области применения Выполнить введите
regedit
.Найдите
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy
в реестре.Если
Enabled
задано значение 1, то fiPS включен.
Пулы узлов с поддержкой FIPS также имеют метку kubernetes.azure.com/fips_enabled=true, которую развертывания могут использовать для целевых пулов узлов.
Обновление существующего пула узлов для включения или отключения FIPS
Существующие пулы узлов Linux можно обновить, чтобы включить или отключить FIPS. Если вы планируете перенести пулы узлов из не FIPS в FIPS, сначала проверьте правильность работы приложения в тестовой среде перед переносом в рабочую среду. Проверка приложения в тестовой среде должна предотвратить проблемы, вызванные блокировкой ядра FIPS некоторых слабых шифров или алгоритмов шифрования, таких как алгоритм MD4, который не соответствует FIPS.
Примечание.
При обновлении существующего пула узлов Linux для включения или отключения FIPS обновление пула узлов будет перемещаться между fips и нефиксным образом. Обновление пула узлов активирует повторную версию для завершения обновления. Это может привести к тому, что обновление пула узлов займет несколько минут.
Необходимые компоненты
- Azure CLI версии 2.64.0 или более поздней. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Включение FIPS в существующем пуле узлов
Существующие пулы узлов Linux можно обновить, чтобы включить FIPS. При обновлении существующего пула узлов образ узла изменится с текущего образа на рекомендуемый образ FIPS одного номера SKU ОС.
Обновите пул узлов с помощью команды [
az aks nodepool update
][az-aks-nodepool-update] с параметром--enable-fips-image
.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --enable-fips-image
Приведенная выше команда активирует повторное создание пула узлов немедленно для развертывания совместимой операционной системы FIPS. Это повторное создание происходит во время обновления пула узлов. Дополнительные действия не требуются.
Убедитесь, что пул узлов включен с помощью
az aks show
команды и запроса для включения значения enableFIPS в agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
В следующем примере выходных данных показано, что пул узлов np включен с поддержкой FIPS:
Name enableFips --------- ------------ np True nodepool1 False
Вывод списка узлов с помощью
kubectl get nodes
команды.kubectl get nodes
В следующем примере выходных данных показан список узлов в кластере. Узлы, начиная с
aks-np
, являются частью пула узлов с поддержкой 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
Запустите развертывание с интерактивным сеансом на одном из узлов в пуле узлов с поддержкой FIPS с помощью
kubectl debug
команды.kubectl debug node/aks-np-12345678-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
В выходных данных интерактивного сеанса убедитесь, что включены криптографические библиотеки FIPS. Выходные данные должны выглядеть примерно так:
root@aks-np-12345678-vmss000000:/# cat /proc/sys/crypto/fips_enabled 1
Пулы узлов с поддержкой FIPS также имеют метку kubernetes.azure.com/fips_enabled=true, которую развертывания могут использовать для целевых пулов узлов.
Отключение FIPS в существующем пуле узлов
Существующие пулы узлов Linux можно обновить, чтобы отключить FIPS. При обновлении существующего пула узлов образ узла изменится с текущего образа FIPS на рекомендуемый образ, отличный от FIPS того же SKU ОС. Изменение образа узла будет происходить после повторного воспроизведения.
Обновите пул узлов Linux с помощью команды [
az aks nodepool update
][az-aks-nodepool-update] с параметром--disable-fips-image
.az aks nodepool update \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name np \ --disable-fips-image
Приведенная выше команда активирует повторное создание пула узлов немедленно для развертывания совместимой операционной системы FIPS. Это повторное создание происходит во время обновления пула узлов. Дополнительные действия не требуются.
Убедитесь, что пул узлов не включен с помощью
az aks show
команды и запроса для включения значения enableFIPS в agentPoolProfiles.az aks show \ --resource-group myResourceGroup \ --name myAKSCluster \ --query="agentPoolProfiles[].{Name:name enableFips:enableFips}" \ -o table
В следующем примере выходных данных показано, что пул узлов np не включен с поддержкой FIPS:
Name enableFips --------- ------------ np False nodepool1 False
Следующие шаги
Дополнительные сведения о безопасности AKS см. в разделе Рекомендации по обеспечению безопасности кластера и обновления в службе Azure Kubernetes (AKS).
Azure Kubernetes Service