Azure 虚拟网络加密是 Azure 虚拟网络的一项功能。 使用虚拟网络加密,你能够在网络传输中无缝加密和解密内部网络流量,同时对性能和规模的影响保持在最小。 虚拟网络加密可保护在虚拟网络中的虚拟机之间传输的数据。
先决条件
具有活动订阅的 Azure 帐户。 免费创建帐户。
在本地安装 Azure PowerShell 或使用 Azure Cloud Shell。
登录到 Azure PowerShell,选择你要通过其来使用此功能的订阅。 有关详细信息,请参阅使用 Azure PowerShell 登录。
请确保 Az.Network
模块是 4.3.0 或更高版本。 若要验证已安装的模块,请使用命令 Get-InstalledModule -Name Az.Network
。 如果模块需要更新,必要时请使用命令 Update-Module -Name Az.Network
。
如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az
查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount
以创建与 Azure 的连接。
- 本文需要 2.31.0 或更高版本的 Azure CLI。 如果你使用的是 Azure Cloud Shell,则表示已安装最新版本。
创建虚拟网络
下面的过程创建虚拟网络及资源子网。
在门户中,搜索并选择“虚拟网络”。
在“虚拟网络”页面上,选择“+ 创建”。
在创建虚拟网络的基本信息选项卡上输入或选择以下信息:
设置 |
值 |
项目详细信息 |
|
订阅 |
选择订阅。 |
资源组 |
选择“新建”。 在“名称”中输入 test-rg。 选择“确定”。 |
实例详细信息 |
|
名称 |
输入“vnet-1”。 |
区域 |
选择“美国东部 2”。 |
选择下一步,转到安全性选项卡。
选择“下一步”,转到“IP 地址”选项卡。
在“子网”下的地址空间框中,选择“默认”子网。
在“编辑子网”窗格中,输入或选择以下信息:
设置 |
值 |
子网详细信息 |
|
子网模板 |
将默认值保留为“默认”。 |
名称 |
输入“subnet-1”。 |
开始地址 |
保留默认值“10.0.0.0”。 |
子网大小 |
保留默认值/24 (256 个地址)。 |
选择“保存”。
在屏幕底部选择“查看 + 创建”。 通过验证后,选择“创建”。
使用 New-AzResourceGroup 在 eastus2
位置创建名为 test-rg
的资源组。
$rg =@{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
使用 New-AzVirtualNetwork 和 New-AzVirtualNetworkSubnetConfig 创建虚拟网络。
## Create backend subnet config ##
$subnet = @{
Name = 'subnet-1'
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
Subnet = $subnetConfig
EnableEncryption = 'true'
EncryptionEnforcementPolicy = 'AllowUnencrypted'
}
New-AzVirtualNetwork @net
使用 az group create 在 eastus2
位置创建名为 test-rg
的资源组。
az group create \
--name test-rg \
--___location eastus2
使用 az network vnet create 创建虚拟网络。
az network vnet create \
--resource-group test-rg \
--___location eastus2 \
--name vnet-1 \
--enable-encryption true \
--encryption-enforcement-policy allowUnencrypted \
--address-prefixes 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.0.0.0/24
重要
若要加密流量,虚拟网络加密要求虚拟网络中有受支持的虚拟机版本。 如果在虚拟网络中部署了不受支持的虚拟机版本,则 dropUnencrypted
设置将删除不受支持的虚拟机版本之间的流量。 有关详细信息,请参阅 Azure 虚拟网络加密要求。
在虚拟网络上启用加密
按照以下步骤启用虚拟网络加密。
在门户顶部的搜索框中,开始输入“虚拟网络”。 当“虚拟网络”出现在搜索结果中时,请选择它。
选择 vnet-1 以打开 vnet-1 窗格。
在服务菜单上,选择“概述”,然后选择“属性”选项卡。
在“加密”下,选择“已禁用”。
选中“虚拟网络加密”旁边的框。
选择“保存”。
还可以使用 Set-AzVirtualNetwork 在现有虚拟网络上启用加密。 如果已在前面的步骤中创建启用了加密的虚拟网络,则不需要执行此步骤。
## Place the virtual network configuration into a variable. ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
## Enable encryption on the virtual network ##
$vnet.Encryption = @{
Enabled = 'true'
Enforcement = 'allowUnencrypted'
}
$vnet | Set-AzVirtualNetwork
还可以使用 az network vnet update 在现有虚拟网络上启用加密。 如果已在前面的步骤中创建启用了加密的虚拟网络,则不需要执行此步骤。
az network vnet update \
--resource-group test-rg \
--name vnet-1 \
--enable-encryption true \
--encryption-enforcement-policy allowUnencrypted
验证加密是否已启用
在门户顶部的搜索框中,开始输入“虚拟网络”。 当“虚拟网络”出现在搜索结果中时,请选择它。
选择 vnet-1 以打开 vnet-1 窗格。
在服务菜单上,选择“概述”,然后选择“属性”选项卡。
验证“加密”是否已设为“已启用”。
使用 Get-AzVirtualNetwork 查看之前创建的虚拟网络的加密参数。
## Place the virtual network configuration into a variable. ##
$net = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @net
若要查看加密参数,请输入以下信息:
$vnet.Encryption
Enabled Enforcement
------- -----------
True allowUnencrypted
使用 az network vnet show 查看之前创建的虚拟网络的加密参数。
az network vnet show \
--resource-group test-rg \
--name vnet-1 \
--query encryption \
--output tsv
user@Azure:~$ az network vnet show \
--resource-group test-rg \
--name vnet-1 \
--query encryption \
--output tsv
True AllowUnencrypted
清理资源
使用完创建的资源之后,可以删除资源组及其所有资源。
在 Azure 门户中,搜索并选择“资源组”。
在“资源组”页上,选择“test-rg”资源组。
在“test-rg”页上,选择“删除资源组”。
在“输入资源组名称以确认删除”中输入“test-rg”,然后选择“删除”。
不再需要此资源组时,请使用 Remove-AzResourceGroup 删除资源组及其包含的所有资源。
$cleanup = @{
Name = "test-rg"
}
Remove-AzResourceGroup @cleanup -Force
用完虚拟网络后,请使用 az group delete 删除资源组及其所有资源。
az group delete \
--name test-rg \
--yes
相关内容