Azure Bastion 如何工作?

已完成

Azure Bastion 部署是按虚拟网络或对等虚拟网络进行的, 而不是按订阅、帐户或虚拟机 (VM) 进行的。 在虚拟网络中预配 Azure Bastion 服务后,同一虚拟网络中的所有 VM 都可以使用 RDP 或 SSH 体验。

下图概述了通过门户连接时 Azure Bastion 的工作原理:

  1. 在 Azure 门户中连接到 VM:在 Azure 门户的 VM 概述页面上,选择“连接”>“Bastion”>“使用 Bastion”然后为 VM 输入凭据。
  2. 浏览器连接到 Azure Bastion 主机:浏览器使用传输层安全性 (TLS) 和 Azure Bastion 主机的公共 IP 通过 Internet 连接到 Azure Bastion。 Azure 网关管理器管理端口 443 或 4443 上到 Azure Bastion 服务的门户连接。
  3. Bastion 使用 RDP 或 SSH 连接到 VM:Azure Bastion 部署在虚拟网络中名为 AzureBastionSubnet 的单独子网中。 部署 Azure Bastion 时,将创建子网。 子网中地址空间的子网掩码为 /26 或更大。 不要将其他 Azure 资源部署到此子网或更改子网名称。
  4. Bastion 将 VM 流式传输到浏览器:Azure Bastion 使用基于 HTML5 的 Web 客户端,该客户端自动流式传输到本地设备。 Azure Bastion 服务使用自定义协议打包会话信息。 该包通过 TLS 传输。

验证 Azure Bastion 是否适用于网络安全组

如果尚未为组织部署和配置特定的网络安全组,则无需执行任何操作。 Azure Bastion 适用于使用 VM 创建的默认网络安全组。

如果为组织配置了网络安全组,请验证 Azure Bastion 是否可通过 RDP 或 SSH 连接到 VM。 建议添加一个入站规则,以允许从 Azure Bastion 子网 IP 地址范围到 VM 的 RDP 和 SSH 连接。

为了使 Azure Bastion 正常工作,网络安全组需要允许以下流量:

方向 Allow
入站 从 Azure Bastion 子网 IP 地址范围到 VM 子网的 RDP 和 SSH 连接。
入站 在端口 443 上从 Internet 到 Azure Bastion 公共 IP 的 TCP 访问。
入站 在端口 443 或 4443 上从 Azure 网关管理器进行 TCP 访问。 Azure 网关管理器管理到 Azure Bastion 服务的门户连接。
出站 在端口 443 上从 Azure 平台进行的 TCP 访问。 此流量用于诊断日志记录。

在 Azure 门户中部署 Azure Bastion 主机

在部署 Azure Bastion 之前,需要一个虚拟网络。 可以使用现有虚拟网络或在创建虚拟网络时部署 Azure Bastion。 在虚拟网络中创建一个名为 AzureBastionSubnet 的子网。 如果 VM 位于相同或对等虚拟网络上,请在连接到 VM 时,通过选择 Azure Bastion 在 Azure 门户中完成部署。

以下两部分介绍了 Azure 门户中的每个 Azure Bastion 部署选项所涉及的步骤。 你尚不需要完成上述任何步骤;这些步骤将在下一个练习中执行。

创建虚拟网络时启用 Azure Bastion

如果还没有要用于 Azure Bastion 的虚拟网络,请在“安全”选项卡上创建一个虚拟网络并启用 Azure Bastion。

Screenshot of the Security tab that allows you to enable and configure the Azure Bastion host in the workflow for creating a virtual network.

  1. 选择“启用”并输入 Azure Bastion 主机的名称。
  2. 添加子网掩码为 /26 或更大的子网地址。
  3. 如果还没有要使用的公共 IP 地址,请选择“新建”。
  4. 创建虚拟网络后,将 VM 添加到此虚拟网络,或将此虚拟网络与 VM 的虚拟网络对等互连。

将子网添加到现有虚拟网络并预配 Azure Bastion 资源

在现有虚拟网络中,添加一个名为 AzureBastionSubnet 的子网。

Screenshot of the page for adding a subnet, where the subnet name is AzureBastionSubnet.

若要预配 Azure Bastion,请在 VM 上的门户中选择“连接”>“Bastion”>“手动配置”。 输入 Azure Bastion 资源的名称、选择子网、创建公共 IP 等。 在部署 Azure Bastion 后,可以连接到 VM。

Screenshot of the Create a Bastion page with fields filled out by default, like Azure Bastion resource name, subnet, and create public IP address.

使用 Azure PowerShell 或 Azure CLI 部署 Azure Bastion

如果要使用 Azure PowerShell 或 Azure CLI 来部署 Azure Bastion,请运行命令以创建以下资源:

  • 子网
  • 公共 IP
  • Azure Bastion 资源

以下部分介绍了可用于部署 Azure Bastion 的示例。

使用 Azure PowerShell 部署 Azure Bastion

  1. 使用 cmdlet New-AzVirtualNetworkSubnetConfig 创建 Azure Bastion 子网,然后使用 Add-AzVirtualNetworkSubnetConfig 将该子网添加到现有虚拟网络。 例如,以下命令假设你已有一个虚拟网络:

    $subnetName = "AzureBastionSubnet"
    $virtualNetwork = MyVirtualNetwork
    $addressPrefix = "10.0.2.0/24"
    $subnet = New-AzVirtualNetworkSubnetConfig ` 
    -Name $subnetName ` 
    -AddressPrefix $addressPrefix `
    
    Add-AzVirtualNetworkSubnetConfig ` 
    -Name $subnetName `
    -VirtualNetwork $virtualNetwork `
    -AddressPrefix $addressprefix
    
  2. 为 Azure Bastion 创建一个公共 IP 地址。 Azure Bastion 使用公共 IP 地址来允许通过端口 443 进行 RDP/SSH 连接。 公共 IP 地址必须与 Azure Bastion 资源位于同一区域。

    $publicip = New-AzPublicIpAddress `
    -ResourceGroupName "myBastionRG" `
    -name "myPublicIP" `
    -location "westus2" `
    -AllocationMethod Static `
    -Sku Standard
    
  3. 在虚拟网络的名为 AzureBastionSubnet 的子网中创建 Azure Bastion 资源。

    $bastion = New-AzBastion `
    -ResourceGroupName "myBastionRG" `
    -Name "myBastion" `
    -PublicIpAddress $publicip `
    -VirtualNetwork $virtualNetwork
    

使用 Azure CLI 部署 Azure Bastion

  1. 创建 Azure Bastion 子网:

    az network vnet subnet create \
      --resource-group myBastionRG \
      --vnet-name MyVirtualNetwork \
      --name AzureBastionSubnet \
      --address-prefixes 10.0.2.0/24
    
  2. 为 Azure Bastion 创建一个公共 IP 地址:

    az network public-ip create \
      --resource-group MyResourceGroup \
      --name MyPublicIp \
      --sku Standard \
      --location westus2
    
  3. 创建 Azure Bastion 资源:

    az network bastion create \
      --name MyBastion \
      --public-ip-address MyPublicIp \
      --resource-group MyResourceGroup \
      --vnet-name MyVnet \
      --location westus2
    

使用 Azure Bastion 连接到 VM

利用所需的资源,应该能够连接到相同虚拟网络或对等虚拟网络上的 VM。 在 VM 上的 Azure 门户中,选择“Bastion”并输入凭据。

Screenshot of the Connect using Azure Bastion page with prompt for username and authentication type.

在下一个单元中,你将完成为现有虚拟网络部署 Azure Bastion 的步骤。