使用 Azure CLI 建立和管理適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器防火牆規則

適用於:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器支援兩種類型的互斥網路連線方法,以聯機到 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例。 這兩個選項是:

  • 公用存取(允許的IP位址)。 在預覽版中使用 Private Link 型網路搭配 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器,可以進一步保護該方法。
  • 私人存取 (VNet 整合)

本文著重於使用 Azure CLI 建立具有公用存取權(允許 IP 位址)的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,並提供您可以在伺服器建立後用來建立、更新、刪除、列出及顯示防火牆規則的 Azure CLI 命令概觀。 使用公用存取(允許的IP位址)時,適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例的連線僅限於允許的IP位址。 防火牆規則中必須允許用戶端IP位址。 若要深入瞭解,請參閱公用存取(允許的IP位址)。 防火牆規則可以在伺服器建立時定義(建議使用),但稍後也可以新增。

啟動 Azure Cloud Shell

Azure Cloud 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 輸出中的標識符值,以作為命令中的 subscription 自變數值 如果您有多個訂用帳戶,請選擇應該計費資源的適當訂用帳戶。 若要取得您的所有訂用帳戶,請使用 az account list

az account set --subscription <subscription id>

使用 Azure CLI 在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例建立期間建立防火牆規則

您可以使用 az postgres flexible-server --public access 命令來建立具有公用存取權的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例(允許的IP位址),並在建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例期間設定防火牆規則。 您可以使用 --public-access 參數來提供能夠連線到伺服器的允許 IP 位址。 您可以提供單一或範圍IP位址,以包含在允許的IP清單中。 IP 位址範圍必須分隔虛線,且不包含任何空格。 有各種選項可使用 CLI 建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,如下列範例所示。

如需可設定 CLI 參數的完整清單,請參閱 Azure CLI 參考檔 。 例如,在下列命令中,您可以選擇性地指定資源群組。

  • 建立具有公用存取權的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,並新增用戶端 IP 位址以存取伺服器:

    az postgres flexible-server create --public-access <my_client_ip>
    
  • 建立具有公用存取權的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,並新增IP位址範圍以存取此伺服器:

    az postgres flexible-server create --public-access <start_ip_address-end_ip_address>
    
  • 建立具有公用存取權的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,並允許來自 Azure IP 位址的應用程式連線到您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例:

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

    重要

    此選項會設定防火牆,以允許從 Azure 內的 Azure 服務和資源公開存取此伺服器,包括來自其他客戶的訂用帳戶連線。 選取這個選項時,請確定您的登入和使用者權限會限制為只有授權的使用者才能存取。

    • 建立具有公用存取權的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,並允許所有IP位址:
      az postgres flexible-server create --public-access all
      

      注意

      上述命令會建立具有起始IP位址=0.0.0.0、結束IP位址=255.255.255.255且不會封鎖IP位址的防火牆規則。 因特網上的任何主機都可以存取此伺服器。 強烈建議只暫時且只在不包含敏感數據的測試伺服器上使用此規則。

  • 建立具有公用存取權且沒有IP位址的 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器實例:

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

    注意

    不建議在沒有任何防火牆規則的情況下建立伺服器。 如果您未新增任何防火牆規則,則沒有任何用戶端可以連線到伺服器。

在伺服器建立之後建立和管理防火牆規則

az postgres flexible-server firewall-rule 命令會從 Azure CLI 使用,以建立、刪除、列出、顯示和更新防火牆規則。

命令:

  • create:建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器防火牆規則。
  • list:列出 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器防火牆規則。
  • 更新:更新 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器防火牆規則。
  • show:顯示 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器防火牆規則的詳細數據。
  • delete:刪除 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器防火牆規則。

如需可設定 CLI 參數的完整清單,請參閱 Azure 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 位址的應用程式連線到您的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例,請提供 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 數據表** 參數,以更容易閱讀的數據表格式輸出結果。

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

成功時,沒有任何輸出。 失敗時,會顯示錯誤訊息文字。

下一步