Развертывание службы "Политика Azure" для делегированных подписок в масштабе
Как поставщик услуг вы можете подключить несколько клиентов к Azure Lighthouse. Azure Lighthouse позволяет поставщикам служб выполнять операции одновременно в нескольких клиентах, что делает задачи управления более эффективными.
В этом разделе описано, как с помощью Политики Azure развернуть определение и назначение политики в нескольких арендаторах с использованием команд PowerShell. В этом примере определение политики обеспечивает защиту учетных записей хранения, разрешая только HTTPS-трафик.
Совет
Хотя в этом разделе мы будем упоминать поставщиков услуг и их заказчиков, предприятия, управляющие несколькими клиентами, могут использовать такие же процессы.
Отправка запросов между клиентами с помощью Azure Resource Graph
Azure Resource Graph позволяет отправлять запросы во всех подписках арендаторов клиентов, которыми вы управляете. Приведенный ниже пример выявляет учетные записи хранения в этих подписках, которые в настоящее время не требуют трафика HTTPS.
$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
Развертывание политики для нескольких клиентов
В приведенном ниже примере показано, как с помощью шаблона Azure Resource Manager развернуть определение и назначения политики между делегированными подписками в нескольких клиентах. Это определение политики требует, чтобы все учетные записи хранения использовали трафик HTTPS. Это предотвращает создание новых учетных записей хранения, которые не соответствуют требованиям. Все существующие учетные записи хранения без этого параметра помечаются как несоответствующие.
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
}
Примечание
Хотя вы можете развертывать политики для нескольких клиентов, в настоящее время вы не можете просматривать сведения о соответствии для несоответствующих ресурсов в этих клиентах.
Проверка развертывания политики
Развернув шаблон Azure Resource Manager, убедитесь, что определение политики успешно применено, попытавшись создать учетную запись хранения с параметром EnableHttpsTrafficOnly в одной из делегированных подписок. Из-за назначения политики вы не сможете создать эту учетную запись хранения.
New-AzStorageAccount -ResourceGroupName (New-AzResourceGroup -name policy-test -Location eastus -Force).ResourceGroupName `
-Name (get-random) `
-Location eastus `
-EnableHttpsTrafficOnly $false `
-SkuName Standard_LRS `
-Verbose
Очистка ресурсов
По завершении удалите определение и назначение политики, созданные при развертывании.
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"
}
}
Дальнейшие действия
- Сведения о службе Политика Azure.
- Узнайте больше об интерфейсах управления для различных клиентов.
- Развертывание политики, которую можно исправить, в делегированной подписке.