Проектирование решения для управления секретами, ключами и сертификатами
В Azure ключи шифрования могут управляться платформой или клиентом.
Ключи, управляемые платформой (PMK), — это ключи шифрования, которые создаются, хранятся и управляются в Azure. Клиенты не взаимодействуют с PMK. Ключи, используемые для шифрования неактивных данных Azure, например, являются PMK по умолчанию.
С другой стороны, ключи, управляемые клиентом (CMK), — это те ключи, которые можно читать, создавать, удалять, обновлять и (или) администрировать с помощью одного или нескольких клиентов. Ключи, хранящиеся в принадлежащем пользователю хранилище ключей или аппаратном модуле безопасности (HSM), являются ключей CMK. Создание собственных ключей (BYOK) — это сценарий с CMK, когда клиент импортирует (переносит) ключи из внешнего хранилища в службу управления ключами Azure (см. статью Azure Key Vault: спецификация BYOK).
Особым типом ключа, управляемого клиентом, является ключ шифрования ключа (KEK). KEK — это первичный ключ, который управляет доступом к одному или нескольким ключам шифрования, которые сами шифруются.
Ключи, управляемые клиентом, могут храниться локально или, что происходит чаще, в облачной службе управления ключами.
Службы управления ключами Azure
Azure предлагает несколько решений для хранения ключей и управления ими в облаке, включая Azure Key Vault, Управляемый модуль HSM Azure, Выделенное устройство HSM и Модуль HSM для платежей. Эти варианты различаются уровнем соответствия FIPS, затратами на управление и предполагаемыми приложениями.
Azure Key Vault (уровень "Стандартный") — соответствующая стандарту FIPS 140-2 уровня 1 многопользовательская облачная служба управления ключами, которую также можно использовать для хранения секретов и сертификатов. Ключи, хранящиеся в Azure Key Vault, защищены программным обеспечением и могут использоваться для шифрования неактивных данных и пользовательских приложений. Key Vault предоставляет современный API и широчайший выбор региональных развертываний и интеграций со службами Azure. Дополнительные сведения см. в статье Сведения об Azure Key Vault.
Azure Key Vault (уровень "Премиум") — соответствующее стандарту FIPS 140-2 уровня 2 мультитенантное предложение HSM, которое можно использовать для хранения ключей в защищенной аппаратной границе. Корпорация Майкрософт использует базовый модуль HSM и управляет им, а ключи, хранящиеся в Azure Key Vault уровня "Премиум", можно использовать для шифрования неактивных данных и пользовательских приложений. Key Vault уровня "Премиум" также предоставляет современный API и широчайший выбор региональных развертываний и интеграций со службами Azure. Дополнительные сведения см. в статье Сведения об Azure Key Vault.
Управляемый модуль HSM Azure — соответствующее стандарту FIPS 140-2 уровня 3 однотенантное предложение HSM, которое предоставляет клиентам полный контроль над HSM для шифрования неактивных данных, а также использования SSL без ключа и пользовательских приложений. Клиенты получают пул из трех секций HSM, которые вместе действуют как одно логическое высокодоступное устройство HSM, перед которым стоит служба, предоставляющая функции шифрования через API Key Vault. Корпорация Майкрософт обрабатывает подготовку, исправление, обслуживание и отработку отказа оборудования виртуальных машин, но не имеет доступа к ключам, так как служба выполняется в конфиденциальной вычислительной инфраструктуре Azure. Управляемый модуль HSM интегрирован с такими службами PaaS, как Azure SQL, служба хранилища Azure и Azure Information Protection, и предлагает поддержку TLS без ключа с использованием F5 и Nginx. Дополнительные сведения см. в статье Общие сведения об Управляемом модуле HSM Azure Key Vault.
Выделенное устройство HSM Azure — соответствующее стандарту FIPS 140-2 уровня 3 предложение HSM без операционной системы, которое позволяет клиентам арендовать устройство HSM общего назначения, расположенное в центрах обработки данных Майкрософт. Клиент имеет полное право собственности на устройство HSM и несет ответственность за установку исправлений и обновление микропрограммы при необходимости. У корпорации Майкрософт нет разрешений на устройство или доступ к материалу ключа, а служба Выделенного устройства HSM не интегрирована ни с какими предложениями Azure PaaS. Клиенты могут взаимодействовать с HSM с использованием API PKCS#11, JCE/JCA и KSP/CNG. Это предложение наиболее полезно для устаревших рабочих нагрузок lift-and-shift, PKI, разгрузки SSL и TLS без ключа (поддерживаемые интеграции включают F5, Nginx, Apache, Palo Alto, IBM GW и пр.), приложений OpenSSL, Oracle TDE и Azure SQL TDE (IaaS). Дополнительные сведения см. в статье Общие сведения об Управляемом модуле HSM Azure Key Vault.
Модуль HSM для платежей Azure — соответствующее стандарту FIPS 140-2 уровня 3, PCI HSM версии 3 предложение без операционной системы, которое позволяет клиентам арендовать модуль HSM для платежей в центрах обработки данных Майкрософт для платежных операций, включая обработку платежей, выдачу платежных учетных данных, защиту ключей и данных проверки подлинности, а также защиту конфиденциальных данных. Служба соответствует стандартам PCI DSS и PCI 3DS. Модуль HSM для платежей Azure предлагает однотенантные модули HSM для клиентов, которым требуется полный административный контроль и монопольный доступ к HSM. Как только HSM выделяется клиенту, корпорация Майкрософт теряет доступ к данным клиента. Аналогичным образом, когда HSM больше не требуется, данные клиента обнуляются и стираются, как только HSM освобождается, чтобы обеспечить полную конфиденциальность и безопасность. Дополнительные сведения см. в статье Сведения о Модуле HSM для платежей Azure.
Общие сведения о типах секретов, ключей и сертификатов, с которыми можно работать в хранилище ключей, см. в обзоре ключей, секретов и сертификатов Azure Key Vault.
Рекомендации по использованию Key Vault
Использование отдельных хранилищ ключей
Мы рекомендуем использовать отдельное хранилище для каждого приложения в каждой среде (разработка, подготовка к производству и производство) в каждом регионе. Это позволит исключить обмен секретами между разными средами и регионами, а также минимизирует риски в случае нарушения безопасности.
Почему мы рекомендуем использовать отдельные хранилища ключей
Хранилища ключей определяют границы безопасности для хранимых секретов. Группировка секретов в одном и том же хранилище увеличивает радиус поражения события безопасности, так как атаки, среди прочего, могут открыть доступ к секретам. Подумайте, к каким секретам должно иметь доступ конкретное приложение, а затем разделите свои хранилища ключей на основе этого разграничения. Разделение хранилищ ключей по приложениям — наиболее распространенный сценарий. Но границы безопасности могут быть более управляемыми для больших приложений, например, для каждой группы связанных служб.
Управление доступом к хранилищу ключей
Ключи шифрования и секреты, такие как сертификаты, строки подключения и пароли, являются конфиденциальными и критически важными для бизнеса данными. Вам нужно защитить доступ к хранилищам ключей, разрешив доступ только авторизованным приложениям и пользователям. Функции безопасности Azure Key Vault — обзор модели доступа Key Vault. Здесь объясняются такие понятия, как проверка подлинности и авторизация, а также описано, как защитить доступ к хранилищам ключей.
При управлении доступом к хранилищу рекомендуется:
- Заблокировать доступ к подписке, группе ресурсов и основным хранилищам (управление доступом на основе ролей (RBAC)).
- Создать политики доступа для каждого хранилища.
- Использовать принцип наименьших привилегий для предоставления доступа.
- Включите брандмауэр и конечные точки службы для виртуальной сети.
Включение защиты данных для хранилища
Включите защиту от очистки, чтобы защититься от вредоносного или случайного удаления секрета или хранилища даже после включения обратимого удаления.
Дополнительные сведения см. в статье Общие сведения об обратимом удалении в Azure Key Vault
Включите ведение журнала.
Включите ведение журнала для хранилища. Также настройте оповещения.
Резервное копирование
Защита от очистки предотвращает вредоносное и случайное удаление объектов хранилища в течение 90 дней. В сценариях, когда защита от очистки невозможна, рекомендуется создавать объекты хранилища резервных копий, которые невозможно воссоздать из других источников, таких как ключи шифрования, созданные в хранилище.
Дополнительные сведения о резервном копировании см. в разделе Резервное копирование и восстановление Azure Key Vault
Мультитенантные решения и Key Vault
Мультитенантное приложение основано на архитектуре, в которой компоненты используются для обслуживания нескольких клиентов или арендаторов. Мультитенантные решения часто используются для поддержки решений SaaS (платформа как услуга). Если вы создаете мультитенантное решение, включающее Key Vault, ознакомьтесь со статьей Мультитенантность и Azure Key Vault.