Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Como um provedor de serviços, é provável que você tenha integrado vários locatários ao Azure Lighthouse. O Azure Lighthouse permite que os provedores de serviços realizem operações em escala em vários locatários ao mesmo tempo, tornando as tarefas de gerenciamento mais eficientes.
Este tópico explica como usar o Azure Policy para implantar uma definição de política e uma atribuição de política para vários locatários usando comandos do PowerShell. Neste exemplo, a definição de política garante que as contas de armazenamento estejam protegidas permitindo apenas o tráfego HTTPS. Você pode usar o mesmo processo geral para qualquer política que queira implantar.
Dica
Embora estejamos nos referindo a provedores de serviços e clientes neste tópico, as empresas que gerenciam vários locatários podem usar os mesmos processos.
Usar o Azure Resource Graph para fazer consultas em locatários do cliente
Você pode usar o Azure Resource Graph para consultar todas as assinaturas nos locatários do cliente que você gerencia. Neste exemplo, identificaremos todas as contas de armazenamento nessas assinaturas que atualmente não exigem o tráfego 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
Implantar uma política em vários locatários do cliente
O exemplo a seguir mostra como usar um modelo do Azure Resource Manager para implantar uma definição de política e atribuição de política entre assinaturas delegadas em vários locatários do cliente. Esta definição de política de exemplo exige que as contas de armazenamento usem o tráfego HTTPS. Ela impede a criação de novas contas de armazenamento que não estejam em conformidade. Todas as contas de armazenamento existentes sem a configuração são marcadas como fora de conformidade.
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
}
Observação
Embora você possa implantar políticas em vários locatários, atualmente não é possível exibir os detalhes de conformidade para recursos fora de conformidade nesses locatários.
Validar a implantação da política
Depois de implantar o modelo do Azure Resource Manager, confirme se a definição de política foi aplicada com êxito durante a tentativa de criação de uma conta de armazenamento com EnableHttpsTrafficOnly definido como false em uma das assinaturas delegadas. Devido à atribuição de política, não será possível criar essa conta de armazenamento.
New-AzStorageAccount -ResourceGroupName (New-AzResourceGroup -name policy-test -Location eastus -Force).ResourceGroupName `
-Name (get-random) `
-Location eastus `
-EnableHttpsTrafficOnly $false `
-SkuName Standard_LRS `
-Verbose
Limpar os recursos
Quando terminar, você poderá remover a definição de política e a atribuição criadas pela implantação.
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"
}
}
Próximas etapas
- Saiba mais sobre o Azure Policy.
- Saiba mais sobre as experiências de gerenciamento entre locatários.
- Saiba como implantar uma política que pode ser corrigida em uma assinatura delegada.