使用 Azure CLI 管理適用於 MySQL 的 Azure 資料庫 - 彈性伺服器防火牆規則
適用於 MySQL 的 Azure 資料庫彈性伺服器支援兩種連線至彈性伺服器的網路連線方法,且兩者互斥。 這兩個選項是:
- 公用存取 (允許的 IP 位址)
- 私人存取 (VNet 整合)
在本文中,我們著重於使用 Azure CLI,建立適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,其具有公用存取權 (允許的 IP 位址)。 本文提供 Azure CLI 命令的概觀,可讓您在建立伺服器之後,用來建立、更新、刪除、列出及顯示防火牆規則。 適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體具有公用存取 (允許的 IP 位址),其連線僅限於允許的 IP 位址。 防火牆規則中必須允許用戶端 IP 位址。 若要深入了解,請參閱 公用存取 (允許的 IP 位址)。 可以在建立伺服器時定義防火牆規則 (建議),但也可以稍後新增。
啟動 Azure Cloud Shell
Azure Cloud Shell 是免費的互動式 Shell,可讓您用來執行本文中的步驟。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。
若要開啟 Cloud Shell,只要選取程式碼區塊右上角的 [試試看] 即可。 您也可以移至 https://shell.azure.com/bash,在另一個瀏覽器索引標籤中開啟 Cloud Shell。 選取 [複製] 即可複製程式碼區塊,將它貼到 Cloud Shell 中,然後選取 Enter 鍵加以執行。
如果您偏好在本機安裝和使用 CLI,本快速入門需要有 Azure CLI 2.0 版或更新版本。 執行 az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI。
必要條件
您必須使用 az login 命令登入帳戶。 請注意 ID 屬性,其代表您 Azure 帳戶的訂閱識別碼。
az login
使用 az account set 命令,以選取您帳戶底下的特定訂用帳戶。 請留意,使用 az login 輸出中的 ID 值,作為命令中訂用帳戶引數的值。 如果您有多個訂用帳戶,請選擇資源計費的適當訂用帳戶。 若要取得您的所有訂用帳戶,請使用 az account list。
az account set --subscription <subscription id>
使用 Azure CLI 在彈性伺服器期間建立防火牆規則
您可以使用 az mysql flexible-server --public access
命令,建立具有公用存取 (允許的 IP 位址) 的適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,並在建立伺服器時設定防火牆規則。 您可以使用 -public-access 參數來提供可連線到伺服器的允許IP位址。 您可以提供要包含在允許 IP 清單中的單一 IP 位址或 IP 位址範圍。 IP 位址範圍必須以虛線分隔,且不包含任何空格。 如下列範例所示,有各種選項,可使用 Azure CLI 建立適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體。
請參閱 Azure CLI 參考文件,藉以取得可設定的 CLI 參數完整清單。 例如,您可以選擇性地在下列命令中指定資源群組。
建立具有公用存取權的適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,並新增用戶端 IP 位址,以具備伺服器的存取權。
az mysql flexible-server create --public-access <my_client_ip>
建立具有公用存取權的適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,並新增 IP 位址範圍,以具備此伺服器的存取權。
az mysql flexible-server create --public-access <start_ip_address-end_ip_address>
建立具有公用存取權的適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,並允許來自 Azure IP 位址的應用程式連線到伺服器。
az mysql flexible-server create --public-access 0.0.0.0
重要
此選項會設定防火牆允許從 Azure 中的 Azure 服務和資源進行公用存取,包括來自其他客戶訂用帳戶的連線。 選取這個選項時,請確定您的登入和使用者權限會限制為只有授權的使用者才能存取。
建立具有公用存取權的適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,並允許所有 IP 位址。
az mysql flexible-server create --public-access all
注意
上述命令會建立具有起始 IP 位址=0.0.0.0、結束 IP 位址=255.255.255.255 且不會封鎖任何 IP 位址的防火牆規則。 網際網路上的任何主機都可以存取此伺服器。 強烈建議您只暫時使用此規則,而且只在不包含敏感性資料的測試伺服器上使用。
建立適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,其具備公用存取權,但不含 IP 位址。
az mysql flexible-server create --public-access none
注意
不建議在沒有任何防火牆規則的情況下建立伺服器。 如果您未新增任何防火牆規則,則任何用戶端都無法連線到此伺服器。
在伺服器建立之後,建立和管理防火牆規則
az mysql flexible-server firewall-rule 命令是從 Azure CLI 中用來建立、刪除、列出、顯示及更新防火牆規則。
命令:
- create:建立適用於 MySQL 的 Azure 資料庫彈性伺服器防火牆規則。
- list:列出適用於 MySQL 的 Azure 資料庫彈性伺服器防火牆規則。
- update:更新適用於 MySQL 的 Azure 資料庫彈性伺服器防火牆規則。
- show:顯示適用於 MySQL 的 Azure 資料庫彈性伺服器防火牆規則的詳細資料。
- delete:刪除適用於 MySQL 的 Azure 資料庫彈性伺服器防火牆規則。
請參閱 Azure CLI 參考文件,藉以取得可設定的 CLI 參數完整清單。 例如,在下列命令中,您可以選擇性地指定資源群組。
建立防火牆規則
使用 az mysql flexible-server firewall-rule create
命令在伺服器上建立新的防火牆規則。
若要允許存取 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 位址的應用程式連線到適用於 MySQL 的 Azure 資料庫彈性伺服器執行個體,請如此範例所示,提供 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 服務和資源進行公用存取,包括來自其他客戶訂用帳戶的連線。 選取這個選項時,請確定您的登入和使用者權限會限制為只有授權的使用者才能存取。
成功時,每個建立命令輸出會以 JSON 格式 (依預設) 列出您已建立之防火牆規則的詳細資料。 如果發生失敗,結果就會改為顯示錯誤訊息文字。
列出防火牆規則
使用 az mysql flexible-server firewall-rule list
命令列出伺服器上的現有伺服器防火牆規則。 伺服器名稱屬性是在 -name 參數中指定。
az mysql flexible-server firewall-rule list --name mydemoserver
輸出會以 JSON 格式 (依預設) 列出規則 (若有的話)。 您可以使用 -output 數據表 參數,以更容易閱讀的數據表格式輸出結果。
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 格式 (依預設) 列出您已更新之防火牆規則的詳細資料。 如果失敗,輸出就會改為顯示錯誤訊息文字。
注意
如果防火牆規則不存在,更新命令就會建立規則。
顯示防火牆規則詳細資料
使用 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
成功時,沒有任何輸出。 失敗時會顯示錯誤訊息文字。