Резервное копирование базы данных Azure для PostgreSQL

Azure Backup и службы Баз данных Azure объединены, чтобы создать решение корпоративного класса для резервного копирования для серверов базы данных Azure для PostgreSQL, где резервные копии сохраняются до 10 лет. Помимо долгосрочного хранения, решение предлагает следующие возможности:

  • Плановое резервное копирование по запросу, управляемое клиентом, на уровне отдельной базы данных.
  • Восстановление на уровне базы данных осуществляется на любой сервер PostgreSQL или в хранилище BLOB-объектов.
  • Централизованный мониторинг всех операций и заданий.
  • Резервные копии хранятся на отдельных доменах безопасности и сбоя. Если исходный сервер или подписка при каких-либо обстоятельствах скомпрометирована, резервные копии остаются в хранилище Azure Backup (в управляемых учетных записях хранилища Azure Backup).
  • Использование pg_dump обеспечивает большую гибкость при восстановлении. Это позволяет восстанавливать все версии базы данных

Это решение можно использовать независимо или в дополнение к собственному решению резервного копирования, которое предлагает Azure PostgreSQL, предусматривающему срок хранения до 35 дней. Собственное решение подходит для оперативного восстановления, например, если надо выполнить восстановление из последней резервной копии. Решение Azure Backup позволяет обеспечить соответствие требованиям, а также более детализированное и гибкое резервное копирование / восстановление.

Процесс резервного копирования

  1. Как администратор резервной копии вы можете указать базы данных Azure PostgreSQL, которые предполагается создать резервную копию. Кроме того, вы также можете указать сведения о хранилище ключей Azure, в котором хранятся учетные данные, необходимые для подключения к указанным базам данных. Эти учетные данные надежно внесены администратором базы данных в хранилище ключей Azure.
  2. Затем служба резервного копирования проверяет, есть ли у нее соответствующие разрешения на проверку подлинности с указанным сервером PostgreSQL и резервное копирование его баз данных.
  3. Azure Backup запускает роль сотрудника (VM) с установленным в ней расширением резервной копии для связи с защищенным сервером PostgreSQL. Это расширение состоит из координатора и подключаемого модуля PostgreSQL. Этот модуль инициирует рабочий процесс для различных операций, таких как резервное копирование и восстановление, а подключаемый модуль управляет фактическим потоком данных.
  4. В назначенное время координатор связывается с подключаемым модулем, чтобы начать потоковую передачу данных резервного копирования с сервера PostgreSQL с помощью pg_dump (настраиваемого).
  5. Подключаемый модуль отправляет данные непосредственно в учетные записи управляемого хранилища Azure Backup (замаскированного под хранилище Azure Backup), не устранив необходимость в промежуточном расположении. Данные шифруются с помощью ключей под управлением Майкрософт и хранятся службой Azure Backup в учетных записях хранения.

Diagram showing the backup process.

Проверка подлинности Azure Backup Azure с помощью сервера PostgreSQL

Azure Backup соблюдает строгие правила безопасности, изложенные в Azure; разрешения для ресурса, для которого выполняется резервное копирование, не подразумеваются и должны быть явно заданы пользователем.

Модель проверки подлинности на основе хранилища ключей

Служба Azure Backup должна подключаться к Azure PostgreSQL при их резервном копировании. Хотя для этого подключения используется "имя пользователя + пароль" (или строка подключения), соответствующая базе данных, эти учетные данные не хранятся в Azure Backup. Напротив, эти учетные данные должны быть надежно внесены администратором базы данных в хранилище ключей Azure как секрет. Администратор рабочей нагрузки отвечает за управление учетными данными и их поворот; Azure Backup вызывает последние секретные сведения из хранилища ключей для резервного копирования.

Diagram showing the workload or database flow.

Набор разрешений, необходимых для резервного копирования базы данных Azure для PostgreSQL

  1. Предоставление следующих разрешений доступа для MSI хранилища Azure Backup:

    • Доступ для чтения на сервер Azure PostgreSQL.
    • Доступ пользователя секретов хранилища ключей (или получение или перечисление секретов) в хранилище ключей Azure.
  2. Доступ к сетевой линии видимости:

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

Примечание.

Вы можете предоставить эти разрешения в потоке настройки резервной копии одним щелчком мыши, если у вас (администратора резервной копии) есть доступ к нужным ресурсам или вы используете шаблон ARM, если у вас нет необходимых разрешений (если участвуют несколько людей).

Набор разрешений, необходимых для восстановления базы данных Azure для PostgreSQL

Разрешения на восстановление аналогичны разрешениям, необходимым для резервного копирования, и необходимо предоставить разрешения для целевого сервера PostgreSQL и соответствующего ему хранилища ключей. В отличие от настройки потока резервного копирования, в настоящее время опыт предоставления таких разрешений в этом случае отсутствует. Поэтому необходимо вручную предоставить доступ на сервер Postgres и в соответствующее хранилище ключей.

Кроме того, убедитесь, что у пользователя базы данных (в соответствии с учетными данными, хранимыми в хранилище ключей) есть следующие права на восстановление базы данных:

  • Имя пользователя ALTER USER CREATEDB;
  • Присвойте роль azure_pg_admin пользователю базы данных.

Модель проверки подлинности на основе Microsoft Entra ID

Ранее мы запустили другую модель проверки подлинности, которая была полностью основана на идентификаторе Microsoft Entra. Однако теперь мы предоставляем новую модель проверки подлинности на основе хранилища ключей (как объяснялось выше) в качестве альтернативного варианта, который упростит процесс настройки.

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

Примечание.

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

Предоставление доступа к Azure PostgreSQL-серверу и хранилищу ключей вручную

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

Права доступа на сервер Azure PostgreSQL

  1. Настройка доступа MSI хранилища Azure Backup для чтения на сервер Azure PostgreSQL.

    Screenshot showing the option to set Backup vault’s M S I Reader access on the Azure PostgreSQL server.

  2. Доступ к сетевой линии видимости на сервер Azure PostgreSQL: установите для флажка "Разрешить доступ к службам Azure" пометку "Да".

    Screenshot showing the option to set network line of sight access on the Azure PostgreSQL server.

Разрешения доступа в хранилище ключей Azure (связанное с сервером PostgreSQL)

  1. Настройка доступа MSI хранилища Azure Backup на уровне пользователя секретов хранилища ключей (или получение или перечисление секретов) в хранилище ключей Azure. Для назначения разрешений можно использовать назначения ролей или политики доступа. Добавлять разрешение с помощью обоих параметров не требуется, так как это не помогает.

    Screenshot showing the option to provide secret user access.

    Screenshot showing the option to grant the backup vault’s M S I Key Vault Secrets User access on the key vault.

    • С помощью политик доступа (то есть для модели разрешений установлена политика доступа к хранилищу):

      Screenshot showing the option to grant permission using Permission model is set to Vault access policy model.

  2. Доступ к сетевой линии видимости в хранилище ключей: установите флажок Разрешить доверенным службам Майкрософт на Да.

    Screenshot showing to set the Allow trusted Microsoft services flag to yes for Network line of sight access on the key vault.

Права резервного копирования пользователя базы данных в базе данных

Запустите следующий запрос в инструменте администрирования PG (замените имя пользователя идентификатором пользователя базы данных):

DO $do$
DECLARE
sch text;
BEGIN
EXECUTE format('grant connect on database %I to %I', current_database(), 'username');
FOR sch IN select nspname from pg_catalog.pg_namespace
LOOP
EXECUTE format($$ GRANT USAGE ON SCHEMA %I TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL TABLES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON TABLES TO username $$, sch);
EXECUTE format($$ GRANT SELECT ON ALL SEQUENCES IN SCHEMA %I TO username $$, sch);
EXECUTE format($$ ALTER DEFAULT PRIVILEGES IN SCHEMA %I GRANT SELECT ON SEQUENCES TO username $$, sch);
END LOOP;
END;
$do$

)

Примечание.

Если база данных, для которой уже настроена резервная копия, завершается сбоем с помощью UserErrorMissingDBPermissions , обратитесь к этому руководству по устранению неполадок.

Использование инструмента администрирования PG

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

Screenshot showing the process to connect to Azure PostgreSQL server using P G admin tool.

Создайте новый сервер с именем по вашему выбору. Введите имя или адрес хоста так же, как имя сервера, отображаемое в представлении ресурсов Azure PostgreSQL на портале Azure.

Screenshot showing the option to create new server using P G admin tool.

Screenshot showing the option to enter the Host name or address name same as the Server name.

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

Screenshot showing the process to add the current client I D address to the Firewall rules.

На сервер можно добавлять новые базы данных и пользователей баз данных. Для пользователей базы данных добавите новые Роли входа/группы. Убедитесь, что в параметре возможность входа установлено значение Да.

Screenshot showing the process to add new databases and database users to the server.

Screenshot showing the process to add a new login or group role for database users.

Screenshot showing the verification of the can login option is set to Yes.

Следующие шаги

Резервное копирование базы данных Azure для PostgreSQL