Создание правил брандмауэра для Базы данных Azure для PostgreSQL (Гибкий сервер) и управление ими с помощью Azure CLI

Область применения: гибкий сервер Базы данных Azure для PostgreSQL

База данных Azure для PostgreSQL гибкий сервер поддерживает два типа взаимоисключающих методов сетевого подключения для подключения к База данных Azure для PostgreSQL гибкому экземпляру сервера. Имеется две возможности:

  • Общедоступный доступ (разрешенные IP-адреса). Этот метод можно защитить с помощью сети на основе Приватный канал с гибким сервером База данных Azure для PostgreSQL в предварительной версии.
  • Закрытый доступ (интеграция виртуальной сети)

В этой статье рассматривается создание гибкого экземпляра сервера База данных Azure для PostgreSQL с общедоступным доступом (разрешенными IP-адресами) с помощью Azure CLI и содержит общие сведения о командах Azure CLI, которые можно использовать для создания, обновления, удаления, удаления, отображения правил брандмауэра после создания сервера. С общедоступным доступом (разрешенными IP-адресами) подключения к База данных Azure для PostgreSQL гибкому экземпляру сервера ограничены только разрешенными IP-адресами. IP-адреса клиентов должны быть разрешены в правилах брандмауэра. Дополнительные сведения см. в разделе Открытый доступ (разрешенные IP-адреса). Правила брандмауэра могут быть определены во время создания сервера (рекомендуется), но их также можно добавить позже.

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/bash. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.

Если вы решили установить и использовать CLI локально, для выполнения инструкций, приведенных в этом кратком руководстве, вам потребуется Azure CLI 2.0 или более поздней версии. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

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

Вам нужно войти в учетную запись с помощью команды az login . Обратите внимание на свойство ID, которое ссылается на Идентификатор подписки для вашей учетной записи Azure.

az login

Выберите конкретную подписку вашей учетной записи, выполнив команду az account set. Запишите значение идентификатора из выходных данных команды az login, чтобы использовать его в команде в качестве значения аргумента подписки. Если вы используете несколько подписок, выберите соответствующую, в которой за ресурс будет взиматься плата. Чтобы отобразить все ваши подписки, выполните команду az account list.

az account set --subscription <subscription id>

Создание правила брандмауэра при создании гибкого экземпляра сервера База данных Azure для PostgreSQL с помощью Azure CLI

С помощью az postgres flexible-server --public access команды можно создать гибкий экземпляр сервера База данных Azure для PostgreSQL с общедоступным доступом (разрешенными IP-адресами) и настроить правила брандмауэра во время создания гибкого экземпляра сервера База данных Azure для PostgreSQL. Для предоставления разрешенных IP-адресов, которые смогут подключаться к серверу, можно использовать параметр --public-access. Можно указать один IP-адрес или диапазон IP-адресов, которые будут включаться в список разрешенных IP-адресов. Диапазон IP-адресов должен разделяться дефисом и не содержать пробелов. Существуют различные варианты создания База данных Azure для PostgreSQL гибкого экземпляра сервера с помощью интерфейса командной строки, как показано в следующих примерах.

Полный список настраиваемых параметров CLI см. в справочной документации по Azure CLI. Например, в приведенных ниже командах можно дополнительно указать группу ресурсов.

  • Создайте База данных Azure для PostgreSQL гибкий экземпляр сервера с общедоступным доступом и добавьте IP-адрес клиента для доступа к серверу:

    az postgres flexible-server create --public-access <my_client_ip>
    
  • Создайте гибкий экземпляр сервера База данных Azure для PostgreSQL с общедоступным доступом и добавьте диапазон IP-адресов для доступа к этому серверу:

    az postgres flexible-server create --public-access <start_ip_address-end_ip_address>
    
  • Создайте гибкий экземпляр сервера База данных Azure для PostgreSQL с общедоступным доступом и разрешите приложениям из IP-адресов Azure подключаться к вашему База данных Azure для PostgreSQL гибкому экземпляру сервера:

    az postgres flexible-server create --public-access 0.0.0.0
    

    Важно!

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

    • Создайте База данных Azure для PostgreSQL гибкий экземпляр сервера с общедоступным доступом и разрешите все IP-адреса:
      az postgres flexible-server create --public-access all
      

      Примечание.

      Предыдущая команда создает правило брандмауэра с начальным IP-адресом=0.0.0.0, конечный IP-адрес=255.255.255.255, а IP-адреса не блокируются. Любой узел в Интернете может получить доступ к этому серверу. Настоятельно рекомендуется использовать это правило только временно и только на тестовых серверах, не содержащих конфиденциальные данные.

  • Создайте База данных Azure для PostgreSQL гибкий экземпляр сервера с общедоступным доступом и без IP-адреса:

    az postgres flexible-server create --public-access none
    

    Примечание.

    Не рекомендуется создавать сервер без правил брандмауэра. Если вы не добавите правила брандмауэра, то ни один клиент не сможет подключиться к серверу.

Создание правила брандмауэра и управление им после создания сервера

Команда Azure CLI az postgres flexible-server firewall-rule используется для создания, удаления, вывода списка, отображения и обновления правил брандмауэра.

Команды:

  • create: создайте гибкое правило брандмауэра сервера База данных Azure для PostgreSQL.
  • список: список правил брандмауэра База данных Azure для PostgreSQL гибкого сервера.
  • обновление. Обновите правило брандмауэра База данных Azure для PostgreSQL гибкого сервера.
  • show: отображение сведений о правиле брандмауэра База данных Azure для PostgreSQL гибкого сервера.
  • delete: удаление правила брандмауэра База данных Azure для PostgreSQL гибкого сервера.

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

Создание правила брандмауэра

Используйте команду az postgres flexible-server firewall-rule create, чтобы создать новое правило брандмауэра на сервере. Чтобы разрешить доступ к диапазону IP-адресов, укажите начальный и конечный IP-адреса, как показано в этом примере. Для этой команды также ожидается имя группы ресурсов Azure, в которой сервер находится в качестве параметра.

az postgres flexible-server firewall-rule create --name mydemoserver --resource-group testGroup --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.15

Чтобы разрешить доступ для одного IP-адреса, просто укажите один IP-адрес, как в этом примере.

az postgres flexible-server firewall-rule create --name mydemoserver  --resource-group testGroup  --start-ip-address 1.1.1.1

Чтобы разрешить приложениям из IP-адресов Azure подключаться к База данных Azure для PostgreSQL гибкому экземпляру сервера, укажите IP-адрес 0.0.0.0 в качестве начального IP-адреса, как в этом примере.

az postgres flexible-server firewall-rule create --name mydemoserver --resource-group testGroup --start-ip-address 0.0.0.0

Важно!

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

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

Вывод списка правил брандмауэра.

Используйте команду az postgres flexible-server firewall-rule list для вывода списка существующих правил брандмауэра сервера. Обратите внимание, что атрибут имени сервера указан в параметре --name.

az postgres flexible-server firewall-rule list --name mydemoserver --resource-group testGroup

Выходные данные будут содержать правила, если они имеются, в формате JSON (по умолчанию). Параметр --output table** позволяет вывести результаты в более удобном для чтения табличном формате.

az postgres flexible-server firewall-rule list --name mydemoserver --resource-group testGroup --output table

Обновление правила брандмауэра

Используйте команду az postgres flexible-server firewall-rule update, чтобы обновить существующее правило брандмауэра на сервере. В качестве входных данных укажите имя существующего правила брандмауэра, а также атрибуты начального и конечного IP-адресов, которые нужно обновить.

az postgres flexible-server firewall-rule update --name mydemoserver --rule-name FirewallRule1 --resource-group testGroup --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.1

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

Примечание.

Если правило брандмауэра не существует, правило создается командой обновления.

Отображение сведений о правиле брандмауэра

Используйте команду az postgres flexible-server firewall-rule show, чтобы отобразить сведения о существующем на сервере правиле брандмауэра. Укажите имя существующего правила брандмауэра в качестве входных данных.

az postgres flexible-server firewall-rule show --name mydemoserver --rule-name FirewallRule1 --resource-group testGroup

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

Удаление правила брандмауэра

Используйте команду az postgres flexible-server firewall-rule delete, чтобы удалить существующее правило брандмауэра на сервере. Укажите имя существующего правила брандмауэра.

az postgres flexible-server firewall-rule delete --name mydemoserver --rule-name FirewallRule1 --resource-group testGroup

При успешном выполнении выходные данные отсутствуют. В случае сбоя отображается текст сообщения об ошибке.

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