使用 Azure CLI 创建和管理 Azure Database for PostgreSQL 灵活服务器防火墙规则

适用于:Azure Database for PostgreSQL 灵活服务器

Azure Database for PostgreSQL 灵活服务器支持两种类型的互斥网络连接方法来连接到 Azure Database for PostgreSQL 灵活服务器实例。 这两个选项如下:

  • 公共访问(允许的 IP 地址)
  • 专用访问(VNet 集成)

本文重点介绍如何使用 Azure CLI 创建具有公共访问(允许的 IP 地址)的 Azure Database for PostgreSQL 灵活服务器实例,并提供可用于创建服务器后创建、更新、删除、列出和显示防火墙规则的 Azure CLI 命令的概述。 如果使用公共访问(允许的 IP 地址),则仅限通过允许的 IP 地址连接到 Azure Database for PostgreSQL 灵活服务器实例。 防火墙规则中需要允许客户端 IP 地址。 若要了解详细信息,请参阅公共访问(允许的 IP 地址)。 可以在创建服务器时定义防火墙规则(建议),但也可以稍后添加。

启动 Azure PowerShell

本快速入门要求使用 Azure CLI 2.0 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

先决条件

需要使用 az login 命令登录帐户。 请注意 ID 属性,该属性指的是 Azure 帐户的订阅 ID 。

az login

使用 az account set 命令选择帐户下的特定订阅。 记下 az login 输出中的 ID 值,将其用作命令中 subscription 参数的值。 如果有多个订阅,请选择应计费的资源所在的相应订阅。 若要获取所有订阅,请使用 az account list

az account set --subscription <subscription id>

使用 Azure CLI 创建 Azure Database for PostgreSQL 灵活服务器实例创建期间的防火墙规则

可以使用 az postgres flexible-server --public access 命令创建具有公共访问(允许的 IP 地址)的 Azure Database for PostgreSQL 灵活服务器实例,并配置 Azure Database for PostgreSQL 灵活服务器实例创建期间的防火墙规则。 可使用“--public-access”开关来提供能够连接到服务器的允许的 IP 地址。 可提供要包含在允许的 IP 列表中的单个或一系列 IP 地址。 IP 地址范围必须用短划线分隔,并且不包含任何空格。 使用 CLI 创建 Azure Database for PostgreSQL 灵活服务器实例有多种选项,如以下示例所示。

请参阅 Azure CLI 参考文档 以获取可配置 CLI 参数的完整列表。 例如,在下面的命令中,可以选择指定资源组。

  • 创建启用公共访问的 Azure Database for PostgreSQL 灵活服务器实例,并添加要对该服务器具有访问权限的客户端 IP 地址:

    az postgres flexible-server create --public-access <my_client_ip>
    
  • 创建启用公共访问的 Azure Database for PostgreSQL 灵活服务器实例,并添加要对此服务器具有访问权限的 IP 地址的范围:

    az postgres flexible-server create --public-access <start_ip_address-end_ip_address>
    
  • 创建启用公共访问的 Azure Database for PostgreSQL 灵活服务器实例,并允许来自 Azure IP 地址的应用程序连接到你的 Azure Database for PostgreSQL 灵活服务器实例:

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

    重要

    该选项将防火墙配置为允许从 Azure 服务和 Azure 中资源对此服务器进行公共访问,包括来自其他客户的订阅的连接。 选择该选项时,请确保登录名和用户权限将访问限制为仅允许授权用户访问。

    • 创建启用公共访问的 Azure Database for PostgreSQL 灵活服务器实例,并允许所有 IP 地址:
      az postgres flexible-server create --public-access all
      

      注意

      上述命令会创建一个起始 IP 地址为 0.0.0.0、结束 IP 地址为 255.255.255.255 且不会阻止任何 IP 地址的防火墙规则。 Internet 上的任何主机都可访问此服务器。 强烈建议仅在不包含敏感数据的测试服务器上临时使用此规则。

  • 创建启用公共访问但不启用任何 IP 地址的 Azure Database for PostgreSQL 灵活服务器实例:

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

    注意

    建议不要创建一个没有任何防火墙规则的服务器。 如果未添加任何防火墙规则,则没有客户端能够连接到该服务器。

创建服务器后创建和管理防火墙规则

在 Azure CLI 中使用 az postgres flexible-server firewall-rule 命令,创建、删除、列出、显示和更新防火墙规则。

命令:

  • create:创建 Azure Database for PostgreSQL 灵活服务器防火墙规则。
  • list:列出 Azure Database for PostgreSQL 灵活服务器防火墙规则。
  • update:更新 Azure Database for PostgreSQL 灵活服务器防火墙规则。
  • show:显示 Azure Database for PostgreSQL 灵活服务器防火墙规则的详细信息。
  • delete:删除 Azure Database for PostgreSQL 灵活服务器防火墙规则。

请参阅 Azure CLI 参考文档 以获取可配置 CLI 参数的完整列表。 例如,在下面的命令中,可以选择指定资源组。

创建防火墙规则

使用 az postgres flexible-server firewall-rule create 命令在服务器上创建新的防火墙规则。 若要允许一系列 IP 地址的访问,请提供 IP 地址用作起始 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

若要允许来自 Azure IP 地址的应用程序连接到 Azure Database for 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 服务和 Azure 中资源对此服务器进行公共访问,包括来自其他客户的订阅的连接。 选择该选项时,请确保登录名和用户权限将访问限制为仅允许授权用户访问。

成功后,每个 create 命令输出会列出已创建的防火墙规则的详细信息,默认采用 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 地址和结束 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

成功后没有任何输出。 如果失败,会显示错误消息文本。

后续步骤