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