Entender os recursos da atribuição de configuração de computador

Quando uma Azure Policy é atribuída, se estiver na categoria Guest Configuration, haverá metadados incluídos para descrever uma atribuição de convidado.

Um passo a passo em vídeo sobre este documento está disponível.

Você pode considerar a atribuição de convidado como um vínculo entre um computador e um cenário do Azure Policy. Por exemplo, o snippet de código abaixo associa a configuração de Linha de Base do Windows do Azure com a versão mínima 1.0.0 a qualquer computador no escopo da política.

"metadata": {
    "category": "Guest Configuration",
    "guestConfiguration": {
        "name": "AzureWindowsBaseline",
        "version": "1.*"
    }
  //additional metadata properties exist
}

Como o Azure Policy usa atribuições de configuração de computador

O serviço de configuração de máquina usa as informações dos metadados para criar automaticamente um recurso de auditoria para definições com AuditIfNotExists ou DeployIfNotExists efeitos de política. O tipo de recurso é Microsoft.GuestConfiguration/guestConfigurationAssignments. O Azure Policy usa a propriedade complianceStatus do recurso de atribuição de convidado para relatar o status de conformidade. Para obter mais informações, confira Obtendo dados de conformidade.

Exclusão de atribuições de convidado do Azure Policy

Quando uma atribuição da Azure Policy for excluída, se a política criar uma atribuição de configuração de máquina, a atribuição de configuração de máquina também será excluída.

Quando uma atribuição do Azure Policy é excluída, você precisa excluir manualmente todas as atribuições de configuração de máquina criada pela política. Você pode fazer isso navegando até a página de atribuições de convidados no portal do Azure e excluindo a atribuição lá.

Criar atribuições de configuração de computador manualmente

Você pode criar recursos de atribuição de convidados no Azure Resource Manager usando a Azure Policy ou qualquer SDK do cliente.

Um exemplo de modelo de implantação:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "apiVersion": "2021-01-25",
      "type": "Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments",
      "name": "myMachine/Microsoft.GuestConfiguration/myConfig",
      "location": "westus2",
      "properties": {
        "guestConfiguration": {
          "name": "myConfig",
          "contentUri": "https://mystorageaccount.blob.core.windows.net/mystoragecontainer/myConfig.zip?sv=SASTOKEN",
          "contentHash": "SHA256HASH",
          "version": "1.0.0",
          "assignmentType": "ApplyAndMonitor",
          "configurationParameter": {}
        }
      }
    }
  ]
}

A tabela a seguir descreve cada propriedade de recursos de atribuição de convidado.

Propriedade Descrição
name Nome da configuração dentro do arquivo MOF do pacote de conteúdo.
contentUri Caminho do URI HTTPS para o pacote de conteúdos (.zip).
contentHash Um valor do hash SHA256 do pacote de conteúdos, usado para verificar se ele não foi alterado.
version Versão do pacote de conteúdo. Usado somente em pacotes internos e não usado em pacotes de conteúdo personalizados.
assignmentType Comportamento da atribuição. Valores permitidos: Audit, ApplyandMonitor e ApplyandAutoCorrect.
configurationParameter Lista de tipo de recurso de DSC, nome e valor no arquivo MOF do pacote de conteúdo a ser substituído depois de ser baixado no computador.

Exclusão de atribuições de configuração de computador criadas manualmente

Você deve excluir manualmente as atribuições de configuração de máquina criadas por meio de qualquer abordagem manual (como a implantação de um modelo do Azure Resource Manager). A exclusão do recurso pai (máquina virtual ou computador habilitado para Arc) também exclui a atribuição de configuração de máquina.

Para excluir manualmente uma atribuição de configuração de computador, use o exemplo a seguir. Certifique-se de substituir todas as cadeias de caracteres de exemplo, indicadas por <> colchetes.

# First get details about the machine configuration assignment
$resourceDetails = @{
  ResourceGroupName = '<resource-group-name>'
  ResourceType      = 'Microsoft.Compute/virtualMachines/providers/guestConfigurationAssignments/'
  ResourceName      = '<vm-name>/Microsoft.GuestConfiguration'
  ApiVersion        = '2020-06-25'
}
$guestAssignment = Get-AzResource @resourceDetails

# Review details of the machine configuration assignment
$guestAssignment

# After reviewing properties of $guestAssignment to confirm
$guestAssignment | Remove-AzResource

Próximas etapas