Felügyeleti csoportok üzembe helyezése Bicep-fájlokkal

Ez a cikk azt ismerteti, hogyan állíthatja be a hatókört a Bicep használatával egy felügyeleti csoportban való üzembe helyezéskor.

A szervezet érettségével üzembe helyezhet egy Bicep-fájlt, hogy erőforrásokat hozzon létre a felügyeleti csoport szintjén. Előfordulhat például, hogy szabályzatokat vagy azure-beli szerepköralapú hozzáférés-vezérlést (Azure RBAC) kell definiálnia és hozzárendelnie egy felügyeleti csoporthoz. A felügyeleti csoportszintű sablonokkal deklaratív módon alkalmazhat szabályzatokat, és szerepköröket rendelhet hozzá a felügyeleti csoport szintjén.

Képzési források

Ha lépésről lépésre szeretne többet megtudni az üzembehelyezési hatókörökről, olvassa el az Erőforrások üzembe helyezése előfizetések, felügyeleti csoportok és bérlők számára a Bicep használatával című témakört.

Támogatott erőforrások

Nem minden erőforrástípus helyezhető üzembe a felügyeleti csoport szintjén. Ez a szakasz felsorolja, hogy mely erőforrástípusok támogatottak.

Az Azure Blueprints esetében használja a következőt:

A Azure Policy a következőt használja:

Hozzáférés-vezérléshez használja a következőt:

Előfizetésekben vagy erőforráscsoportokban üzembe helyező beágyazott sablonok esetén használja a következőt:

Az erőforrások kezeléséhez használja a következőt:

A felügyeleti csoportok bérlőszintű erőforrások. Felügyeleti csoportokat azonban létrehozhat egy felügyeleti csoport üzembe helyezésében, ha az új felügyeleti csoport hatókörét a bérlőre állítja. Lásd: Felügyeleti csoport.

Hatókör beállítása

A hatókör felügyeleti csoportra való beállításához használja a következőt:

targetScope = 'managementGroup'

Üzembehelyezési parancsok

A felügyeleti csoportban való üzembe helyezéshez használja a felügyeleti csoport üzembehelyezési parancsát.

Az Azure CLI-hez használja az az deployment mg create parancsot:

az deployment mg create \
  --name demoMGDeployment \
  --location WestUS \
  --management-group-id myMG \
  --template-uri "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/management-level-deployment/azuredeploy.json"

Az ARM-sablonok üzembe helyezési parancsaival és beállításaival kapcsolatos részletesebb információkért lásd:

Üzembe helyezés helye és neve

A felügyeleti csoportszintű üzemelő példányok esetében meg kell adnia az üzembe helyezés helyét. Az üzembe helyezés helye eltér az üzembehelyezési erőforrások helyétől. Az üzembehelyezési hely határozza meg, hogy hol tárolja az üzembehelyezési adatokat. Az előfizetések és a bérlők üzembe helyezéséhez hely is szükséges. Az erőforráscsoport üzemelő példányai esetében az erőforráscsoport helye az üzembehelyezési adatok tárolására szolgál.

Megadhatja az üzembe helyezés nevét, vagy használhatja az alapértelmezett üzembe helyezési nevet. Az alapértelmezett név a sablonfájl neve. A main.bicep nevű sablon üzembe helyezése például létrehozza a main alapértelmezett üzembehelyezési nevét.

Minden üzembe helyezési név esetében a hely nem módosítható. Nem hozható létre üzembe helyezés egyetlen helyen, ha egy másik helyen található egy azonos nevű meglévő üzemelő példány. Ha például a centralusban a deployment1 névvel rendelkező felügyeleticsoport-üzembe helyezést hoz létre, később nem hozhat létre egy másik üzembe helyezést a deployment1 névvel, hanem a westus helyével. Ha a hibakódot InvalidDeploymentLocationkapja, használjon másik nevet, vagy ugyanazt a helyet, mint az előző üzembe helyezés.

Üzembehelyezési hatókörök

Felügyeleti csoportban való üzembe helyezéskor az erőforrásokat a következőre helyezheti üzembe:

  • a műveletből származó célfelügyeleti csoport
  • egy másik felügyeleti csoport a bérlőben
  • előfizetések a felügyeleti csoportban
  • erőforráscsoportok a felügyeleti csoportban
  • az erőforráscsoport bérlője

A bővítményerőforrás hatóköre az üzembehelyezési céltól eltérő célra terjedhet ki.

A sablont üzembe helyező felhasználónak hozzáféréssel kell rendelkeznie a megadott hatókörhöz.

Hatókör a felügyeleti csoporthoz

Ha erőforrásokat szeretne üzembe helyezni a célfelügyeleti csoportban, adja hozzá ezeket az erőforrásokat a resource kulcsszóval.

targetScope = 'managementGroup'

// policy definition created in the management group
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2021-06-01' = {
  ...
}

Egy másik felügyeleti csoport megcélzásához adjon hozzá egy modult. A tulajdonság beállításához használja a managementGroup függvénytscope. Adja meg a felügyeleti csoport nevét.

targetScope = 'managementGroup'

param otherManagementGroupName string

// module deployed at management group level but in a different management group
module exampleModule 'module.bicep' = {
  name: 'deployToDifferentMG'
  scope: managementGroup(otherManagementGroupName)
}

Hatókör az előfizetéshez

Az előfizetéseket felügyeleti csoporton belül is megcélzhatja. A sablont üzembe helyező felhasználónak hozzáféréssel kell rendelkeznie a megadott hatókörhöz.

A felügyeleti csoporton belüli előfizetések megcélzásához adjon hozzá egy modult. A tulajdonság beállításához használja az előfizetési függvénytscope. Adja meg az előfizetés azonosítóját.

targetScope = 'managementGroup'

param subscriptionID string

// module deployed to subscription in the management group
module exampleModule 'module.bicep' = {
  name: 'deployToSub'
  scope: subscription(subscriptionID)
}

Hatókör az erőforráscsoporthoz

A felügyeleti csoporton belül is megcélozhat erőforráscsoportokat. A sablont üzembe helyező felhasználónak hozzáféréssel kell rendelkeznie a megadott hatókörhöz.

A felügyeleti csoporton belüli erőforráscsoport megcélzásához adjon hozzá egy modult. A resourceGroup függvénnyel állítsa be a tulajdonságot scope . Adja meg az előfizetés azonosítóját és az erőforráscsoport nevét.

targetScope = 'managementGroup'

param subscriptionID string
param resourceGroupName string

// module deployed to resource group in the management group
module exampleModule 'module.bicep' = {
  name: 'deployToRG'
  scope: resourceGroup(subscriptionID, resourceGroupName)
}

Hatókör a bérlőre

Ha erőforrásokat szeretne létrehozni a bérlőben, adjon hozzá egy modult. A bérlői függvény használatával állítsa be a tulajdonságát scope . A sablont üzembe helyező felhasználónak rendelkeznie kell a bérlőn való üzembe helyezéshez szükséges hozzáféréssel.

targetScope = 'managementGroup'

// module deployed at tenant level
module exampleModule 'module.bicep' = {
  name: 'deployToTenant'
  scope: tenant()
}

Vagy beállíthatja a hatókört / bizonyos erőforrástípusokra, például felügyeleti csoportokra. Az új felügyeleti csoport létrehozását a következő szakaszban ismertetjük.

Felügyeleti csoport

Ha felügyeleti csoportot szeretne létrehozni egy felügyeleti csoport üzemelő példányában, a hatókört a bérlőre kell állítania.

Az alábbi példa egy új felügyeleti csoportot hoz létre a gyökérszintű felügyeleti csoportban.

targetScope = 'managementGroup'

param mgName string = 'mg-${uniqueString(newGuid())}'

resource newMG 'Microsoft.Management/managementGroups@2021-04-01' = {
  scope: tenant()
  name: mgName
  properties: {}
}

output newManagementGroup string = mgName

A következő példa létrehoz egy új felügyeleti csoportot az üzembe helyezéshez megcélzott felügyeleti csoportban. A felügyeleti csoport függvényt használja.

targetScope = 'managementGroup'

param mgName string = 'mg-${uniqueString(newGuid())}'

resource newMG 'Microsoft.Management/managementGroups@2021-04-01' = {
  scope: tenant()
  name: mgName
  properties: {
    details: {
      parent: {
        id: managementGroup().id
      }
    }
  }
}

output newManagementGroup string = mgName

Előfizetések

Ha ARM-sablonnal szeretne létrehozni egy új Azure-előfizetést egy felügyeleti csoportban, tekintse meg a következőt:

Meglévő Azure-előfizetést új felügyeleti csoportba áthelyező sablon üzembe helyezéséhez lásd: Előfizetések áthelyezése ARM-sablonban

Azure Policy

A felügyeleti csoportban üzembe helyezett egyéni szabályzatdefiníciók a felügyeleti csoport bővítményei. Egy egyéni szabályzatdefiníció azonosítójának lekéréséhez használja az extensionResourceId() függvényt. A beépített szabályzatdefiníciók bérlőszintű erőforrások. A beépített szabályzatdefiníció azonosítójának lekéréséhez használja a tenantResourceId() függvényt.

Az alábbi példa bemutatja, hogyan definiálhat egy szabályzatot a felügyeleti csoport szintjén, és hogyan rendelheti hozzá.

targetScope = 'managementGroup'

@description('An array of the allowed locations, all other locations will be denied by the created policy.')
param allowedLocations array = [
  'australiaeast'
  'australiasoutheast'
  'australiacentral'
]

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2021-06-01' = {
  name: 'locationRestriction'
  properties: {
    policyType: 'Custom'
    mode: 'All'
    parameters: {}
    policyRule: {
      if: {
        not: {
          field: 'location'
          in: allowedLocations
        }
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

resource policyAssignment 'Microsoft.Authorization/policyAssignments@2022-06-01' = {
  name: 'locationAssignment'
  properties: {
    policyDefinitionId: policyDefinition.id
  }
}

Következő lépések

Az egyéb hatókörökről az alábbiakban olvashat bővebben: