Перемещение Azure Key Vault в другой регион

Azure Key Vault не поддерживает перемещение хранилища ключей в другой регион.

Вместо перемещений необходимо выполнить следующие действия.

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

Схема, показывающая шаблон перемещения хранилища ключей Azure

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

  • Убедитесь, что подписка Azure позволяет создавать хранилища ключей в целевом регионе.

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

  • В зависимости от структуры Key Vault может потребоваться развернуть и настроить виртуальная сеть в целевом регионе.

  • Задокументируйте и запланируйте повторную настройку в Key Vault в целевом регионе:

    • Политики доступа и параметры конфигурации сети.
    • Обратимое удаление и защита от очистки.
    • Параметры автоматической настройки.

Простой

Сведения о возможных простоях см. в статье Cloud Adoption Framework для Azure: выбор метода перемещений.

Рекомендации по конечным точкам службы

Конечные точки службы виртуальной сети для Azure Key Vault ограничивают доступ к указанной виртуальной сети. Конечные точки также могут ограничить доступ к списку диапазонов адресов IPv4 (интернет-протокол версии 4). Доступ любого пользователя, подключающегося к Key Vault из-за пределов этих источников, запрещен. Если конечные точки службы были настроены в исходном регионе для ресурса Key Vault, то же самое необходимо сделать в целевом.

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

Рекомендации по частной конечной точке

Приватный канал Azure обеспечивает частное подключение из виртуальной сети к Платформа Azure как услуга (PaaS), собственные клиентом или партнерские службы Майкрософт. Приватный канал упрощает сетевую архитектуру и защищает подключение между конечными точками в Azure, устраняя уязвимость данных к общедоступному Интернету.

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

Рекомендации по интеграции DNS частной конечной точки Azure

Важно правильно настроить параметры DNS для разрешения IP-адреса частной конечной точки в полное доменное имя (FQDN) строка подключения.

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

Сетевой интерфейс, связанный с частной конечной точкой, содержит сведения для настройки DNS. Сведения о сетевом интерфейсе содержат полное доменное имя и частные IP-адреса для ресурса приватного канала.

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

  • Используйте файл узла (рекомендуется только для тестирования). Для переопределения DNS можно использовать файл узла на виртуальной машине.
  • Используйте частную зону DNS. Вы можете с помощью частных зон DNS переопределять разрешения DNS для частной конечной точки. Частная зона DNS может быть связана с вашей виртуальной сетью для разрешения конкретных доменов.
  • Используйте DNS-сервер пересылки (необязательно). Чтобы переопределить разрешение DNS для ресурса приватного канала, можно использовать DNS-сервер пересылки. Создайте правило пересылки DNS, чтобы использовать частную зону DNS на DNS-сервере, размещенном в виртуальной сети.

Подготовить

Чтобы экспортировать шаблон с помощью портала Azure:

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

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

  3. Выберите пункты >Автоматизация>Экспорт шаблона.

  4. Выберите Скачать в колонке Экспорт шаблона.

  5. Найдите скачанный c портала ZIP-файл и распакуйте его в любую выбранную папку.

    В ZIP-файле содержатся JSON-файлы, содержащие шаблон и скрипты для развертывания шаблона.

Следует учитывать следующие основные понятия.

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

Изменение шаблона

Измените шаблон, изменив имя и регион хранилища ключей.

Чтобы развернуть шаблон с помощью портала Azure, выполните следующие действия.

  1. На портале Azure выберите Создать ресурс.

  2. В строке Поиск в Marketplace введите развертывание шаблона и нажмите клавишу ВВОД.

  3. Выберите Развертывание шаблона.

  4. Нажмите кнопку создания.

  5. Выберите Создать собственный шаблон в редакторе.

  6. Выберите Загрузить файл и следуйте инструкциям, чтобы загрузить файл template.json, скачанный в предыдущем разделе.

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

    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vaults_name": {
            "defaultValue": "key-vault-name",
            "type": "String"
        }
    },
    
  8. Измените свойство location в файле template.json на целевой регион. В этом примере значение целевого региона устанавливается равным centralus.

    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "apiVersion": "2023-07-01",
            "name": "[parameters('vaults_name')]",
            "location": "centralus",
            ...
        },
        ...
    ]
    

    Чтобы получить коды расположения регионов, см. статью Расположения Azure. Код региона — это имя региона без пробелов, Central US = centralus.

  9. Удалите ресурсы для ввода частной конечной точки в шаблоне.

    {
    "type": "Microsoft.KeyVault/vaults/privateEndpointConnections",
    ...
    }
    
  10. Если вы настроили конечную точку службы в хранилище ключей в разделе networkAcl в разделе VirtualNetworkRules, добавьте правило для целевой подсети. Убедитесь, что флаг ignoreMissingVnetServiceEndpoint имеет значение False, поэтому IaC не сможет развернуть Key Vault в случае, если конечная точка службы не настроена в целевом регионе.

    parameter.json

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "target_vnet_externalid": {
          "value": "virtualnetwork-externalid"
        },
        "target_subnet_name": {
          "value": "subnet-name"
        }
      }
    }
    

    _template.json

        "networkAcls": {
            "bypass": "AzureServices",
            "defaultAction": "Deny",
            "ipRules": [],
            "virtualNetworkRules": [
                {
                    "id": "[concat(parameters('target_vnet_externalid'), concat('/subnets/', parameters('target_subnet_name')]",
                    "ignoreMissingVnetServiceEndpoint": false
                }
            ]
        }
    

Повторное развертывание

Разверните шаблон, чтобы создать новое хранилище ключей в целевом регионе.

  1. Сохраните файл template.json.

  2. Введите или выберите значения свойств:

    • Подписка— выберите подписку Azure.

    • Группа ресурсов: щелкните Создать и укажите имя группы ресурсов.

    • Расположение. Выберите расположение Azure.

  3. Выберите "Я согласен с условиями, указанными выше", а затем нажмите кнопку "Выбрать покупку".

  4. Политики доступа и параметры конфигурации сети (частные конечные точки) необходимо повторно настроить в новом Хранилище ключей. Обратимое удаление и очистка должны быть перенастроены в новом хранилище ключей и параметрах автоматической очистки.

Совет

Если появилось сообщение о том, что указанный XML-файл имеет недопустимый синтаксис, сравните JSON в своем шаблоне со схемами, описанными в документации по Azure Resource Manager.

Повторное развертывание с помощью миграции данных

Внимание

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

  1. Выполните действия, описанные в подходе повторного развертывания.
  2. Для секретов:
    1. Скопируйте и сохраните значение секрета в исходном хранилище ключей.
    2. Повторно создайте секрет в целевом хранилище ключей и задайте значение для сохраненного секрета.
  3. Для сертификатов:
    1. Экспортируйте сертификат в PFX-файл.
    2. Импортируйте PFX-файл в целевое хранилище ключей. Если вы не можете экспортировать закрытый ключ (exportable не задано), необходимо создать сертификат нового сертификата и импортировать его в целевое хранилище ключей.
  4. При перемещении связанной службы Azure ключи повторно создаются.
  5. Убедитесь, что ключи были созданы для связанной службы.

Проверка

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