使用 Azure CLI 在 Azure Database for MySQL 灵活服务器中管理防火墙规则

适用于 Azure Database for MySQL 灵活服务器

Azure Database for MySQL 灵活服务器支持两种用于连接到灵活服务器的互斥网络连接方法。 这两个选项如下:

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

本文重点介绍如何使用 Azure CLI 创建支持公共访问(允许的 IP 地址)的 Azure Database for MySQL 灵活服务器实例。 本文概述了创建服务器后可用于创建、更新、删除、列出和显示防火墙规则的 Azure CLI 命令。 如果使用公共访问(允许的 IP 地址),则仅限通过允许的 IP 地址连接到 Azure Database for MySQL 灵活服务器实例。 防火墙规则中需要允许客户端 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 在创建灵活服务器期间创建防火墙规则

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

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

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

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

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

    az mysql flexible-server create --location chinaeast2 --public-access 0.0.0.0
    

    重要

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

  • 创建启用公共访问的 Azure Database for MySQL 灵活服务器实例,并允许所有 IP 地址。

    az mysql flexible-server create --location chinaeast2 --public-access all
    

    注意

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

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

    az mysql flexible-server create --location chinaeast2 --public-access none
    

    注意

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

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

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

命令:

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

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

创建防火墙规则

使用 az mysql flexible-server firewall-rule create 命令在服务器上创建新的防火墙规则。 若要允许一系列 IP 地址的访问,请提供 IP 地址用作起始 IP 地址和结束 IP 地址,如此示例所示。

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

若要允许单个 IP 地址的访问,则提供单个 IP 地址,如此示例所示。

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

若要允许来自 Azure IP 地址的应用程序连接到 Azure Database for MySQL 灵活服务器实例,请提供 IP 地址 0.0.0.0 作为起始 IP,如此示例所示。

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

重要

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

成功后,每个 create 命令输出会列出已创建的防火墙规则的详细信息,默认采用 JSON 格式。 如果失败,结果会改为显示错误消息文本。

列出防火墙规则

使用 az mysql flexible-server firewall-rule list 命令列出服务器上现有的服务器防火墙规则。 请注意,服务器名称属性是在“--name”开关中指定的。

az mysql flexible-server firewall-rule list --name mydemoserver

输出会默认采用 JSON 格式列出规则(如果有)。 可使用“--output table”开关,以更具可读性的表格格式输出结果。

az mysql flexible-server firewall-rule list --name mydemoserver --output table

更新防火墙规则

使用 az mysql flexible-server firewall-rule update 命令更新服务器上现有的防火墙规则。 提供现有防火墙规则的名称作为输入,并提供要更新的起始 IP 地址和结束 IP 地址特性。

az mysql flexible-server firewall-rule update --name mydemoserver --rule-name FirewallRule1 --start-ip-address 13.83.152.0 --end-ip-address 13.83.152.1

成功后,命令输出会列出已更新后的防火墙规则的详细信息,默认采用 JSON 格式。 如果失败,输出会改为显示错误消息文本。

注意

如果该防火墙规则不存在,则 update 命令将创建该规则。

显示防火墙规则详细信息

使用 az mysql flexible-server firewall-rule show 命令显示服务器中现有的防火墙规则详细信息。 输入现有防火墙规则的名称。

az mysql flexible-server firewall-rule show --name mydemoserver --rule-name FirewallRule1

成功后,命令输出会列出指定的防火墙规则的详细信息,默认采用 JSON 格式。 如果失败,输出会改为显示错误消息文本。

删除防火墙规则

使用 az mysql flexible-server firewall-rule delete 命令删除服务器中现有的防火墙规则。 提供当前防火墙规则的名称。

az mysql flexible-server firewall-rule delete --name mydemoserver --rule-name FirewallRule1

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

后续步骤