練習 - 保護網路的安全

已完成

在本練習中,您將了解如何使用 Azure 入口網站來檢閱及管理防火牆規則。 您也會了解如何在使用公用端點時設定最安全的連線。

如果您尚未這麼做,請使用下列按鈕開啟 Azure 入口網站。

保護網路安全

當您在 Azure SQL Database 中部署資料庫時,您執行的指令碼已啟用 [允許 Azure 服務和資源存取此伺服器],這可讓來自任何區域或訂用帳戶的資源存取您的資源。 請務必取消選取設定,以確保公用端點是最安全的設定。 取消選取 [允許 Azure 服務和資源存取此伺服器] 設定時,它會封鎖您新增的連線和網路之外的所有連線和網路。

在本練習中,您將了解如何檢視和編輯防火牆規則。 設定防火牆規則可能非常複雜,因為您必須指定適用於所有連線的 IP 位址範圍 (有時候會使用動態 IP 位址)。 本練習結束時的示範影片中會提供用來保護網路的替代方法。

在 Azure 入口網站中管理防火牆規則

  1. 在 Azure 入口網站資源功能表中,選取 [SQL 資料庫],然後選取您的 Azure SQL Database (AdventureWorks)。

  2. 在 SQL 資料庫的命令列中,選取 [設定伺服器防火牆]

    如何移至防火牆與虛擬網路的螢幕擷取畫面。

  3. 取消選取 [允許 Azure 服務和資源存取此伺服器] 設定旁的方塊。

  4. 系統應該已在部署期間新增電腦的用戶端 IP 位址,但如果沒有任何規則符合您的用戶端 IP,請在 [規則名稱] 底下新增 IP 位址,讓您能夠從 SQL Server Management Studio (SSMS) 登入。

  5. 選取儲存以儲存變更。 在 [SQL 資料庫] 功能表中,選取 [概觀] 以返回 [概觀] 頁面。

  6. 若要確認您仍然可以從本機電腦存取,請前往 SSMS。 用滑鼠右鍵按兩下 [物件總管] 中的資料庫,然後選取 [重新整理] 以重新整理與 Azure SQL Database 邏輯伺服器的連線。 如果沒有發生錯誤,則表示您已成功為 IP 位址設定 Azure SQL Database 邏輯伺服器的安全存取權。

    如何重新整理資料庫連線的螢幕擷取畫面。

  7. 您可以選擇性地透過從 SSMS 中的 [新增查詢] 執行此程式碼,查看 SSMS 如何連線到您的 Azure SQL Database 執行個體:

    SELECT client_net_address FROM sys.dm_exec_connections WHERE session_id=@@SPID;
    

    結果應該是本機電腦的公用 IP 位址。 您可以在 PowerShell (不是 Azure Cloud Shell) 的本機執行個體上執行下列命令,以驗證您的 IP 位址:

    (Invoke-WebRequest -UseBasicParsing -Uri "https://ipinfo.io/ip").Content
    

    您已使用類似的命令來尋找課程模組開頭的 IP 位址。 此查詢應該會傳回相同的 IP 位址。

使用 Azure Cloud Shell 管理防火牆規則

您也可以使用 Azure CLI az sql server firewall-rule 命令來建立、刪除和檢視伺服器層級的防火牆規則。 您可透過 Azure 虛擬機器 (VM) 的命令列介面或透過 PowerShell 筆記本來使用此 Azure CLI。 針對此練習,您將會實驗 Cloud Shell。 您可以透過入口網站開啟 Cloud Shell 終端機,但目前,請使用右側的沙箱內建終端機,這基本上是相同的東西。

  1. 請執行下列命令來設定環境:

    $database_name = "AdventureWorks"
    $server = Get-AzureRmSqlServer -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    $logical_server = $server.ServerName
    
  2. 輸入下列命令來列出伺服器的防火牆設定:

    az sql server firewall-rule list -g <rgn>[sandbox resource group name]</rgn> -s $logical_server
    

    輸出應該是 Azure 入口網站中 Azure SQL 邏輯伺服器 [網路] 功能表的 [防火牆規則] 設定上,每個規則的 JSON 物件。

使用 Azure 入口網站或 Cloud Shell 設定伺服器層級防火牆規則,會授與用戶端 IP 位址權限,使其能夠存取邏輯伺服器中的所有資料庫。 您可以使用 SSMS 中的 T-SQL 命令 EXECUTE sp_set_database_firewall_rule,設定適用於個別資料庫的資料庫層級防火牆規則。 T-SQL 是用於針對特定資料庫設定防火牆規則的唯一可用方法。 如需詳細資訊,請參閱本課程模組 [摘要] 頁面上的參考資料。

進一步了解

您現在已了解如何在伺服器和資料庫層級上更新特定 IP 位址或 IP 位址範圍的防火牆規則。 在實際執行環境中,您可能還需要從各種虛擬網路或資源 (例如 Azure 應用程式或 Azure VM) 進行存取。 Azure VM 具有動態 IP 位址,這表示位址會變更。 您可以設定靜態 IP 位址,這可能很難使用防火牆規則來進行維護。 或者,您也可以使用虛擬網路規則來管理從 VM 或其他服務所在特定子網路進行的存取。 您還可以設定私人端點,這是連線至 Azure SQL Database 邏輯伺服器最安全的方式。

您也可以使用 [網路] 功能表設定允許從用戶端連線至邏輯伺服器的 [最小 TLS 版本],然後移至 Azure SQL 邏輯伺服器的 [連線] 索引標籤。

在此影片中,您將了解如何建立、設定和比較各種連線至 Azure SQL Database 資料庫的方法:

  • 允許存取 Azure 資源
  • 防火牆規則
  • 虛擬網路規則
  • 私人端點