練習 - 保護網路的安全
在本練習中,您將了解如何使用 Azure 入口網站來檢閱及管理防火牆規則。 您也會了解如何在使用公用端點時設定最安全的連線。
如果您尚未這麼做,請使用下列按鈕開啟 Azure 入口網站。
保護網路安全
當您在 Azure SQL Database 中部署資料庫時,您執行的指令碼已啟用 [允許 Azure 服務和資源存取此伺服器],這可讓來自任何區域或訂用帳戶的資源存取您的資源。 請務必取消選取設定,以確保公用端點是最安全的設定。 取消選取 [允許 Azure 服務和資源存取此伺服器] 設定時,它會封鎖您新增的連線和網路之外的所有連線和網路。
在本練習中,您將了解如何檢視和編輯防火牆規則。 設定防火牆規則可能非常複雜,因為您必須指定適用於所有連線的 IP 位址範圍 (有時候會使用動態 IP 位址)。 本練習結束時的示範影片中會提供用來保護網路的替代方法。
在 Azure 入口網站中管理防火牆規則
在 Azure 入口網站資源功能表中,選取 [SQL 資料庫],然後選取您的 Azure SQL Database (AdventureWorks)。
在 SQL 資料庫的命令列中,選取 [設定伺服器防火牆]。
取消選取 [允許 Azure 服務和資源存取此伺服器] 設定旁的方塊。
系統應該已在部署期間新增電腦的用戶端 IP 位址,但如果沒有任何規則符合您的用戶端 IP,請在 [規則名稱] 底下新增 IP 位址,讓您能夠從 SQL Server Management Studio (SSMS) 登入。
選取儲存以儲存變更。 在 [SQL 資料庫] 功能表中,選取 [概觀] 以返回 [概觀] 頁面。
若要確認您仍然可以從本機電腦存取,請前往 SSMS。 用滑鼠右鍵按兩下 [物件總管] 中的資料庫,然後選取 [重新整理] 以重新整理與 Azure SQL Database 邏輯伺服器的連線。 如果沒有發生錯誤,則表示您已成功為 IP 位址設定 Azure SQL Database 邏輯伺服器的安全存取權。
您可以選擇性地透過從 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 終端機,但目前,請使用右側的沙箱內建終端機,這基本上是相同的東西。
請執行下列命令來設定環境:
$database_name = "AdventureWorks" $server = Get-AzureRmSqlServer -ResourceGroupName <rgn>[sandbox resource group name]</rgn> $logical_server = $server.ServerName
輸入下列命令來列出伺服器的防火牆設定:
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 資源
- 防火牆規則
- 虛擬網路規則
- 私人端點