共用方式為


使用 Azure PowerShell 部署 Bastion

這篇文章說明如何使用 PowerShell 部署 Azure Bastion。 Azure Bastion 是由平台代管的 PaaS 服務,而非您自行在虛擬機器上安裝並維護的堡壘主機。 Azure Bastion 的部署是以虛擬網路為單位,而不是以訂用帳戶、帳戶或虛擬機器為單位。 如需 Azure Bastion 的詳細資訊,請參閱什麼是 Azure Bastion?

當您將 Bastion 部署到虛擬網路後,便可透過私人 IP 位址連線到您的虛擬機器。 這種無縫的 RDP/SSH 體驗適用於同一個虛擬網路中的所有虛擬機器。 如果您的虛擬機器有一個不再需要用於其他用途的公用 IP 位址,您可以將其移除。

顯示 Azure Bastion 架構的圖表。

在本文中,您會建立一個虛擬網路 (如果您尚未有一個)、使用 PowerShell 部署 Azure Bastion,並連線到虛擬機器。 範例顯示使用 Standard SKU 層級部署 Bastion,但您可以依照想使用的功能改用不同的 Bastion SKU。 如需詳細資訊,請參閱 Bastion SKU

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

附註

支援搭配 Azure Bastion 與 Azure Private DNS zones 使用。 然而,仍有一些限制。 如需詳細資訊,請參閱 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 與虛擬機器值:

名稱
虛擬機器 TestVM
資源群組 TestRG1
區域 美國東部
虛擬網路 VNet1
位址空間 10.1.0.0/16
子網路 FrontEnd: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 連線的前端子網路。 如果您在本機執行 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. 在 AzureBastionSubnet 中使用 New-AzBastion 命令建立新的 Azure Bastion 資源。 下列範例使用 Basic SKU。 然而,您也可以透過變更 -Sku 值來使用不同 SKU 部署 Bastion。 您選擇的 SKU 會決定 Bastion 功能,以及使用更多連線類型連線到虛擬機器的能力。 如需詳細資訊,請參閱 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

您可以參考快速入門:使用 PowerShell 建立虛擬機器快速入門:使用入口網站建立虛擬機器文章來建立虛擬機器。 請務必將虛擬機器部署到與 Bastion 相同的虛擬網路。 本節建立的虛擬機器不屬於 Bastion 組態的一部分,也不會成為堡壘主機。 您稍後會透過 Bastion 連線到這部虛擬機器。

您的資源所需的下列角色。

  • 虛擬機器所需角色:

    • 虛擬機器上的讀者角色。
    • 具有虛擬機器私人 IP 的 NIC 上的讀者角色。
  • 所需的傳入連接埠:

    • Windows 虛擬機器 - RDP (3389)
    • Linux 虛擬機器 - SSH (22)

連接到 VM

您可以使用下一節中的連線步驟連線到您的虛擬機器。 您也可以使用下列任一文章連線到虛擬機器。 某些連線類型需要 Bastion Standard SKU

連線步驟

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

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

  3. Bastion 窗格中可用的選項取決於 Bastion SKU。

    如果您使用 Basic SKU,您會使用 RDP 與連接埠 3389 連線到 Windows 電腦。 同樣地,Basic SKU 也會使用 SSH 與連接埠 22 連線到 Linux 電腦。 您沒有變更連接埠號碼或通訊協定的選項。 然而,您可以在此窗格中展開連線設定以變更 RDP 的鍵盤語言。

    如果您使用 Standard SKU,則會有更多可用的連線通訊協定與連接埠選項。 展開連線設定以查看選項。 一般而言,除非您為虛擬機器設定不同的設定,否則您會使用 RDP 與連接埠 3389 連線到 Windows 電腦。 您會使用 SSH 與連接埠 22 連線到 Linux 電腦。

  4. 針對驗證類型,請從下拉式清單中選取驗證類型。 通訊協定會決定可用的驗證類型。 完成所需的驗證值。

  5. 若要在新的瀏覽器索引標籤中開啟虛擬機器工作階段,請保持選取在新的瀏覽器索引標籤中開啟

  6. 選取連線以連線到虛擬機器。

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

在您連線到虛擬機器時使用鍵盤快捷鍵,可能不會與在本機電腦上使用快捷鍵有相同的行為。 例如,當您從 Windows 用戶端連線到 Windows 虛擬機器時,Ctrl+Alt+End 是本機電腦上 Ctrl+Alt+Delete 的鍵盤快捷鍵。 當您從 Mac 連線到 Windows 虛擬機器時,鍵盤快捷鍵為 fn+control+option+delete。

啟用音訊輸出

您可以為虛擬機器啟用遠端音訊輸出。 某些虛擬機器會自動啟用此設定,而其他虛擬機器則需要您手動啟用音訊設定。 設定會在虛擬機器本身上進行變更。 您的 Bastion 部署不需要任何特殊的組態設定即可啟用遠端音訊輸出。 目前不支援音訊輸入。

附註

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

若要在 Windows 虛擬機器上啟用遠端音訊輸出:

  1. 連線到虛擬機器後,工具列右下角會顯示一個音訊按鈕。 以滑鼠右鍵按一下音訊按鈕,然後選取音效
  2. 快顯訊息會詢問您是否要啟用 Windows Audio Service。 選取 [是]。 您可以在音效偏好設定中設定更多音訊選項。
  3. 若要確認音效輸出,請將游標停留在工具列上的音訊按鈕上。

移除虛擬機器公用 IP 位址

Azure Bastion 不會使用公用 IP 位址來連線到用戶端虛擬機器。 如果您的虛擬機器不需要公用 IP 位址,您可以解除關聯該公用 IP 位址。 請參閱將公用 IP 位址與 Azure 虛擬機器解除關聯

後續步驟