Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, bir yönetim grubuna dağıtılırken Bicep ile kapsamın nasıl ayarlanacağı açıklanmaktadır.
Kuruluşunuz büyüdükçe, yönetim grubu düzeyinde kaynak oluşturmak için bir Bicep dosyası dağıtabilirsiniz. Örneğin, bir yönetim grubu için ilkeler veya Azure rol tabanlı erişim denetimi (Azure RBAC) tanımlamanız ve atamanız gerekebilir. Yönetim grubu düzeyi şablonlarıyla ilkeleri bildirimli olarak uygulayabilir ve yönetim grubu düzeyinde roller atayabilirsiniz. Daha fazla bilgi için bk. Kapsamı anlama.
Desteklenen kaynaklar
Tüm kaynak türleri yönetim grubu düzeyine dağıtılamaz. Bu bölümde hangi kaynak türlerinin desteklendiği listelenir.
Azure Blueprints için şunu kullanın:
Azure İlkesi için şunu kullanın:
Erişim denetimi için şunu kullanın:
- privateLinkAssociations
- roleAssignments
- roleAssignmentScheduleRequests
- roleDefinitions
- roleEligibilityScheduleRequests
- roleManagementPolicyAssignments
Aboneliklere veya kaynak gruplarına dağıtılan iç içe şablonlar için şunu kullanın:
Kaynaklarınızı yönetmek için şunları kullanın:
Yönetim grupları kiracı düzeyinde kaynaklardır. Ancak, yeni yönetim grubunun kapsamını kiracı olarak ayarlayarak bir yönetim grubu dağıtımında yönetim grupları oluşturabilirsiniz. Bkz. Yönetim grubu.
Kapsamı ayarla
Kapsamı yönetim grubuna ayarlamak için şunu kullanın:
targetScope = 'managementGroup'
Dağıtım komutları
Bir yönetim grubuna dağıtmak için yönetim grubu dağıtım komutlarını kullanın.
Azure CLI için az deployment mg create komutunu kullanın:
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"
ARM şablonlarını dağıtmaya yönelik dağıtım komutları ve seçenekleri hakkında daha ayrıntılı bilgi için bkz:
- ARM şablonları ve Azure CLI ile kaynak dağıtma
- ARM şablonları ve Azure PowerShell ile kaynak dağıtma
- Cloud Shell'den ARM şablonları dağıtma
Dağıtım konumu ve adı
Yönetim grubu düzeyinde dağıtımlar için dağıtım için bir konum sağlamanız gerekir. Dağıtımın konumu, dağıttığınız kaynakların konumundan ayrıdır. Dağıtım konumu, dağıtım verilerinin depolandığı yeri belirtir. Abonelik ve kiracı dağıtımları da bir konum gerektirir. Kaynak grubu dağıtımları için, dağıtım verilerini depolamak için kaynak grubunun konumu kullanılır.
Dağıtım için bir ad sağlayabilir veya varsayılan dağıtım adını kullanabilirsiniz. Varsayılan ad, şablon dosyasının adıdır. Örneğin main.bicep adlı bir şablon dağıtılırken main varsayılan dağıtım adı oluşturulur.
Her dağıtım adı için konum sabittir. Farklı bir konumda aynı ada sahip mevcut bir dağıtım olduğunda tek bir konumda dağıtım oluşturamazsınız. Örneğin, centralus'ta deployment1 adlı bir yönetim grubu dağıtımı oluşturursanız, daha sonra deployment1 adlı başka bir dağıtım oluşturamazsınız, ancak westus konumuna sahip olursunuz. hata kodunu InvalidDeploymentLocationalırsanız, bu ad için farklı bir ad veya önceki dağıtımla aynı konumu kullanın.
Dağıtım kapsamları
Bicep dosyasında anahtar sözcüğüyle bildirilen tüm kaynakların dağıtımla resource aynı kapsamda dağıtılması gerekir. Bir yönetim grubu dağıtımı için bu, Bicep dosyasındaki tüm resource bildirimlerin dağıtımla aynı yönetim grubundaki bir kaynağın alt veya uzantı kaynağı olarak dağıtılması gerektiği anlamına gelir.
Ancak bu kısıtlama kaynaklar için existing geçerli değildir. Var olan kaynaklara dağıtımdan farklı bir kapsamda başvurabilirsiniz.
Kaynakları tek bir dağıtımda birden çok kapsamda dağıtmak için modülleri kullanın. Modül dağıtmak, "iç içe dağıtım" tetikleyerek farklı kapsamları hedeflemenizi sağlar. Üst Bicep dosyasını dağıtan kullanıcının bu kapsamlarda dağıtımları başlatmak için gerekli izinlere sahip olması gerekir.
Bir Bicep modülünü aşağıdaki kapsamlarda bir yönetim grubu kapsamı Bicep dosyasından dağıtabilirsiniz:
Kapsam- yönetim grubu
Kaynakları hedef yönetim grubuna dağıtmak için bu kaynakları anahtar sözcüğüyle resource ekleyin.
targetScope = 'managementGroup'
// policy definition created in the management group
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2025-03-01' = {
...
}
Başka bir yönetim grubunu hedeflemek için bir modül ekleyin. kullanın. Yönetim grubu adını belirtin.
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)
}
Kapsam-abonelik
Ayrıca bir yönetim grubu içindeki abonelikleri de hedefleyebilirsiniz. Şablonu dağıtan kullanıcının belirtilen kapsama erişimi olmalıdır.
Yönetim grubu içindeki bir aboneliği hedeflemek için bir modül ekleyin. kullanın. Abonelik kimliğini belirtin.
targetScope = 'managementGroup'
param subscriptionID string
// module deployed to subscription in the management group
module exampleModule 'module.bicep' = {
name: 'deployToSub'
scope: subscription(subscriptionID)
}
Kapsam- kaynak grubu
Ayrıca, yönetim grubu içindeki kaynak gruplarını da hedefleyebilirsiniz. Şablonu dağıtan kullanıcının belirtilen kapsama erişimi olmalıdır.
Yönetim grubu içindeki bir kaynak grubunu hedeflemek için bir modül ekleyin. kullanın. Abonelik kimliğini ve kaynak grubu adını belirtin.
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)
}
Kapsamı kiracıya
Kiracıda kaynak oluşturmak için bir modül ekleyin. kullanın. Şablonu dağıtan kullanıcının kiracıda dağıtmak için gerekli erişime sahip olması gerekir.
targetScope = 'managementGroup'
// module deployed at tenant level
module exampleModule 'module.bicep' = {
name: 'deployToTenant'
scope: tenant()
}
İsterseniz, yönetim grupları gibi bazı kaynak türleri için kapsamı / olarak da ayarlayabilirsiniz. Yeni bir yönetim grubu oluşturma işlemi sonraki bölümde açıklanmıştır.
Yönetim Grubu
Bir yönetim grubu dağıtımında yönetim grubu oluşturmak için kapsamı kiracı olarak ayarlamanız gerekir.
Aşağıdaki örnek, kök yönetim grubunda yeni bir yönetim grubu oluşturur.
targetScope = 'managementGroup'
param mgName string = 'mg-${uniqueString(newGuid())}'
resource newMG 'Microsoft.Management/managementGroups@2024-02-01-preview' = {
scope: tenant()
name: mgName
properties: {}
}
output newManagementGroup string = mgName
Sonraki örnek, dağıtım için hedeflenen yönetim grubunda yeni bir yönetim grubu oluşturur. Yönetim grubu işlevini kullanır.
targetScope = 'managementGroup'
param mgName string = 'mg-${uniqueString(newGuid())}'
resource newMG 'Microsoft.Management/managementGroups@2024-02-01-preview' = {
scope: tenant()
name: mgName
properties: {
details: {
parent: {
id: managementGroup().id
}
}
}
}
output newManagementGroup string = mgName
Abonelikler
Yönetim grubunda yeni bir Azure aboneliği oluşturmak üzere ARM şablonu kullanmak için bkz:
- Program aracılığıyla Azure Kurumsal Anlaşma abonelikleri oluşturma
- Program aracılığıyla Microsoft Müşteri Sözleşmesi için Azure abonelikleri oluşturma
- Microsoft İş Ortağı Sözleşmesi için program aracılığıyla Azure abonelikleri oluşturma
Mevcut Azure aboneliğini yeni bir yönetim grubuna taşıyan bir şablon dağıtmak için bkz . ARM şablonunda abonelikleri taşıma
Azure İlkesi
Yönetim grubuna dağıttığınız özel politika tanımları, yönetim grubunun uzantılarıdır. Özel ilke tanımının kimliğini almak için extensionResourceId() işlevini kullanın. Bu fonksiyonu doğrudan çağırdığınızda, ilk argüman yönetim grubunun tam nitelikli kaynak kimliği olmalıdır. Bu gereklilik, dağıtım abonelik veya kaynak grubu gibi daha düşük bir kapsamdan başladığında arızaları önler.
Bicep'te, politika tanımının sembolik adı ve özelliği id tercih edilir, aşağıdaki örnekte gösterildiği gibi. Yerleşik ilke tanımları kiracı düzeyinde kaynaklardır. Yerleşik ilke tanımının kimliğini almak için tenantResourceId() işlevini kullanın.
Aşağıdaki örnekte, bir ilkenin yönetim grubu düzeyinde nasıl tanımlanacağı ve nasıl atanacakları gösterilmektedir.
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@2025-03-01' = {
name: 'locationRestriction'
properties: {
policyType: 'Custom'
mode: 'All'
parameters: {}
policyRule: {
if: {
not: {
field: 'location'
in: allowedLocations
}
}
then: {
effect: 'deny'
}
}
}
}
resource policyAssignment 'Microsoft.Authorization/policyAssignments@2025-03-01' = {
name: 'locationAssignment'
properties: {
policyDefinitionId: policyDefinition.id
}
}
Sonraki adımlar
Diğer kapsamlar hakkında bilgi edinmek için bkz: