Megosztás a következőn keresztül:


Előfizetések üzembe helyezése Bicep-fájlokkal

Az erőforrások felügyeletének egyszerűsítése érdekében az erőforrásokat az Azure-előfizetés szintjén helyezheti üzembe. Üzembe helyezhet például szabályzatokat és Azure szerepköralapú hozzáférés-vezérlést (Azure RBAC) az előfizetésében, amely az előfizetésre alkalmazza őket.

Ez a cikk azt ismerteti, hogyan állíthatja be az üzembehelyezési hatókört előfizetésre egy Bicep-fájlban.

Feljegyzés

Előfizetési szintű üzemelő példányban 800 különböző erőforráscsoportra telepítheti azokat.

Képzési erőforrások

Ha lépésről lépésre szeretne tájékozódni 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 az előfizetés 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:

Azure-szabályzatok esetén használja a következőket:

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

Az erőforráscsoportokban üzembe helyező beágyazott sablonok esetében használja a következőt:

Új erőforráscsoportok létrehozásához használja a következőt:

Az előfizetés kezeléséhez használja a következőt:

Monitorozáshoz használja a következőt:

A biztonság érdekében használja a következőt:

Egyéb támogatott típusok a következők:

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

A hatókör előfizetésre való beállításához használja a következőt:

targetScope = 'subscription'

Üzembehelyezési parancsok

Előfizetésben való üzembe helyezéshez használja az előfizetési szintű üzembehelyezési parancsokat.

Az Azure CLI-hez használja az az deployment sub create parancsot. Az alábbi példa egy sablont helyez üzembe egy erőforráscsoport létrehozásához:

az deployment sub create \
  --name demoSubDeployment \
  --location centralus \
  --template-file main.bicep \
  --parameters rgName=demoResourceGroup rgLocation=centralus

Az üzembehelyezési parancsokkal és az ARM-sablonok üzembe helyezési lehetőségével kapcsolatos további információkért lásd:

Üzembe helyezés helye és neve

Előfizetési szintű üzemelő példányok esetén meg kell adnia az üzembe helyezés helyét. Az üzembe helyezés helye eltér az üzembe helyezhető erőforrások helyétől. Az üzembehelyezési hely határozza meg, hogy hol tárolja az üzembehelyezési adatokat. A felügyeleti csoport és a bérlő ü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.

Megadhat egy nevet az üzembe helyezéshez, vagy használhatja az alapértelmezett üzembe helyezési nevet. Az alapértelmezett név a sablonfájl neve. Egy main.json nevű sablon üzembe helyezése például létrehozza a fő központi telepítés alapértelmezett nevét.

Minden üzembe helyezési név esetében a hely nem módosítható. Nem hozhat létre üzembe helyezést egy helyen, ha egy másik helyen azonos nevű meglévő üzembe helyezés van. Ha például a Centralusban az 1. névvel rendelkező előfizetési üzembe helyezést hoz létre, később nem hozhat létre egy másik üzembe helyezést az üzembe helyezés1 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

Előfizetésben való üzembe helyezéskor az erőforrásokat a következőre helyezheti üzembe:

  • a műveletből származó cél-előfizetés
  • bármely előfizetés a bérlőben
  • erőforráscsoportok az előfizetésben vagy más előfizetésekben
  • az előfizetés 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 az előfizetéshez

Ha erőforrásokat szeretne üzembe helyezni a cél-előfizetésben, adja hozzá ezeket az erőforrásokat a resource kulcsszóval.

targetScope = 'subscription'

// resource group created in target subscription
resource exampleResource 'Microsoft.Resources/resourceGroups@2024-03-01' = {
  ...
}

Az előfizetésben való üzembe helyezésre példákért lásd : Erőforráscsoportok létrehozása a Bicep-lel és a Szabályzatdefiníció hozzárendelése.

Ha a művelettől eltérő előfizetésben szeretne erőforrásokat üzembe helyezni, adjon hozzá egy modult. A tulajdonság beállításához használja az előfizetési függvénytscope. Adja meg a subscriptionId tulajdonságot annak az előfizetésnek az azonosítójára, amelybe telepíteni szeretné.

targetScope = 'subscription'

param otherSubscriptionID string

// module deployed at subscription level but in a different subscription
module exampleModule 'module.bicep' = {
  name: 'deployToDifferentSub'
  scope: subscription(otherSubscriptionID)
}

Hatókör az erőforráscsoporthoz

Ha erőforrásokat szeretne üzembe helyezni egy erőforráscsoportban az előfizetésen belül, adjon hozzá egy modult, és állítsa be a tulajdonságát scope . Ha az erőforráscsoport már létezik, a resourceGroup függvénnyel állítsa be a hatókör értékét. Adja meg az erőforráscsoport nevét.

targetScope = 'subscription'

param resourceGroupName string

module exampleModule 'module.bicep' = {
  name: 'exampleModule'
  scope: resourceGroup(resourceGroupName)
}

Ha az erőforráscsoport ugyanabban a Bicep-fájlban van létrehozva, a hatókör értékének beállításához használja az erőforráscsoport szimbolikus nevét. Ha a hatókört szimbolikus névre szeretné állítani, tekintse meg az erőforráscsoport létrehozása a Bicep-lel című témakört.

Hatókör a bérlőhöz

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átscope.

A sablont üzembe helyező felhasználónak rendelkeznie kell a bérlőn való üzembe helyezéshez szükséges hozzáféréssel.

Az alábbi példa egy, a bérlőn üzembe helyezett modult tartalmaz.

targetScope = 'subscription'

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

Modul használata helyett a hatókört tenant() bizonyos erőforrástípusokra is beállíthatja. Az alábbi példa egy felügyeleti csoportot helyez üzembe a bérlőben.

targetScope = 'subscription'

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

// management group created at tenant
resource managementGroup 'Microsoft.Management/managementGroups@2023-04-01' = {
  scope: tenant()
  name: mgName
  properties: {}
}

output output string = mgName

További információ: Felügyeleti csoport.

Erőforráscsoportok

További információ az erőforráscsoportok létrehozásáról: Erőforráscsoport létrehozása a Bicep-lel.

Azure Policy

Szabályzatdefiníció hozzárendelése

Az alábbi példa egy meglévő szabályzatdefiníciót rendel hozzá az előfizetéshez. Ha a szabályzatdefiníció paramétereket vesz fel, adja meg őket objektumként. Ha a szabályzatdefiníció nem fogad paramétereket, használja az alapértelmezett üres objektumot.

targetScope = 'subscription'

param policyDefinitionID string
param policyName string
param policyParameters object = {}

resource policyAssign 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
  name: policyName
  properties: {
    policyDefinitionId: policyDefinitionID
    parameters: policyParameters
  }
}

Szabályzatdefiníciók létrehozása és hozzárendelése

Egy szabályzatdefiníciót ugyanabban a Bicep-fájlban definiálhat és rendelhet hozzá.

targetScope = 'subscription'

resource locationPolicy 'Microsoft.Authorization/policyDefinitions@2023-04-01' = {
  name: 'locationpolicy'
  properties: {
    policyType: 'Custom'
    parameters: {}
    policyRule: {
      if: {
        field: 'location'
        equals: 'northeurope'
      }
      then: {
        effect: 'deny'
      }
    }
  }
}

resource locationRestrict 'Microsoft.Authorization/policyAssignments@2024-04-01' = {
  name: 'allowedLocation'
  properties: {
    policyDefinitionId: locationPolicy.id
  }
}

Hozzáférés-vezérlés

A szerepkörök hozzárendelésével kapcsolatos további információkért lásd : Azure-szerepkör-hozzárendelések hozzáadása Azure Resource Manager-sablonok használatával.

Az alábbi példa létrehoz egy erőforráscsoportot, alkalmaz egy zárolást, és hozzárendel egy szerepkört egy taghoz.

targetScope = 'subscription'

@description('Name of the resourceGroup to create')
param resourceGroupName string

@description('Location for the resourceGroup')
param resourceGroupLocation string

@description('principalId of the user that will be given contributor access to the resourceGroup')
param principalId string

@description('roleDefinition to apply to the resourceGroup - default is contributor')
param roleDefinitionId string = 'b24988ac-6180-42a0-ab88-20f7382dd24c'

@description('Unique name for the roleAssignment in the format of a guid')
param roleAssignmentName string = guid(principalId, roleDefinitionId, resourceGroupName)

var roleID = '/subscriptions/${subscription().subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/${roleDefinitionId}'

resource newResourceGroup 'Microsoft.Resources/resourceGroups@2024-03-01' = {
  name: resourceGroupName
  location: resourceGroupLocation
  properties: {}
}

module applyLock 'lock.bicep' = {
  name: 'applyLock'
  scope: newResourceGroup
}

module assignRole 'role.bicep' = {
  name: 'assignRBACRole'
  scope: newResourceGroup
  params: {
    principalId: principalId
    roleNameGuid: roleAssignmentName
    roleDefinitionId: roleID
  }
}

Az alábbi példa a zárolást alkalmazó modult mutatja be:

resource createRgLock 'Microsoft.Authorization/locks@2020-05-01' = {
  name: 'rgLock'
  properties: {
    level: 'CanNotDelete'
    notes: 'Resource group should not be deleted.'
  }
}

A következő példa a szerepkör hozzárendelésére szolgáló modult mutatja be:

@description('The principal to assign the role to')
param principalId string

@description('A GUID used to identify the role assignment')
param roleNameGuid string = newGuid()

param roleDefinitionId string

resource roleNameGuid_resource 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: roleNameGuid
  properties: {
    roleDefinitionId: roleDefinitionId
    principalId: principalId
  }
}

Következő lépések

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