Implementatie Azure Policy gedelegeerde abonnementen op schaal
Als serviceprovider hebt u mogelijk meerdere tenants van klanten onboarding voor Azure Lighthouse. Azure Lighthouse kunnen serviceproviders bewerkingen op schaal in meerdere tenants tegelijk uitvoeren, waardoor beheertaken efficiënter worden.
In dit onderwerp ziet u hoe u Azure Policy een beleidsdefinitie en beleidstoewijzing voor meerdere tenants kunt implementeren met behulp van PowerShell-opdrachten. In dit voorbeeld zorgt de beleidsdefinitie ervoor dat opslagaccounts worden beveiligd door alleen HTTPS-verkeer toe te staan.
Tip
Hoewel we in dit onderwerp verwijzen naar serviceproviders en klanten, kunnen ondernemingen die meerdere tenants beheren dezelfde processen gebruiken.
Azure Resource Graph gebruiken om query's uit te voeren op tenants van klanten
U kunt Azure Resource Graph om een query uit te voeren voor alle abonnementen in tenants van klanten die u beheert. In dit voorbeeld identificeren we opslagaccounts in deze abonnementen waarvoor momenteel geen HTTPS-verkeer is vereist.
$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
Een beleid implementeren in meerdere tenants van klanten
In het onderstaande voorbeeld ziet u hoe u een Azure Resource Manager sjabloon gebruikt om een beleidsdefinitie en beleidstoewijzing te implementeren voor gedelegeerde abonnementen in meerdere tenants van klanten. Deze beleidsdefinitie vereist dat alle opslagaccounts HTTPS-verkeer gebruiken, waardoor het maken van nieuwe opslagaccounts die niet voldoen, wordt voorkomen en bestaande opslagaccounts zonder de instelling als niet-compatibel worden markeert.
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
}
Notitie
Hoewel u beleidsregels voor meerdere tenants kunt implementeren, kunt u momenteel geen nalevingsdetails weergeven voor niet-compatibele resources in deze tenants.
De beleidsimplementatie valideren
Nadat u de Azure Resource Manager-sjabloon hebt geïmplementeerd, kunt u bevestigen dat de beleidsdefinitie is toegepast door te proberen een opslagaccount te maken met EnableHttpsTrafficOnly ingesteld op false in een van uw gedelegeerde abonnementen. Vanwege de beleidstoewijzing kunt u dit opslagaccount niet maken.
New-AzStorageAccount -ResourceGroupName (New-AzResourceGroup -name policy-test -Location eastus -Force).ResourceGroupName `
-Name (get-random) `
-Location eastus `
-EnableHttpsTrafficOnly $false `
-SkuName Standard_LRS `
-Verbose
Resources opschonen
Wanneer u klaar bent, verwijdert u de beleidsdefinitie en toewijzing die door de implementatie zijn gemaakt.
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"
}
}
Volgende stappen
- Meer informatie over Azure Policy.
- Meer informatie over beheerervaring in meerdere tenants.
- Meer informatie over het implementeren van een beleid dat kan worden verwijderd binnen een gedelegeerd abonnement.