Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ismerkedés az Azure Virtual Network Managerrel a Bicep használatával az összes virtuális hálózat kapcsolatainak kezeléséhez.
Ebben a rövid útmutatóban három virtuális hálózatot helyez üzembe, és az Azure Virtual Network Manager használatával létrehoz egy hálós hálózati topológiát. Ezután ellenőrizze, hogy a kapcsolatkonfiguráció alkalmazva lett-e.
Bicep fájl modulok
A minta Bicep-megoldása modulokra van bontva, amelyek lehetővé teszik az üzemelő példányokat az erőforráscsoportban és az előfizetés hatókörében is. Az alábbi fájlszakaszok a Virtual Network Manager egyedi összetevői. Az alábbi szakaszokon kívül a megoldás üzembe helyezi a virtuális hálózatokat, a felhasználó által hozzárendelt identitást és egy szerepkör-hozzárendelést.
Virtual Network Manager, hálózati csoportok és kapcsolatkonfigurációk
Virtuális Hálózatkezelő
@description('This is the Azure Virtual Network Manager which will be used to implement the connected group for inter-vnet connectivity.')
resource networkManager 'Microsoft.Network/networkManagers@2022-09-01' = {
name: 'vnm-learn-prod-${location}-001'
location: location
properties: {
networkManagerScopeAccesses: [
'Connectivity'
]
networkManagerScopes: {
subscriptions: [
'/subscriptions/${subscription().subscriptionId}'
]
managementGroups: []
}
}
}
Hálózati csoportok
A megoldás támogatja a statikus tagságú hálózati csoportok vagy a dinamikus tagságú hálózati csoportok létrehozását. A statikus tagsági hálózati csoport virtuális hálózati azonosító alapján határozza meg a tagjait
Statikus tagsági hálózati csoport
@description('This is the static network group for the all VNETs.')
resource networkGroupSpokesStatic 'Microsoft.Network/networkManagers/networkGroups@2022-09-01' = if (networkGroupMembershipType == 'static') {
name: 'ng-learn-prod-${location}-static001'
parent: networkManager
properties: {
description: 'Network Group - Static'
}
// add spoke vnets A, B, and C to the static network group
resource staticMemberSpoke 'staticMembers@2022-09-01' = [for spokeMember in spokeNetworkGroupMembers: if (contains(groupedVNETs,last(split(spokeMember,'/')))) {
name: 'sm-${(last(split(spokeMember, '/')))}'
properties: {
resourceId: spokeMember
}
}]
resource staticMemberHub 'staticMembers@2022-09-01' = {
name: 'sm-${(toLower(last(split(hubVnetId, '/'))))}'
properties: {
resourceId: hubVnetId
}
}
}
Dinamikus tagsági hálózati csoport
@description('This is the dynamic group for all VNETs.')
resource networkGroupSpokesDynamic 'Microsoft.Network/networkManagers/networkGroups@2022-09-01' = if (networkGroupMembershipType == 'dynamic') {
name: 'ng-learn-prod-${location}-dynamic001'
parent: networkManager
properties: {
description: 'Network Group - Dynamic'
}
}
Kapcsolatkonfiguráció
A Kapcsolatkonfiguráció a hálózati csoportot a megadott hálózati topológiához társítja.
@description('This connectivity configuration defines the connectivity between VNETs using Direct Connection. The hub will be part of the mesh, but gateway routes from the hub will not propagate to spokes.')
resource connectivityConfigurationMesh 'Microsoft.Network/networkManagers/connectivityConfigurations@2022-09-01' = {
name: 'cc-learn-prod-${location}-mesh001'
parent: networkManager
properties: {
description: 'Mesh connectivity configuration'
appliesToGroups: [
{
networkGroupId: (networkGroupMembershipType == 'static') ? networkGroupSpokesStatic.id : networkGroupSpokesDynamic.id
isGlobal: 'False'
useHubGateway: 'False'
groupConnectivity: 'DirectlyConnected'
}
]
connectivityTopology: 'Mesh'
deleteExistingPeering: 'True'
hubs: []
isGlobal: 'False'
}
}
Üzembehelyezési szkript
A konfiguráció célhálózati csoportban való üzembe helyezéséhez a PowerShell-parancs meghívásához Deploy-AzNetworkManagerCommit egy üzembehelyezési szkriptet használunk. Az üzembehelyezési szkriptnek olyan identitásra van szüksége, amely rendelkezik a PowerShell-szkript Virtual Network Manageren való végrehajtásához szükséges engedélyekkel, így a Bicep-fájl létrehoz egy felhasználó által felügyelt identitást, és megadja neki a "Közreműködő" szerepkört a célerőforrás-csoportban. Az üzembehelyezési szkriptekkel és a társított identitásokkal kapcsolatos további információkért lásd : Üzembehelyezési szkriptek használata ARM-sablonokban.
@description('Create a Deployment Script resource to perform the commit/deployment of the Network Manager connectivity configuration.')
resource deploymentScript 'Microsoft.Resources/deploymentScripts@2020-10-01' = {
name: deploymentScriptName
location: location
kind: 'AzurePowerShell'
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentityId}': {}
}
}
properties: {
azPowerShellVersion: '8.3'
retentionInterval: 'PT1H'
timeout: 'PT1H'
arguments: '-networkManagerName "${networkManagerName}" -targetLocations ${location} -configIds ${configurationId} -subscriptionId ${subscription().subscriptionId} -configType ${configType} -resourceGroupName ${resourceGroup().name}'
scriptContent: '''
param (
# AVNM subscription id
[parameter(mandatory=$true)][string]$subscriptionId,
# AVNM resource name
[parameter(mandatory=$true)][string]$networkManagerName,
# string with comma-separated list of config ids to deploy. ids must be of the same config type
[parameter(mandatory=$true)][string[]]$configIds,
# string with comma-separated list of deployment target regions
[parameter(mandatory=$true)][string[]]$targetLocations,
# configuration type to deploy. must be either connectivity or securityadmin
[parameter(mandatory=$true)][ValidateSet('Connectivity','SecurityAdmin')][string]$configType,
# AVNM resource group name
[parameter(mandatory=$true)][string]$resourceGroupName
)
$null = Login-AzAccount -Identity -Subscription $subscriptionId
[System.Collections.Generic.List[string]]$configIdList = @()
$configIdList.addRange($configIds)
[System.Collections.Generic.List[string]]$targetLocationList = @() # target locations for deployment
$targetLocationList.addRange($targetLocations)
$deployment = @{
Name = $networkManagerName
ResourceGroupName = $resourceGroupName
ConfigurationId = $configIdList
TargetLocation = $targetLocationList
CommitType = $configType
}
try {
Deploy-AzNetworkManagerCommit @deployment -ErrorAction Stop
}
catch {
Write-Error "Deployment failed with error: $_"
throw "Deployment failed with error: $_"
}
'''
}
}
Dinamikus hálózati csoporttagsági szabályzat
Ha az üzembe helyezés hálózati csoporttagság használatára dynamic van konfigurálva, a megoldás üzembe helyez egy Azure Policy-definíciót és -hozzárendelést is. A szabályzatdefiníció alább látható.
@description('This is a Policy definition for dynamic group membership')
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2021-06-01' = {
name: uniqueString(networkGroupId)
properties: {
description: 'AVNM quickstart dynamic group membership Policy'
displayName: 'AVNM quickstart dynamic group membership Policy'
mode: 'Microsoft.Network.Data'
policyRule: {
if: {
allof: [
{
field: 'type'
equals: 'Microsoft.Network/virtualNetworks'
}
{
// virtual networks must have a tag where the key is '_avnm_quickstart_deployment'
field: 'tags[_avnm_quickstart_deployment]'
exists: true
}
{
// virtual network ids must include this sample's resource group ID - limiting the chance that dynamic membership impacts other vnets in your subscriptions
field: 'id'
like: '${subscription().id}/resourcegroups/${resourceGroupName}/*'
}
]
}
then: {
// 'addToNetworkGroup' is a special effect used by AVNM network groups
effect: 'addToNetworkGroup'
details: {
networkGroupId: networkGroupId
}
}
}
}
}
A Bicep-megoldás üzembe helyezése
Üzembe helyezés előfeltételei
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Szabályzatdefiníció és szabályzat-hozzárendelés létrehozásához szükséges engedélyek a cél-előfizetés hatókörében (erre akkor van szükség, ha az üzembehelyezési paraméter
networkGroupMembershipType=Dynamichasználatával telepíti a hálózati csoporttagsághoz szükséges házirend-erőforrásokat. Az alapértelmezett érték azstatic, amely nem helyez üzembe házirendet.
A Bicep-megoldás letöltése
- Töltse le az MSPNP-adattár Zip-archívumát ezen a linken
- Bontsa ki a letöltött Zip-fájlt, és keresse meg a könyvtárat a
solutions/avnm-mesh-connected-group/bicepterminálban.
Azt is megteheti git , hogy klónozza az adattárat a következővel: git clone https://github.com/mspnp/samples.git
Csatlakozás az Azure szolgáltatáshoz
Jelentkezzen be az Azure-fiókjába, és válassza ki az előfizetését
A konfiguráció megkezdéséhez jelentkezzen be az Azure-fiókjába:
Connect-AzAccount
Ezután csatlakozzon az előfizetéséhez:
Set-AzContext -Subscription <subscription name or id>
Az Azure PowerShell-modul telepítése
Telepítse a legújabb Az.Network Azure PowerShell-modult a következő paranccsal:
Install-Module -Name Az.Network -RequiredVersion 5.3.0
Üzembehelyezési paraméterek
- resourceGroupName: [kötelező] Ez a paraméter annak az erőforráscsoportnak a nevét adja meg, amelyben a virtuális hálózatkezelő és a minta virtuális hálózatok üzembe lesznek helyezve.
- hely: [kötelező] Ez a paraméter határozza meg az üzembe helyezendő erőforrások helyét.
-
networkGroupMembershipType: [nem kötelező] Ez a paraméter határozza meg az üzembe helyezendő hálózati csoporttagság típusát. Az alapértelmezett érték az
static, de a dinamikus csoporttagság a megadásávaldynamichasználható.
Feljegyzés
A dinamikus csoporttagság kiválasztása egy Azure-szabályzatot helyez üzembe a tagság kezeléséhez, amelyhez további engedélyekre van szükség.
$templateParameterObject = @{
'location' = '<resourceLocation>'
'resourceGroupName' = '<newOrExistingResourceGroup>'
}
New-AzSubscriptionDeployment -TemplateFile ./main.bicep -Location <deploymentLocation> -TemplateParameterObject $templateParameterObject
Konfiguráció üzembe helyezésének ellenőrzése
Az egyes virtuális hálózatokHoz tartozó Network Manager-szakaszban ellenőrizze, hogy telepítette-e a konfigurációt:
Nyissa meg a vnet-learn-prod-{location}-spoke001 virtuális hálózatot.
A Beállítások területen válassza a Network Manager lehetőséget.
A Kapcsolati konfigurációk lapon ellenőrizze, hogy a cc-learn-prod-{location}-mesh001 megjelenik-e a listában.
Ismételje meg az előző lépéseket a (z) vnet-learn-prod-{location}-spoke004 rendszeren. A vnet-learn-prod-{location}-küllő004 nem szerepel a kapcsolati konfigurációban.
Az erőforrások eltávolítása
Ha már nincs szüksége az Azure Virtual Network Managerre és a kapcsolódó virtuális hálózatokra, az erőforráscsoport és az erőforrások törlésével eltávolíthatja azt.
- Az Azure Portalon keresse meg az erőforráscsoportot – erőforráscsoportot.
- Válassza ki az erőforráscsoportot , és válassza az Erőforráscsoport törlése lehetőséget.
- Az erőforráscsoport törlése ablakban erősítse meg, hogy törölni szeretne, ha beírja az erőforráscsoportot a szövegmezőbe, majd válassza a Törlés lehetőséget.
- Ha dinamikus hálózati csoporttagságokat használt, törölje az üzembe helyezett Azure Policy-definíciót és -hozzárendelést a portál előfizetéséhez való navigálással és a szabályzatok kiválasztásával. A Szabályzatok területen keresse meg a hozzárendelt hozzárendelést
AVNM quickstart dynamic group membership Policy, és törölje azt, majd végezze el ugyanezt a esetében.
Következő lépések
Most, hogy létrehozott egy Azure Virtual Network Manager-példányt, megtudhatja, hogyan tilthatja le a hálózati forgalmat egy biztonsági rendszergazdai konfigurációval: