Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som tjänstleverantör kan du ha anlitat flera kundklientorganisationer hos Azure Lighthouse. Med Azure Lighthouse kan tjänstleverantörer utföra åtgärder i stor skala över flera klientorganisationer samtidigt, vilket gör hanteringsuppgifter effektivare.
Det här avsnittet beskriver hur du använder Azure Policy för att distribuera en principdefinition och principtilldelning mellan flera klienter med hjälp av PowerShell-kommandon. I det här exemplet säkerställer principdefinitionen att lagringskonton skyddas genom att endast tillåta HTTPS-trafik. Du kan använda samma allmänna process för alla principer som du vill distribuera.
Tips
Även om vi refererar till tjänsteleverantörer och kunder i det här avsnittet kan företag som hanterar flera klienter använda samma processer.
Använd Azure Resource Graph för att utföra frågor över kundklienter
Du kan använda Azure Resource Graph för att köra frågor över alla prenumerationer hos de kunders hyrda enheter som du hanterar. I det här exemplet identifierar vi alla lagringskonton i dessa prenumerationer som för närvarande inte kräver HTTPS-trafik.
$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
Distribuera en policy över flera kundorganisationer
I följande exempel visas hur du använder en Azure Resource Manager-mall för att distribuera en principdefinition och principtilldelning mellan delegerade prenumerationer i flera kundklientorganisationer. Den här principdefinitionen kräver att alla lagringskonton använder HTTPS-trafik. Det förhindrar att nya lagringskonton skapas som inte uppfyller kraven. Alla befintliga lagringskonton utan inställningen markeras som inkompatibla.
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
}
Anteckning
Du kan distribuera principer över flera klienter, men för närvarande kan du inte visa kompatibilitetsinformation för icke-kompatibla resurser i dessa klientorganisationer.
Verifiera policyimplementeringen
När du har distribuerat Azure Resource Manager-mallen bekräftar du att principdefinitionen har tillämpats genom att försöka skapa ett lagringskonto med EnableHttpsTrafficOnly inställt på false i en av dina delegerade prenumerationer. På grund av principtilldelningen bör du inte kunna skapa det här lagringskontot.
New-AzStorageAccount -ResourceGroupName (New-AzResourceGroup -name policy-test -Location eastus -Force).ResourceGroupName `
-Name (get-random) `
-Location eastus `
-EnableHttpsTrafficOnly $false `
-SkuName Standard_LRS `
-Verbose
Rensa resurser
När du är klar kan du ta bort principdefinitionen och tilldelningen som skapats av distributionen.
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"
}
}
Nästa steg
- Läs mer om Azure Policy.
- Lär dig mer om hanteringsupplevelser mellan klienter.
- Lär dig hur du distribuerar en princip som kan åtgärdas i en delegerad prenumeration.