你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:创建网络安全外围 - Azure PowerShell

通过使用 Azure PowerShell 为 Azure Key Vault 创建网络安全外围,开始使用网络安全外围。 网络安全外围允许 Azure 平台即服务 (PaaS) 资源在显式受信任的边界内进行通信。 在网络安全外围配置文件中创建和更新 PaaS 资源的关联。 然后创建或更新网络安全外围访问规则。 完成后,删除在本快速入门中创建的所有资源。

重要

网络安全外围处于公共预览状态,可在所有 Azure 公有云区域中使用。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

先决条件

  • 需要注册 Azure 网络安全外围公共预览版。 要注册,请将 AllowNSPInPublicPreview 功能添加到订阅。 将网络安全外围功能标志添加到 Azure 订阅的屏幕截图。

    有关添加功能标志的详细信息,请参阅在 Azure 订阅中设置预览功能

  • 添加功能标志后,需要在订阅中重新注册 Microsoft.Network 资源提供程序。

    • 要在 Azure 门户中重新注册 Microsoft.Network 资源提供程序,请选择你的订阅,然后选择“资源提供程序”。 搜索 Microsoft.Network,并选择“重新注册”

      在订阅中重新注册 Microsoft.Network 资源提供程序的屏幕截图。

    • 使用以下 Azure PowerShell 命令重新注册 Microsoft.Network 资源提供程序:

    # Register the Microsoft.Network resource provider
    Register-AzResourceProvider -ProviderNamespace Microsoft.Network
    
    • 使用以下 Azure CLI 命令重新注册 Microsoft.Network 资源提供程序:

      # Register the Microsoft.Network resource provider
      az provider register --namespace Microsoft.Network
      

    有关重新注册资源提供程序的详细信息,请参阅 Azure 资源提供程序和类型

  • 最新版本的 Azure PowerShell 模块,其中包含网络安全外围工具。

    # Install the Az.Tools.Installer module    
    Install-Module -Name Az.Tools.Installer -Repository PSGallery
    
  • 使用 Az.Tools.Installer 安装 Az.Network 的预览版:

    # Install the preview build of the Az.Network module
    Install-Module -Name Az.Tools.Installer -Repository PSGallery -allowprerelease -force
    
    # List the current versions of the Az.Network module available in the PowerShell Gallery
    Find-Module -Name Az.Network -Allversions -AllowPrerelease
    
    # Install the preview build of the Az.Network module using the 
    
    Install-AzModule -Name Az.Network -AllowPrerelease -Force
    Install-AzModule -Path <previewVersionNumber>
    

    注意

    使用网络安全外围功能需要 Az.Network 模块的预览版。 PowerShell 库中提供了最新版本的 Az.Network 模块。 查找以 -preview 结尾的最新版本。

  • 如果选择在本地使用 Azure PowerShell:

  • 如果选择使用 Azure Cloud Shell:

  • 要获取有关 PowerShell cmdlet 的帮助,请使用 Get-Help 命令:

    
    # Get help for a specific command
    get-help -Name <powershell-command> - full
    
    # Example
    get-help -Name New-AzNetworkSecurityPerimeter - full
    

登录到 Azure 帐户,然后选择订阅

要开始配置,请登录到 Azure 帐户:

# Sign in to your Azure account
Connect-AzAccount

然后,连接到订阅:

# List all subscriptions
Set-AzContext -Subscription <subscriptionId>

# Register the Microsoft.Network resource provider
Register-AzResourceProvider -ProviderNamespace Microsoft.Network

创建资源组和 Key Vault

必须先创建资源组和密钥保管库资源,然后才能创建网络安全外围。
此示例使用以下命令在 WestCentralUS 位置创建名为 test-rg 的资源组,并在资源组中创建名为 demo-keyvault-<RandomValue> 的密钥保管库:

# Create a resource group
$rgParams = @{
    Name = "test-rg"
    Location = "westcentralus"
}
New-AzResourceGroup @rgParams

# Create a key vault
$keyVaultName = "demo-keyvault-$(Get-Random)"
$keyVaultParams = @{
    Name = $keyVaultName
    ResourceGroupName = $rgParams.Name
    Location = $rgParams.Location
}
$keyVault = New-AzKeyVault @keyVaultParams

创建网络安全外围

在此步骤中,需要使用以下 New-AzNetworkSecurityPerimeter 命令创建网络安全外围:

注意

请勿将任何个人身份或敏感数据放入网络安全外围规则或其他网络安全外围配置中。


# Create a network security perimeter
$nsp = @{ 
        Name = 'demo-nsp' 
        location = 'westcentralus' 
        ResourceGroupName = $rgParams.name  
        } 

$demoNSP=New-AzNetworkSecurityPerimeter @nsp
$nspId = $demoNSP.Id
  

创建和更新 PaaS 资源与新配置文件的关联

在此步骤中,需要使用 New-AzNetworkSecurityPerimeterProfileNew-AzNetworkSecurityPerimeterAssociation 命令创建新的配置文件,并将 PaaS 资源、Azure Key Vault 与配置文件相关联。

  1. 使用以下命令为网络安全外围创建新的配置文件:

        # Create a new profile
    
        $nspProfile = @{ 
            Name = 'nsp-profile' 
            ResourceGroupName = $rgParams.name 
            SecurityPerimeterName = $nsp.name 
            }
    
        $demoProfileNSP=New-AzNetworkSecurityPerimeterProfile @nspprofile
    
  2. 使用以下命令将 Azure Key Vault(PaaS 资源)与网络安全外围配置文件相关联:

        # Associate the PaaS resource with the above created profile
    
        $nspAssociation = @{ 
            AssociationName = 'nsp-association' 
            ResourceGroupName = $rgParams.name 
            SecurityPerimeterName = $nsp.name 
            AccessMode = 'Learning'  
            ProfileId = $demoProfileNSP.Id 
            PrivateLinkResourceId = $keyVault.ResourceID
            }
    
        New-AzNetworkSecurityPerimeterAssociation @nspassociation | format-list
    
  3. 使用 Update-AzNetworkSecurityPerimeterAssociation 命令将访问模式更改为 enforced,以更新关联,如下所示:

        # Update the association to enforce the access mode
        $updateAssociation = @{ 
            AssociationName = $nspassociation.AssociationName 
            ResourceGroupName = $rgParams.name 
            SecurityPerimeterName = $nsp.name 
            AccessMode = 'Enforced'
            }
        Update-AzNetworkSecurityPerimeterAssociation @updateAssociation | format-list
    

管理网络安全外围访问规则

在此步骤中,需要创建、更新和删除具有公共 IP 地址前缀的网络安全外围访问规则。

    # Create an inbound access rule for a public IP address prefix
    $inboundRule = @{ 
        Name = 'nsp-inboundRule' 
        ProfileName = $nspprofile.Name  
        ResourceGroupName = $rgParams.Name  
        SecurityPerimeterName = $nsp.Name  
        Direction = 'Inbound'  
        AddressPrefix = '192.0.2.0/24' 
        } 

    New-AzNetworkSecurityPerimeterAccessRule @inboundrule | format-list

    # Update the inbound access rule to add more public IP address prefixes
    $updateInboundRule = @{ 
        Name = $inboundrule.Name 
        ProfileName = $nspprofile.Name  
        ResourceGroupName = $rgParams.Name  
        SecurityPerimeterName = $nsp.Name  
        AddressPrefix = @('192.0.2.0/24','198.51.100.0/24')
        }
    Update-AzNetworkSecurityPerimeterAccessRule @updateInboundRule | format-list

注意

如果托管标识未分配给支持它的资源,则对同一边界内其他资源的出站访问将被拒绝。 基于订阅的入站规则(旨在允许来自该资源的访问)将不会生效。

删除所有资源

如果不再需要网络安全外围,请删除与网络安全外围关联的所有资源,删除外围,然后删除资源组。


    # Retrieve the network security perimeter and place it in a variable
    $nsp= Get-AzNetworkSecurityPerimeter -Name demo-nsp -ResourceGroupName $rg.Params.Name

    # Delete the network security perimeter and all associated resources
    $removeNsp = @{ 
        Name = 'nsp-association'
        ResourceGroupName = $rgParams.Name
        SecurityPerimeterName = $nsp.Name
        }
    Remove-AzNetworkSecurityPerimeterAssociation @removeNsp
    
    Remove-AzNetworkSecurityPerimeter -Name $nsp.Name -ResourceGroupName $rgParams.Name
    
    # Remove the resource group
    Remove-AzResourceGroup -Name $rgParams.Name -Force

注意

从网络安全外围删除资源关联会导致访问控制回退到现有资源防火墙配置。 这可能会导致根据资源防火墙配置允许/拒绝访问。 如果 PublicNetworkAccess 设置为 SecuredByPerimeter 并已删除关联,则资源将进入锁定状态。 有关详细信息,请参阅在 Azure 中过渡到网络安全外围

后续步骤