Bicep dosyası ile kiracı dağıtımları
Kuruluş olgunlaştıkça, Azure AD kiracınız genelinde ilkeler veya Azure rol tabanlı erişim denetimi (Azure RBAC) tanımlamanız ve atamanız gerekir. Kiracı düzeyi şablonlarıyla, ilkeleri bildirimli olarak uygulayabilir ve genel düzeyde roller atabilirsiniz.
Microsoft Learn
Dağıtım kapsamları hakkında daha fazla bilgi edinmek ve uygulamalı rehberlik için bkz. Microsoft Learn üzerinde Bicep kullanarak kaynakları aboneliklere, yönetim gruplarına ve kiracılara dağıtma.
Desteklenen kaynaklar
Tüm kaynak türleri kiracı düzeyinde dağıtılabilir değildir. Bu bölümde, hangi kaynak türlerinin desteklen olduğu listedir.
Azure rol tabanlı erişim denetimi (Azure RBAC) için şunları kullanın:
Yönetim gruplarına, aboneliklere veya kaynak gruplarına dağıtan iç içe şablonlar için şunları kullanın:
Yönetim grupları oluşturmak için şunları kullanın:
Abonelik oluşturmak için şunları kullanın:
Maliyetleri yönetmek için şunları kullanın:
Portalı yapılandırmak için şunları kullanın:
Yerleşik ilke tanımları kiracı düzeyinde kaynaklardır, ancak kiracıda özel ilke tanımları dağıta değildir. Bir kaynağa yerleşik ilke tanımı atama örneği için bkz. tenantResourceId örneği.
Kapsamı ayarlama
Kapsamı kiracı olarak ayarlamak için şunları kullanın:
targetScope = 'tenant'
Gerekli erişim
Şablonu dağıtan sorumlu, kiracı kapsamında kaynak oluşturma izinlerine sahip olmalı. Sorumlu, dağıtım eylemlerini ( ) yürütme ve Microsoft.Resources/deployments/* şablonda tanımlanan kaynakları oluşturma iznine sahip olmalı. Örneğin, bir yönetim grubu oluşturmak için sorumlu kiracı kapsamında Katkıda Bulunan iznine sahip olması gerekir. Rol atamaları oluşturmak için sorumlusun Sahip iznine sahip olması gerekir.
Yöneticinin genel Azure Active Directory otomatik olarak rol atama izni yok. Şablon dağıtımlarını kiracı kapsamında etkinleştirmek için Genel Yöneticinin aşağıdaki adımları atılması gerekir:
Genel Yöneticinin rol atayamalarını için hesap erişimini yükseltin. Daha fazla bilgi için bkz. Tüm Azure aboneliklerini ve yönetim gruplarını yönetmek amacıyla erişimi yükseltme.
Şablonları dağıtması gereken sorumluya Sahip veya Katkıda Bulunan atayın.
New-AzRoleAssignment -SignInName "[userId]" -Scope "/" -RoleDefinitionName "Owner"az role assignment create --assignee "[userId]" --scope "/" --role "Owner"
Sorumlu artık şablonu dağıtmak için gerekli izinlere sahip.
Dağıtım komutları
Kiracı dağıtımları için komutlar, kaynak grubu dağıtımları için komutlardan farklıdır.
Azure CLI için az deployment tenant create kullanın:
az deployment tenant create \
--name demoTenantDeployment \
--location WestUS \
--template-file main.bicep
ARM şablonlarını dağıtmaya ilişkin dağıtım komutları ve seçenekleri hakkında daha ayrıntılı bilgi için bkz:
- ARM şablonları ve Azure CLI ile kaynakları dağıtma
- ARM şablonları ve dağıtım şablonlarıyla kaynakları Azure PowerShell
- Arm şablonlarını Cloud Shell
Dağıtım konumu ve adı
Kiracı düzeyinde dağıtımlar için dağıtım için bir konum sağlamalısınız. Dağıtımın konumu, dağıtan kaynakların konumdan ayrıdır. Dağıtım konumu, dağıtım verisi depolamanın nerede olduğunu belirtir. Abonelik ve yönetim grubu 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 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 dosyanın dağıtımı, main adlı varsayılan bir dağıtım adı oluşturur.
Her dağıtım adı için konum sabittir. Farklı bir konumda aynı adla mevcut bir dağıtım olduğunda bir konumda dağıtım oluşturamalısınız. Örneğin, centralus içinde deployment1 adıyla bir kiracı dağıtımı oluşturmanız, daha sonra deployment1 adıyla ancak westus konumunu kullanarak başka bir dağıtım oluşturamalısınız. Hata kodunu alırsanız, bu ad için farklı bir ad veya InvalidDeploymentLocation önceki dağıtımla aynı konumu kullanın.
Dağıtım kapsamları
Bir kiracıya dağıtım yapmak için kaynakları şu kaynaklara dağıtın:
- kiracı
- kiracı içindeki yönetim grupları
- Abonelik
- kaynak grupları
Uzantı kaynağının kapsamı, dağıtım hedefinden farklı bir hedef olarak kapsamlandı.
Şablonu dağıtan kullanıcının belirtilen kapsama erişimi olması gerekir.
Bu bölümde, farklı kapsamların nasıl belirt İşlenli olduğu gösterir. Bu farklı kapsamları tek bir şablonda birleştirebilirsiniz.
Kiracı kapsamı
Bicep dosyasında tanımlanan kaynaklar kiracıya uygulanır.
targetScope = 'tenant'
// create resource at tenant
resource mgName_resource 'Microsoft.Management/managementGroups@2020-02-01' = {
...
}
Kapsamdan yönetim grubuna
Kiracı içindeki bir yönetim grubunu hedeflemek için bir modül ekleyin. özelliğini ayarlamak için managementGroup işlevini scope kullanın. Yönetim grubu adını girin.
targetScope = 'tenant'
param managementGroupName string
// create resources at management group level
module 'module.bicep' = {
name: 'deployToMG'
scope: managementGroup(managementGroupName)
}
Kapsamdan aboneliğe
Kiracı içindeki bir aboneliği hedeflemek için bir modül ekleyin. Özelliğini ayarlamak için subscription işlevini scope kullanın. Abonelik kimliğini girin.
targetScope = 'tenant'
param subscriptionID string
// create resources at subscription level
module 'module.bicep' = {
name: 'deployToSub'
scope: subscription(subscriptionID)
}
Kapsamdan kaynak grubuna
Kiracı içindeki bir kaynak grubunu hedeflemek için bir modül ekleyin. özelliğini ayarlamak için resourceGroup işlevini scope kullanın. Abonelik kimliğini ve kaynak grubu adını girin.
targetScope = 'tenant'
param resourceGroupName string
param subscriptionID string
// create resources at resource group level
module 'module.bicep' = {
name: 'deployToRG'
scope: resourceGroup(subscriptionID, resourceGroupName)
}
Yönetim grubu oluşturma
Aşağıdaki şablon bir yönetim grubu oluşturur.
targetScope = 'tenant'
param mgName string = 'mg-${uniqueString(newGuid())}'
resource mgName_resource 'Microsoft.Management/managementGroups@2020-02-01' = {
name: mgName
properties: {}
}
Hesabınız kiracıya dağıtma iznine sahip yoksa, başka bir kapsama dağıtarak yönetim grupları oluşturabilirsiniz. Daha fazla bilgi için bkz. Yönetim grubu.
Rol atama
Aşağıdaki şablon, kiracı kapsamında bir rol atar.
targetScope = 'tenant'
@description('principalId if the user that will be given contributor access to the resourceGroup')
param principalId string
@description('roleDefinition for the assignment - default is owner')
param roleDefinitionId string = '8e3af657-a8ff-443c-a75c-2fe8c4bcb635'
var roleAssignmentName = guid(principalId, roleDefinitionId)
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2020-03-01-preview' = {
name: roleAssignmentName
properties: {
roleDefinitionId: tenantResourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionId)
principalId: principalId
}
}
Sonraki adımlar
Diğer kapsamlar hakkında bilgi edinmek için bkz: