Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Začněte používat Azure Virtual Network Manager pomocí Bicep ke správě připojení pro všechny virtuální sítě.
V tomto rychlém startu nasadíte tři virtuální sítě a použijete Azure Virtual Network Manager k vytvoření síťové topologie sítě. Pak ověříte, že se použila konfigurace připojení.
Řešení Bicep pro tuto ukázku je rozdělené do modulů, které umožňují nasazení v rozsahu skupiny prostředků i předplatného. Následující sekce popisují komponenty, které jsou jedinečné pro Azure Virtual Network Manager. Kromě těchto komponent řešení nasazuje virtuální sítě, uživatelem přiřazenou identitu a přiřazení rolí.
Definujte prostředek správce virtuální sítě
Tento zdroj vytváří instanci Microsoft.Network/networkManagers ve verzi 2022-09-01API , která implementuje propojenou skupinu pro propojení mezi virtuálními sítěmi. Nastavte networkManagerScopes na předplatná nebo skupiny pro správu, které instance spravuje, a ponechte Connectivity v networkManagerScopeAccesses, aby instance mohla nasazovat konfigurace konektivity.
@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: []
}
}
}
Definujte statické a dynamické síťové skupiny
Řešení podporuje buď statickou skupinu členských sítí, nebo dynamickou skupinu členských sítí. Parametr networkGroupMembershipType vybírá, který se nasadí; vytvoří se pouze jeden ze dvou zdrojů.
Skupina sítě se statickým členstvím
Statický síťový skupinový zdroj, Microsoft.Network/networkManagers/networkGroups ve verzi 2022-09-01API , explicitně jmenuje své členy. Vnořené staticMembers prostředky přidávají paprskové virtuální sítě A, B a C a také centrální virtuální síť podle ID prostředku. Chcete-li cílit na vlastní virtuální sítě, změňte parametry spokeNetworkGroupMembers a hubVnetId.
@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
}
}
}
Skupina v síti s dynamickým členstvím
Dynamický síťový skupinový zdroj nedeklaruje žádné členy. Členství je vyplněno definicí Azure Policy popsanou v Define the dynamic membership policy.
@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'
}
}
Definujte konfiguraci mesh konektivity
Zdroj Microsoft.Network/networkManagers/connectivityConfigurations pro konfiguraci konektivity ve verzi 2022-09-01API , přiřazuje síťovou skupinu k topologii mesh sítě. Vlastnost appliesToGroups odkazuje na síťovou skupinu, kterou jste nasadili, a nastavíte connectivityTopology na Mesh.
@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'
}
}
Potvrďte konfiguraci pomocí skriptu pro nasazení
Ke konfigurace do cílové síťové skupiny použijte skript pro nasazení, který volá příkaz PowerShellu Deploy-AzNetworkManagerCommit. Skript pro nasazení potřebuje identitu s dostatečnými oprávněními pro spuštění PowerShell skriptu proti virtuálnímu síťovému manažerovi. Soubor Bicep vytvoří identitu spravovanou uživatelem a udělí jí roli Přispěvatel pro cílovou skupinu prostředků. Pro více informací o skriptech nasazení a souvisejících identitách viz Použít skripty nasazení v ARM šablonách.
Následující zdroj je zdroj typu Microsoft.Resources/deploymentScripts ve verzi rozhraní API 2020-10-01. Spouští vložený skript PowerShellu, který se přihlásí pomocí uživatelem přiřazené identity a volá Deploy-AzNetworkManagerCommit. Změňte vlastnosti azPowerShellVersion, retentionInterval, a timeout pro vlastní nasazení. Změňte hodnoty, které jsou předávány arguments: název správce sítě, cílová místa, konfigurační ID, ID předplatného, typ konfigurace a název skupiny zdrojů.
@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: $_"
}
'''
}
}
Definujte politiku dynamického členství
Když nakonfigurujete nasazení tak, aby využívalo členství ve skupině sítě dynamic, řešení také nasadí definici a přiřazení Azure Policy.
Následující zdroj je zdroj typu Microsoft.Authorization/policyDefinitions ve verzi rozhraní API 2021-06-01. Používá režim zásad Microsoft.Network.Data a efekt addToNetworkGroup, který přidává odpovídající virtuální sítě do skupiny sítí identifikované pomocí networkGroupId. Pravidlo politiky odpovídá virtuálním sítím, které tag _avnm_quickstart_deployment nesou a které se nacházejí ve skupině zdrojů tohoto vzorku. Změňte název tagu a filtr skupiny zdrojů v podmínkách like tak, aby odpovídal vašemu prostředí.
@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
}
}
}
}
}
Nasazení řešení Bicep
Požadavky na nasazení
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Oprávnění k vytvoření definice zásady a přiřazení zásady v rámci oboru cílového předplatného Tato oprávnění potřebujete při použití parametru nasazení
networkGroupMembershipType=Dynamick nasazení požadovaných prostředků zásad Policy pro členství ve skupině Network Group. Výchozí hodnota jestatic, která nenasazuje zásadu. - Všechny prostředky v tomto řešení jsou k dispozici v úložišti Azure Samples GitHub. Řešení Bicep si můžete stáhnout z úložiště nebo naklonovat úložiště do místního počítače.
Stažení řešení Bicep
- Na tomto odkazu si stáhněte archiv ZIP ukázkového úložiště.
- Extrahujte stažený soubor ZIP. V terminálu přejděte do extrahovaného
avnm-mesh-connected-groupadresáře. Soubory Bicep pro toto řešení jsou vbiceppodadresáři.
Alternativně můžete použít git ke klonování úložiště:
git clone https://github.com/Azure-Samples/avnm-mesh-connected-group
cd avnm-mesh-connected-group
Připojení k Azure
Přihlaste se ke svému účtu Azure a vyberte své předplatné.
Pokud chcete zahájit konfiguraci, přihlaste se ke svému účtu Azure:
Connect-AzAccount
Pak se připojte k předplatnému:
Set-AzContext -Subscription <subscription name or id>
Instalace modulu Azure PowerShellu
Pomocí tohoto příkazu nainstalujte nejnovější modul Az.Network Azure PowerShellu:
Install-Module -Name Az.Network -RequiredVersion 5.3.0
Parametry nasazení
- resourceGroupName: [required] Název skupiny prostředků, do které chcete nasadit správce virtuální sítě a ukázkové virtuální sítě.
- umístění: [povinné] Umístění pro prostředky, které se mají nasadit.
-
networkGroupMembershipType: [volitelné] Typ členství ve skupině sítě, které chcete nasadit. Výchozí hodnota je
static, ale můžete ji použítdynamicpro dynamické členství ve skupinách.
Poznámka:
Volba dynamického členství ve skupinách nasadí Azure Policy ke správě členství, což vyžaduje další oprávnění.
Výchozí nasazení se statickým členstvím ve skupině sítě
New-AzSubscriptionDeployment -Name avnm-mesh-connected-group -Location <deploymentLocation> -TemplateFile ./bicep/main.bicep -resourceGroupName <newOrExistingResourceGroup>
Nasazení s dynamickým členstvím ve skupině sítě
Chcete-li pomocí Azure Policy dynamicky spravovat členství v síťové skupině, zadejte parametr nasazení networkGroupMembershipType s hodnotou dynamic.
New-AzSubscriptionDeployment -Name avnm-mesh-connected-group -Location <deploymentLocation> -TemplateFile ./bicep/main.bicep -resourceGroupName <newOrExistingResourceGroup> -networkGroupMembershipType dynamic
Ověřte nasazení konfigurace
Pomocí části Správce sítě pro každou virtuální síť ověřte, že jste nasadili konfiguraci:
Přejděte do virtuální sítě vnet-learn-prod-{location}-spoke001 .
V části Nastavení vyberte Správce sítě.
Na kartě Konfigurace konektivity ověřte, že se v seznamu zobrazí cc-learn-prod-{location}-mesh001.
Opakujte předchozí kroky u vnet-learn-prod-{location}-spoke004 -- měli byste vidět, že vnet-learn-prod-{location}-spoke004 je vyloučená z konfigurace připojení.
Vyčištění prostředků
Pokud už nepotřebujete Azure Virtual Network Manager a přidružené virtuální sítě, odeberte je odstraněním skupiny prostředků a jejích prostředků.
- Na webu Azure Portal přejděte do skupiny prostředků – skupina prostředků.
- Vyberte skupinu prostředků a vyberte Odstranit skupinu prostředků.
- V části Odstranit skupinu prostředků potvrďte, že chcete odstranit zadáním skupiny prostředků do textového pole a pak vyberte Odstranit.
- Pokud jste použili členství v dynamické skupině sítě, odstraňte nasazenou definici a přiřazení Azure Policy tak, že přejdete na předplatné na portálu a vyberete zásady. V části Zásady vyhledejte přiřazení s názvem
AVNM quickstart dynamic group membership Policya odstraňte ho a pak totéž proveďte pro definici s názvemAVNM quickstart dynamic group membership Policy.
Další kroky
Teď, když jste vytvořili instanci Azure Virtual Network Manager, zjistěte, jak blokovat síťový provoz pomocí konfigurace správce zabezpečení: