Wdrażanie usługi Azure Policy w subskrypcjach delegowanych na dużą skalę
Jako dostawca usług możesz dołączyć wiele dzierżaw klientów do usługi Azure Lighthouse. Usługa Azure Lighthouse umożliwia dostawcom usług wykonywanie operacji w skali wielu dzierżaw jednocześnie, co usprawnia wykonywanie zadań związanych z zarządzaniem.
W tym temacie wyjaśniono, jak za pomocą usługi Azure Policy wdrożyć definicję zasad i przypisanie zasad w wielu dzierżawach przy użyciu poleceń programu PowerShell. W tym przykładzie definicja zasad gwarantuje, że konta magazynu są zabezpieczone, zezwalając tylko na ruch HTTPS. Możesz użyć tego samego ogólnego procesu dla wszystkich zasad, które chcesz wdrożyć.
Napiwek
Chociaż w tym temacie odwołujemy się do dostawców usług i klientów, przedsiębiorstwa zarządzające wieloma dzierżawami mogą używać tych samych procesów.
Używanie usługi Azure Resource Graph do wykonywania zapytań w dzierżawach klientów
Usługa Azure Resource Graph umożliwia wykonywanie zapytań dotyczących wszystkich subskrypcji w zarządzanych dzierżawach klientów. W tym przykładzie zidentyfikujemy wszystkie konta magazynu w tych subskrypcjach, które obecnie nie wymagają ruchu 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
Wdrażanie zasad w wielu dzierżawach klientów
W poniższym przykładzie pokazano, jak za pomocą szablonu usługi Azure Resource Manager wdrożyć definicję zasad i przypisanie zasad w ramach delegowanych subskrypcji w wielu dzierżawach klientów. Ta definicja zasad wymaga, aby wszystkie konta magazynu używały ruchu HTTPS. Zapobiega tworzeniu nowych kont magazynu, które nie są zgodne. Wszystkie istniejące konta magazynu bez ustawienia są oznaczone jako niezgodne.
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
}
Uwaga
Zasady można wdrażać w wielu dzierżawach, ale obecnie nie można wyświetlić szczegółów zgodności dla niezgodnych zasobów w tych dzierżawach.
Weryfikowanie wdrożenia zasad
Po wdrożeniu szablonu usługi Azure Resource Manager upewnij się, że definicja zasad została pomyślnie zastosowana, próbując utworzyć konto magazynu z ustawieniem EnableHttpsTrafficOnly na wartość false w jednej z delegowanych subskrypcji. Ze względu na przypisanie zasad nie można utworzyć tego konta magazynu.
New-AzStorageAccount -ResourceGroupName (New-AzResourceGroup -name policy-test -Location eastus -Force).ResourceGroupName `
-Name (get-random) `
-Location eastus `
-EnableHttpsTrafficOnly $false `
-SkuName Standard_LRS `
-Verbose
Czyszczenie zasobów
Po zakończeniu możesz usunąć definicję zasad i przypisanie utworzone przez wdrożenie.
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"
}
}
Następne kroki
- Dowiedz się więcej o usłudze Azure Policy.
- Dowiedz się więcej o środowiskach zarządzania między dzierżawami.
- Dowiedz się, jak wdrożyć zasady, które można skorygować w ramach subskrypcji delegowanej.