可以通过 az postgres flexible-server firewall-rule create 命令将防火墙规则添加到服务器。
az postgres flexible-server firewall-rule create \
--resource-group <resource_group> \
--name <server> \
--rule-name <rule> \
--start-ip-address <start_ip_address> \
--end-ip-address <end_ip_address>
如果尝试在未 Ready 处于状态的服务器上添加防火墙规则,将收到如下所示的错误:
Code: InternalServerError
Message: An unexpected error occured while processing the request. Tracking ID: '<tracking_id>'
注释
防火墙规则名称只能包含0-9、a-z、A-Z和。 -_ 此外,防火墙规则的名称必须至少为 3 个字符,长度不超过 128 个字符。
如果尝试添加名称无效的防火墙规则,将收到如下所示的错误:
The firewall rule name can only contain 0-9, a-z, A-Z, '-' and '_'. Additionally, the name of the firewall rule must be at least 3 characters and no more than 128 characters in length.
如果您尝试添加一个名称与现有另一防火墙规则名称匹配的防火墙规则,您不会收到错误信息,但规则会使用为--start-ip-address和--end-ip-address提供的值进行更新。
如果为参数--start-ip-address传递无效的 IP 地址--end-ip-address,将收到如下所示的错误:
Incorrect value for ip address. Ip address should be IPv4 format. Example: 12.12.12.12.
如果为--start-ip-address传递的值大于为--end-ip-address传递的值,将会收到如下错误:
The end IP address is smaller than the start IP address.
如果尝试将防火墙规则添加到未启用公共访问权限的服务器,将收到如下所示的错误:
Firewall rule operations cannot be requested for a private access enabled server.
注释
虽然不建议这样做,但可以创建具有不同名称和重叠 IP 范围的多个防火墙规则,甚至匹配起始和结束 IP 地址。
若要允许 Azure 中的任何 Azure 服务对您的服务器进行公共访问,必须创建一个防火墙规则,该规则的开始和结束 IP 地址均设置为 0.0.0.0。
重要
在防火墙中,当您配置起始和结束 IP 地址为 0.0.0.0 的规则时,这会将防火墙设置为允许来自分配给任何 Azure 服务或资产的 IP 地址的连接,包括其他客户订阅中的连接。