Share via


使用 Azure PowerShell 部署 Bastion

本文說明如何使用 PowerShell 部署 Azure Bastion。 Azure Bastion 是無需自行維護的一種 PaaS 服務,而不是安裝在您的 VM 且需要自行維護的堡壘主機。 Azure Bastion 部署以每個虛擬網路為基礎,而非按照每個訂用帳戶/帳戶或虛擬機器。 如需 Azure Bastion 的詳細資訊,請參閱什麼是 Azure Bastion?

將 Bastion 部署至虛擬網路之後,您可以透過私人 IP 位址連線到 VM。 此順暢的 RDP/SSH 體驗適用於相同虛擬網路中的所有 VM。 如果您完全不需要 VM 的公用 IP 位址,移除即可。

顯示 Azure Bastion 架構的圖表。

在本文中,您會建立虛擬網路 (如果您還沒有),使用 PowerShell 部署 Azure Bastion,然後連線至 VM。 這些範例顯示使用標準 SKU 層部署的 Bastion,但根據您想要使用的功能,您可以使用不同的 Bastion SKU。 如需詳細資訊,請參閱 Bastion SKU

您也可以使用下列其他方法來部署 Bastion:

注意

支援將 Bastion 與 Azure 私人 DNS 區域一起使用。 但是會有一些限制。 如需詳細資訊,請參閱 Azure Bastion 常見問題集

開始之前

驗證您有 Azure 訂用帳戶。 如果您還沒有 Azure 訂用帳戶,則可以啟用 MSDN 訂戶權益或註冊免費帳戶

PowerShell

本文使用 PowerShell Cmdlet。 若要執行 Cmdlet,您可以使用 Azure Cloud Shell。 Cloud Shell 是免費的互動式殼層,可讓您用來執行本文中的步驟。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。

若要開啟 Cloud Shell,只要選取程式碼區塊右上角的 [開啟 Cloudshell] 即可。 您也可以移至 https://shell.azure.com/powershell,在個別的瀏覽器索引標籤上開啟 Cloud Shell。 選取 [複製] 以複製程式碼區塊、將它們貼上到 Cloud Shell 中,然後選取 Enter 鍵以執行它們。

您也可以在本機電腦上安裝並執行 Azure PowerShell Cmdlet。 PowerShell Cmdlet 會經常更新。 如果您尚未安裝最新版本,指示中指定的值可能會失敗。 若要尋找電腦上安裝的 Azure PowerShell 版本,請使用 Get-Module -ListAvailable Az Cmdlet。 若要安裝或更新,請參閱安裝 Azure PowerShell 模組

範例值

在建立此設定時,您可以使用下列範例值,也可以替換為自己的值。

範例 VNet 和 VM 值:

名稱
虛擬機器 TestVM
資源群組 TestRG1
區域 美國東部
虛擬網路 VNet1
位址空間 10.1.0.0/16
子網路 前端:10.1.0.0/24

Azure Bastion 值:

名稱
名稱 VNet1-bastion
子網路名稱 FrontEnd
子網路名稱 AzureBastionSubnet
AzureBastionSubnet 位址 虛擬網路位址空間內的子網,具有子網掩碼 /26 或更大。
例如:10.1.1.0/26。
階層/SKU 標準
公用 IP 位址 新建
公用 IP 位址名稱 VNet1-ip
公用 IP 位址 SKU 標準
指派 靜態

部署 Bastion

本節可協助您使用 Azure PowerShell 建立虛擬網路、子網路,以及部署 Azure Bastion。

重要

無論輸出資料使用量為何,每小時價格都是從部署 Bastion 的那一刻開始計費。 如需詳細資訊,請參閱價格SKU。 如果您要在教學課程或測試期間部署 Bastion,建議您在使用完畢後刪除此資源。

  1. 建立資源群組、虛擬網路和前端子網,以部署您將透過 Bastion 連線到的 VM。 如果您在本機執行 PowerShell,請以提高的權限開啟 PowerShell 主控台,並使用 Connect-AzAccount 命令連線至 Azure。

    New-AzResourceGroup -Name TestRG1 -Location EastUS ` 
    $frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name FrontEnd `
    -AddressPrefix "10.1.0.0/24" ` 
    $virtualNetwork = New-AzVirtualNetwork `
    -Name TestVNet1 -ResourceGroupName TestRG1 `
    -Location EastUS -AddressPrefix "10.1.0.0/16" `
    -Subnet $frontendSubnet ` 
    $virtualNetwork | Set-AzVirtualNetwork
    
  2. 配置及設定虛擬網路的 Azure Bastion 子網路。 這個子網路專門保留給 Azure Bastion 資源使用。 您必須使用 AzureBastionSubnet 名稱值來建立此子網路。 此值可讓 Azure 知道要將 Bastion 資源部署到哪一個子網路。 下一節中的範例可協助您將 Azure Bastion 子網路新增至現有的 VNet。

    • 您可以建立的最小子網路 AzureBastionSubnet 大小為 /26。 建議您配合主機調整,建立 /26 或更大的大小。
    • 建立無任何路由表或委派的 AzureBastionSubnet
    • 如果您在 AzureBastionSubnet 上使用網路安全性群組,請參閱使用 NSG 一文。

    設定 變數。

    $vnet = Get-AzVirtualNetwork -Name "TestVNet1" -ResourceGroupName "TestRG1"
    

    新增子網路。

    Add-AzVirtualNetworkSubnetConfig `
    -Name "AzureBastionSubnet" -VirtualNetwork $vnet `
    -AddressPrefix "10.1.1.0/26" | Set-AzVirtualNetwork
    
  3. 為 Azure Bastion 建立公用 IP 位址。 公用 IP 位址是 Bastion 資源的公用 IP 位址,而在此資源上將存取 RDP/SSH (透過連接埠 443)。 公用 IP 位址與您建立的 Bastion 資源必須位於相同的區域。

    $publicip = New-AzPublicIpAddress -ResourceGroupName "TestRG1" `
    -name "VNet1-ip" -location "EastUS" `
    -AllocationMethod Static -Sku Standard
    
  4. 使用 New-AzBastion 命令,在 AzureBastionSubnet 中建立新的 Azure Bastion 資源。 下列範例使用基本 SKU。 不過,您也可以藉由變更 -Sku 值,使用不同的 SKU 來部署 Bastion。 您選取的 SKU 會決定 Bastion 功能,並使用更多連線類型連線至 VM。 如需詳細資訊,請參閱 Bastion SKU

    New-AzBastion -ResourceGroupName "TestRG1" -Name "VNet1-bastion" `
    -PublicIpAddressRgName "TestRG1" -PublicIpAddressName "VNet1-ip" `
    -VirtualNetworkRgName "TestRG1" -VirtualNetworkName "TestVNet1" `
    -Sku "Basic"
    
  5. Bastion 資源部署大約需要 10 分鐘的時間。 當 Bastion 部署到虛擬網路時,您可以依據下一節所述建立 VM。

建立 VM

您可以使用快速入門:使用 PowerShell 建立 VM快速入門:使用入口網站建立 VM 一文。 請務必將 VM 部署至已部署 Bastion 的相同虛擬網路。 您在本節中建立的 VM 不是 Bastion 設定的一部分,而且不會成為堡壘主機。 稍後,您會在本教學課程中透過 Bastion 連線到此 VM。

以下是您資源所需的角色。

  • 所需的 VM 角色:

    • 虛擬機器上的讀取者角色。
    • 虛擬機器的私人 IP 位址與 NIC 上的讀取者角色。
  • 必要輸入連接埠:

    • 針對 Windows VM - RDP (3389)
    • 針對 Linux VM - SSH (22)

連線至 VM

您可以使用下一節中的連線步驟來連線至您的 VM。 您也可以參考下列任何文章來連線到 VM。 某些連線類型需要 Bastion 標準 SKU

連線步驟

  1. Azure 入口網站中,前往您要連線的虛擬機器。

  2. 在窗格頂端,選取 [連線]> [Bastion],以前往 [Bastion] 窗格。 您也可以使用左側功能表來移至 [Bastion] 窗格。

  3. [Bastion] 窗格上可用的選項取決於 Bastion SKU。 如果您使用基本 SKU,請使用 RDP 和連接埠 3389 連線至 Windows 電腦。 此外,若是基本 SKU,請使用 SSH 和連接埠 22 連線至 Linux 電腦。 沒有選項可讓您變更連接埠號碼或通訊協定。 但您可以展開 [連線設定],然後變更 RDP 的鍵盤語言。

    Azure Bastion 連線設定的螢幕快照。

    如果您使用標準 SKU,即可使用更多的連線通訊協定和連接埠選項。 展開 [連線設定] 以查看選項。 一般而言,除非您針對 VM 進行不同的設定,否則請使用 RDP 和連接埠 3389 連線至 Windows 電腦。 使用 SSH 和連接埠 22 連線至 Linux 電腦。

    展開連線設定的螢幕快照。

  4. 針對驗證類型,請從挑選清單中選取。 通訊協定會決定可用的驗證類型。 完成必要的驗證值。

    顯示驗證類型的下拉式清單框螢幕快照。

  5. 若要在新瀏覽器索引標籤中開啟 VM 工作階段,請將 [在新瀏覽器索引標籤中開啟] 保持選取。

  6. 選取 [連線] 以連線至 VM。

  7. 透過使用連接埠 443 和 Bastion 服務,確認與此虛擬機器的連線直接在 Azure 入口網站中開啟 (透過 HTML5)。

    透過埠 443 開啟連線的電腦桌面螢幕快照。

    注意

    當您連線時,VM 的桌面看起來與範例螢幕擷取畫面不同。

連線到 VM 之後使用鍵盤快速鍵時,效果可能與本機電腦上的快速鍵不同。 例如,從 Windows 用戶端連線到 Windows VM 時,Ctrl+Alt+End 是本機電腦上的 Ctrl+Alt+Delete 鍵盤快速鍵。 若要在連線到 Windows VM 之後從 Mac 上這樣做,鍵盤快速鍵為 Fn+Ctrl+Alt+退格鍵。

啟用音訊輸出

您可以為 VM 啟用遠端音訊輸出。 有些 VM 會自動啟用此設定,而有些需要您手動啟用音訊設定。 設定變更是在 VM 本身。 Bastion 部署不需要任何特殊設定,即可啟用遠端音訊輸出。

注意

音訊輸出會使用網際網路連線上的頻寬。

若要在 Windows VM 上啟用遠端音訊輸出:

  1. 連線至 VM 後,音訊按鈕會出現在工具列的右下角。 以滑鼠右鍵按一下音訊按鈕,然後選取 [音效]
  2. 快顯訊息會詢問您是否要啟用 Windows 音訊服務。 選取 [是]。 您可以在 [音效喜好設定] 中設定更多音訊選項。
  3. 若要驗證音效輸出,請將滑鼠停留在工具列上的音訊按鈕。

移除 VM 公用 IP 位址

Azure Bastion 不使用公用 IP 位址來連線到用戶端 VM。 如果 VM 不需要公用 IP 位址,您可以取消公用 IP 位址的關聯。 請參閱中斷公用 IP 位址與 Azure VM 的關聯

下一步