共用方式為


使用 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 是免費的互動式 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 在 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例建立期間建立防火牆規則

您可以使用 az postgres flexible-server --public access 命令來建立具有公用存取權的 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例(允許的IP位址),並在建立 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器實例期間設定防火牆規則。 您可以使用 --public-access 參數來提供能夠連線到伺服器的允許 IP 位址。 您可以提供要包含在允許 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

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

下一步