Шифрование дисков ОС с помощью ключа, управляемого клиентом, в Azure Red Hat OpenShift
По умолчанию диски ОС виртуальных машин в кластере Azure Red Hat OpenShift шифруются автоматически созданными ключами, управляемыми Microsoft Azure. Для дополнительной безопасности клиенты могут шифровать диски ОС с помощью самоуправляемых ключей при развертывании кластера Azure Red Hat OpenShift. Эта функция позволяет более контролировать шифрование конфиденциальных данных с помощью ключей, управляемых клиентом (CMK).
Кластеры, созданные с помощью ключей, управляемых клиентом, имеют класс хранилища по умолчанию, включенный с помощью ключей. Поэтому диски ОС и диски данных шифруются этими ключами. Ключи, управляемые клиентом, хранятся в Azure Key Vault.
Дополнительные сведения об использовании Azure Key Vault для создания и обслуживания ключей см . в документации по Microsoft Azure на стороне сервера.
При шифровании на основе узла данные, хранящиеся на узле виртуальной машины виртуальных машин агента Azure Red Hat OpenShift, шифруются неактивных и передаются в службу хранилища. Шифрование на основе узла означает, что временные диски шифруются неактивных с помощью ключей, управляемых платформой.
Кэш дисков ОС и данных шифруется неактивных с помощью ключей, управляемых платформой, или ключей, управляемых клиентом, в зависимости от типа шифрования, установленного на этих дисках. По умолчанию при использовании Azure Red Hat OpenShift диски ОС и данных шифруются неактивных с помощью ключей, управляемых платформой, то есть кэши этих дисков также шифруются по умолчанию с помощью ключей, управляемых платформой.
Вы можете указать собственные управляемые ключи, выполнив приведенные ниже действия по шифрованию. Кэш для этих дисков также будет зашифрован с помощью ключа, указанного на этом шаге.
Ограничение
Это ответственность за обслуживание хранилища ключей и набора шифрования дисков в Azure. Сбой в обслуживании ключей приведет к сбою кластеров Azure Red Hat OpenShift. Виртуальные машины перестают работать, и в результате весь кластер Azure Red Hat OpenShift перестанет работать.
Команда разработчиков Azure Red Hat OpenShift не может получить доступ к ключам. Поэтому они не могут создавать резервные копии, реплицировать или извлекать ключи.
Дополнительные сведения об использовании наборов шифрования дисков для управления ключами шифрования см . в документации по Microsoft Azure на стороне сервера.
Необходимые компоненты
Проверьте разрешения. У вас должны быть разрешения участника и администратора доступа пользователей или разрешения владельца.
Если у вас несколько подписок Azure, зарегистрируйте поставщиков ресурсов. Сведения о регистрации см. в разделе "Регистрация поставщиков ресурсов".
Вам потребуется включить функцию EncryptionAtHost в подписке. Его можно включить, выполнив следующие действия:
az feature register --namespace Microsoft.Compute --name EncryptionAtHost
Чтобы проверить текущее состояние функции, выполните следующую команду:
az feature show --namespace Microsoft.Compute --name EncryptionAtHost
Создание виртуальной сети, содержащей две пустые подсети
Создайте виртуальную сеть, содержащую две пустые подсети. Если у вас есть существующая виртуальная сеть, которая соответствует вашим потребностям, можно пропустить этот шаг. Сведения о процедуре создания виртуальной сети см. в статье "Создание виртуальной сети с двумя пустыми подсетями".
Создайте экземпляр Azure Key Vault
Для хранения ключей необходимо использовать экземпляр Azure Key Vault. Создайте новое хранилище Azure Key Vault с включенной защитой от очистки. Затем создайте новый ключ в Key Vault, чтобы сохранить собственный пользовательский ключ.
- Задайте дополнительные разрешения среды:
export KEYVAULT_NAME=$USER-enckv export KEYVAULT_KEY_NAME=$USER-key export DISK_ENCRYPTION_SET_NAME=$USER-des
- Создайте Key Vault и ключ в Key Vault:
az keyvault create -n $KEYVAULT_NAME \ -g $RESOURCEGROUP \ -l $LOCATION \ --enable-purge-protection true az keyvault key create --vault-name $KEYVAULT_NAME \ -n $KEYVAULT_KEY_NAME \ --protection software KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv) KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME \ --name $KEYVAULT_KEY_NAME \ --query "[key.kid]" -o tsv)
Создание набора Шифрование дисков Azure
Набор Шифрование дисков Azure используется в качестве эталонной точки для дисков в кластерах Azure Red Hat OpenShift. Он подключен к Azure Key Vault, созданному на предыдущем шаге, и извлекает ключи, управляемые клиентом, из этого расположения.
az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME \
-l $LOCATION \
-g $RESOURCEGROUP \
--source-vault $KEYVAULT_ID \
--key-url $KEYVAULT_KEY_URL
DES_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g $RESOURCEGROUP --query 'id' -o tsv)
DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME \
-g $RESOURCEGROUP \
--query "[identity.principalId]" \
-o tsv)
Предоставление разрешений для набора шифрования дисков для доступа к Key Vault
Используйте набор шифрования дисков, созданный на предыдущем шаге, и предоставьте разрешение набору шифрования дисков для доступа и использования Azure Key Vault.
az keyvault set-policy -n $KEYVAULT_NAME \
-g $RESOURCEGROUP \
--object-id $DES_IDENTITY \
--key-permissions wrapkey unwrapkey get
Создание кластера Azure Red Hat OpenShift
Создайте кластер Azure Red Hat OpenShift для использования ключей, управляемых клиентом.
Примечание.
Включение CMK в существующих кластерах ARO возможно только для рабочих узлов, а не главных узлов. Это можно сделать с помощью машинного API с помощью наборов CR. Дополнительные сведения см. в разделе "Включение ключей шифрования, управляемых клиентом" для набора компьютеров и изменения набора вычислительных машин.
az aro create --resource-group $RESOURCEGROUP \
--name $CLUSTER \
--vnet aro-vnet \
--master-subnet master-subnet \
--worker-subnet worker-subnet \
--disk-encryption-set $DES_ID
После создания кластера Azure Red Hat OpenShift все виртуальные машины шифруются с помощью ключей шифрования, управляемых клиентом.
Чтобы убедиться, что ключи настроены правильно, выполните следующие команды:
- Получите имя группы ресурсов кластера, где находятся виртуальные машины кластера, диски и т. д.:
CLUSTERRESOURCEGROUP=$(az aro show --resource-group $RESOURCEGROUP --name $CLUSTER --query 'clusterProfile.resourceGroupId' -o tsv | cut -d '/' -f 5)
- Убедитесь, что диски подключены к правильному набору шифрования дисков:
Полеaz disk list -g $CLUSTERRESOURCEGROUP --query '[].encryption'
diskEncryptionSetId
в выходных данных должно указывать на набор шифрования дисков, указанный при создании кластера Azure Red Hat OpenShift.