Azure Key Vault резервное копирование и восстановление

В этом документе показано, как создать резервную копию секретов, ключей и сертификатов, хранящихся в хранилище ключей. Резервная копия предназначена для предоставления автономной копии всех секретов в маловероятном случае потери доступа к хранилищу ключей.

Обзор

Azure Key Vault предоставляет несколько вариантов обеспечения доступности и возможности восстановления данных хранилища:

В этой статье рассматриваются операции резервного копирования и восстановления вручную для отдельных объектов в Key Vault.

Когда следует использовать резервные копии

Azure Key Vault автоматически предоставляет функции, помогающие поддерживать доступность и предотвращать потерю данных. Делайте резервное копирование секретов только в случае, если имеется критически важное деловое обоснование. Резервное копирование секретов в хранилище ключей может привести к проблемам в эксплуатации, таким как необходимость обслуживания нескольких наборов журналов, разрешений и резервных копий при истечении срока действия или ротации секретов.

Рекомендуется использовать резервные копии в следующих сценариях:

  • Вам необходимо перемещать объекты между хранилищами ключей или регионами Azure
  • Вы хотите автономную копию своих конфиденциальных данных по нормативным или требованиям соответствия.
  • Вы используете регион, который не поддерживает автоматическую репликацию между регионами (Южная Бразилия, Юго-Восточная Бразилия или Западная часть США 3)
  • Вам нужна защита от случайного удаления определенных объектов

В большинстве случаев встроенные функции избыточности и обратимого удаления Key Vault обеспечивают достаточную защиту без необходимости резервного копирования вручную. Дополнительные сведения см. в разделе доступность и избыточность Azure Key Vault.

Ограничения

Это важно

Key Vault не поддерживает возможность резервного копирования более 500 последних версий ключа, секрета или объекта сертификата, и попытка сделать это может привести к ошибке. Удалить предыдущие версии ключа, секрета или сертификата нельзя.

Key Vault в настоящее время не предоставляет возможности резервного копирования всего хранилища ключей в одной операции, и ключи, секреты и сертификаты необходимо резервировать по отдельности.

Кроме того, рассмотрите следующие проблемы:

  • Создание резервной копии секретов с несколькими версиями может привести к ошибкам из-за превышения времени ожидания.
  • Резервная копия создает моментальный снимок в определенный момент времени. Секреты могут обновляться во время резервной копии, что приводит к несоответствию ключей шифрования.
  • Если вы превысите ограничения службы хранилища ключей на количество запросов в секунду, доступ к хранилищу будет ограничен, и резервное копирование не удастся.

Рекомендации по проектированию

При резервном копировании объекта хранилища ключей, например секрета, ключа или сертификата, операция резервного копирования скачивает объект в виде зашифрованного объекта blob. Этот большой двоичный объект не может быть расшифрован за пределами Azure. Чтобы получить пригодные для использования данные из этого объекта, необходимо восстановить объект в хранилище ключей в пределах той же подписки Azure и Azure geography.

Вопросы безопасности

При восстановлении ключа в другом хранилище его копия становится полностью независимой от исходного. Отключение, удаление или очистка исходного ключа не влияет на восстановленные копии. Они остаются полностью функциональными в своих соответствующих хранилищах. В службе Azure Key Vault нет механизма для аннулирования или недействительности ранее созданной резервной копии или ключа, уже восстановленного в другом хранилище.

Эта независимость имеет важные последствия для реагирования на инциденты. Если вы подозреваете, что ключ скомпрометирован через несанкционированное резервное копирование и восстановление, не отключайте ключ или не удаляйте его сразу. Это выключает все зависимые службы (например, базы данных Azure SQL TDE становятся недоступными, Azure Storage с ключами, управляемыми клиентом, возвращает ошибки, а защищенные с помощью шифрования диска Azure виртуальные машины не могут запускаться), но это не влияет на копии, которые злоумышленник может восстановить в другом хранилище.

Вместо этого выполните следующую последовательность реагирования на инциденты:

  1. Устраните нарушение: немедленно просмотрите и отмените все главные субъекты с правами на резервное копирование или восстановление в скомпрометированном хранилище. Изучите журналы аудита Key Vault для несанкционированного резервного копирования и восстановления, чтобы понять область компрометации.
  2. Создайте ключ замены в отдельном хранилище с жестко ограниченным доступом. Используйте новый ключ (не новую версию скомпрометированного ключа), чтобы убедиться, что замена не может быть получена из существующих blob-объектов резервного копирования.
  3. Перенастройка зависимых служб для использования ключа замены (каждая служба повторно упаковывает ключи шифрования данных с новым ключом).
  4. Убедитесь, что все зависимые службы функционируют нормально с заменяющим ключом.
  5. Отключите скомпрометированный ключ только после полной миграции зависимых служб. Если защита очистки включена в хранилище, ключ не может быть окончательно удален до истечения срока хранения, поэтому оставьте его отключенным до тех пор.

Чтобы снизить риск несанкционированного кражи резервных копий, ограничьте разрешения на резервное копирование и восстановление только удостоверениям, которым они действительно требуются. Отслеживайте журналы аудита Key Vault для операций KeyBackup, KeyRestore, SecretBackup, SecretRestore, CertificateBackup и оповещений о непредвиденных действиях CertificateRestore. Дополнительные сведения см. в разделе ведения журнала Azure Key Vault.

Рекомендации по обеспечению безопасности для конкретных ключей и процедуры компрометации ключей см. в статье "Защита ключей Azure Key Vault".

Предпосылки

Чтобы создать резервную копию объекта хранилища ключей, необходимо:

  • Разрешения уровня участника или более высокого уровня для подписки Azure.
  • Хранилище ключей, содержащее секреты, которые необходимо сохранить в резервной копии.
  • Дополнительное хранилище ключей, в котором будут восстановлены секреты.

Резервное копирование и восстановление с портала Azure

Выполните действия, описанные в этом разделе, чтобы создать резервную копию и восстановить объекты с помощью портала Azure.

Сделать резервную копию

  1. Перейдите на портал Azure.

  2. Выберите хранилище ключей.

  3. Перейдите к объекту (секрет, ключ или сертификат), который вы хотите создать резервную копию.

    Снимок экрана: выбор параметра

  4. Выберите объект.

  5. Выберите загрузку резервной копии.

    Снимок экрана: где выбрать кнопку

  6. Выберите Скачать.

    Снимок экрана: где выбрать кнопку

  7. Сохраните зашифрованный объект в безопасном месте.

Восстановить

  1. Перейдите на портал Azure.

  2. Выберите хранилище ключей.

  3. Перейдите к типу объекта (секрет, ключ или сертификат), который требуется восстановить.

  4. Выберите восстановить резервную копию.

    Снимок экрана, показывающий, где выбрать функцию «Восстановить резервную копию» в хранилище ключей.

  5. Перейдите в место, где хранится зашифрованный блоб.

  6. Нажмите ОК.

Резервное копирование и восстановление из Azure CLI или Azure PowerShell

## Log in to Azure
az login

## Set your subscription
az account set --subscription <subscription-id>

## Register Key Vault as a provider
az provider register -n Microsoft.KeyVault

## Back up a certificate in Key Vault
az keyvault certificate backup --file <file-path> --name <certificate-name> --vault-name <vault-name> --subscription <subscription-id>

## Back up a key in Key Vault
az keyvault key backup --file <file-path> --name <key-name> --vault-name <vault-name> --subscription <subscription-id>

## Back up a secret in Key Vault
az keyvault secret backup --file <file-path> --name <secret-name> --vault-name <vault-name> --subscription <subscription-id>

## Restore a certificate in Key Vault
az keyvault certificate restore --file <file-path> --vault-name <vault-name> --subscription <subscription-id>

## Restore a key in Key Vault
az keyvault key restore --file <file-path> --vault-name <vault-name> --subscription <subscription-id>

## Restore a secret in Key Vault
az keyvault secret restore --file <file-path> --vault-name <vault-name> --subscription <subscription-id>

Дальнейшие действия