Temsilci Azure İlkesi büyük ölçekte aboneliklere dağıtım
Hizmet sağlayıcısı olarak, hizmetine birden çok müşteri kiracısı Azure Lighthouse. Azure Lighthouse, hizmet sağlayıcılarının aynı anda birden fazla kiracıda büyük ölçekte işlem gerçekleştirmelerini ve böylece yönetim görevlerini daha verimli hale getirir.
Bu konu başlığında, PowerShell Azure İlkesi birden çok kiracıya ilke tanımı ve ilke ataması dağıtmak için Azure İlkesi'nin nasıl kullanıldığı açıklanmıştır. Bu örnekte ilke tanımı, depolama hesaplarının yalnızca HTTPS trafiğine izin vererek güvenliğinin sağlanmasına olanak sağlar.
İpucu
Bu konu başlığında hizmet sağlayıcılarına ve müşterilere başvurulsa da, birden çok kiracıyı yöneten kuruluşlar aynı işlemleri kullanabilir.
Müşteri kiracıları arasında Graph için Azure Resource Graph'i kullanma
Azure Resource Graph'i kullanarak, sizin yönetmeniz gereken müşteri kiracılarında tüm abonelikleri sorguabilirsiniz. Bu örnekte, bu aboneliklerde şu anda HTTPS trafiği gerektirmeyen tüm depolama hesaplarını tanımlayacağız.
$MspTenant = "insert your managing tenantId here"
$subs = Get-AzSubscription
$ManagedSubscriptions = Search-AzGraph -Query "ResourceContainers | where type == 'microsoft.resources/subscriptions' | where tenantId != '$($mspTenant)' | project name, subscriptionId, tenantId" -subscription $subs.subscriptionId
Search-AzGraph -Query "Resources | where type =~ 'Microsoft.Storage/storageAccounts' | project name, location, subscriptionId, tenantId, properties.supportsHttpsTrafficOnly" -subscription $ManagedSubscriptions.subscriptionId | convertto-json
İlkeyi birden çok müşteri kiracısına dağıtma
Aşağıdaki örnekte, birden çok müşteri kiracısına Azure Resource Manager aboneliklere ilke tanımı ve ilke ataması dağıtmak için bir ilke şablonu kullanma gösterilmiştir. Bu ilke tanımı, tüm depolama hesaplarının HTTPS trafiğini kullanmasını gerektirir, böylece uyumlu olmayan yeni depolama hesaplarının oluşturulması önlenebilir ve ayar uyumlu değil olarak işaretlenebilir.
Write-Output "In total, there are $($ManagedSubscriptions.Count) delegated customer subscriptions to be managed"
foreach ($ManagedSub in $ManagedSubscriptions)
{
Select-AzSubscription -SubscriptionId $ManagedSub.subscriptionId
New-AzSubscriptionDeployment -Name mgmt `
-Location eastus `
-TemplateUri "https://raw.githubusercontent.com/Azure/Azure-Lighthouse-samples/master/templates/policy-enforce-https-storage/enforceHttpsStorage.json" `
-AsJob
}
Not
İlkeleri birden çok kiracıya dağıtabilirsiniz ancak şu anda bu kiracılarda uyumlu olmayan kaynaklar için uyumluluk ayrıntılarını görüntüleyesiniz.
İlke dağıtımını doğrulama
Azure Resource Manager şablonunu dağıttıktan sonra, temsilci aboneliklerinden biri için EnableHttpsTrafficOnly olarak ayarlanmış bir depolama hesabı oluşturma girişiminde bulunduktan sonra ilke tanımının başarıyla uygulandığını onaylayın. İlke ataması nedeniyle bu depolama hesabını oluşturamazsınız.
New-AzStorageAccount -ResourceGroupName (New-AzResourceGroup -name policy-test -Location eastus -Force).ResourceGroupName `
-Name (get-random) `
-Location eastus `
-EnableHttpsTrafficOnly $false `
-SkuName Standard_LRS `
-Verbose
Kaynakları temizleme
Bitirdikten sonra dağıtım tarafından oluşturulan ilke tanımını ve atamayı kaldırın.
foreach ($ManagedSub in $ManagedSubscriptions)
{
select-azsubscription -subscriptionId $ManagedSub.subscriptionId
Remove-AzSubscriptionDeployment -Name mgmt -AsJob
$Assignment = Get-AzPolicyAssignment | where-object {$_.Name -like "enforce-https-storage-assignment"}
if ([string]::IsNullOrEmpty($Assignment))
{
Write-Output "Nothing to clean up - we're done"
}
else
{
Remove-AzPolicyAssignment -Name 'enforce-https-storage-assignment' -Scope "/subscriptions/$($ManagedSub.subscriptionId)" -Verbose
Write-Output "Deployment has been deleted - we're done"
}
}
Sonraki adımlar
- hakkında bilgi Azure İlkesi.
- Kiracılar arası yönetim deneyimleri hakkında bilgi edinin.
- Temsilci aboneliği içinde düzeltilen bir ilkeyi dağıtmayı öğrenin.