Correggere le risorse non conformi con Criteri di Azure

Le risorse non conformi ai criteri con gli effetti deployIfNotExists o di modifica possono essere inserite in uno stato conforme tramite Correzione. La correzione viene eseguita tramite attività di correzione che distribuiscono il modello deployIfNotExists o le operazioni di modifica dei criteri assegnati per le risorse e le sottoscrizioni esistenti, indipendentemente dal fatto che l'assegnazione si tratti di un gruppo di gestione, una sottoscrizione, un gruppo di risorse o una singola risorsa. Questo articolo illustra i passaggi necessari per comprendere ed eseguire il processo di correzione con i Criteri di Azure.

Funzionamento del controllo di accesso per la correzione

Quando Criteri di Azure avvia una distribuzione di modelli durante la valutazione dei criteri deployIfNotExists o modifica una risorsa durante la valutazione dei criteri di modifica, usa un'identità gestita associata all'assegnazione dei criteri. Le assegnazioni di criteri usano identità gestite per l'autorizzazione delle risorse di Azure. È possibile usare un'identità gestita assegnata dal sistema creata dal servizio criteri o un'identità assegnata dall'utente fornita dall'utente. L'identità gestita deve essere assegnata ai ruoli di Controllo degli accessi in base al ruolo (RBAC) minimi necessari per correggere le risorse. Se all'identità gestita non sono assegnati ruoli, viene visualizzato un errore nel portale durante l'assegnazione dei criteri o un'iniziativa. Quando si usa il portale, il servizio Criteri di Azure concede automaticamente all'identità gestita i ruoli elencati dopo l'inizio dell'assegnazione. Quando si usa un Software Development Kit (SDK) di Azure, i ruoli devono essere concessi manualmente all'identità gestita. La posizione dell'identità gestita non influisce sull'operazione con Criteri di Azure.

Nota

La modifica di una definizione di criteri non aggiorna automaticamente l'assegnazione o l'identità gestita associata.

La sicurezza della correzione può essere configurata tramite la procedura seguente:

Configurare la definizione dei criteri

Come prerequisito, la definizione dei criteri deve definire i ruoli che deployIfNotExists e modificare devono distribuire correttamente il contenuto del modello incluso. Non è necessaria alcuna azione per una definizione di criteri predefinita perché questi ruoli sono prepopolati. Per una definizione di criteri personalizzata, nella proprietà details aggiungere una proprietà roleDefinitionIds . Questa proprietà è una matrice di stringhe che corrispondono ai ruoli nell'ambiente in uso. Per un esempio completo, vedere gli esempi di deployIfNotExists o modify.

"details": {
    ...
    "roleDefinitionIds": [
        "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
        "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
    ]
}

La proprietà roleDefinitionIds usa l'identificatore di risorsa completo e non accetta il roleName breve del ruolo. Per ottenere l'ID per il ruolo "Collaboratore" nell'ambiente, usare il codice dell'interfaccia della riga di comando di Azure seguente:

az role definition list --name "Contributor"

Importante

Le autorizzazioni devono essere limitate al set più piccolo possibile quando si definiscono roleDefinitionIds all'interno di una definizione di criteri o si assegnano manualmente le autorizzazioni a un'identità gestita. Per altre procedure consigliate, vedere Suggerimenti sulle procedure consigliate per le identità gestite.

Configurare l'identità gestita

Ogni assegnazione Criteri di Azure può essere associata a una sola identità gestita. Tuttavia, l'identità gestita può essere assegnata a più ruoli. La configurazione viene eseguita in due passaggi: creare prima un'identità gestita assegnata dal sistema o assegnata dall'utente, quindi concedere i ruoli necessari.

Nota

Quando si crea un'identità gestita tramite il portale, i ruoli verranno concessi automaticamente all'identità gestita. Se roleDefinitionIds viene modificato successivamente nella definizione dei criteri, le nuove autorizzazioni devono essere concesse manualmente, anche nel portale.

Creare l'identità gestita

Quando si crea un'assegnazione usando il portale, Criteri di Azure può generare un'identità gestita assegnata dal sistema e concedergli i ruoli definiti nel roleDefinitionIds della definizione dei criteri. In alternativa, è possibile specificare un'identità gestita assegnata dall'utente che riceve la stessa assegnazione di ruolo.

Screenshot of a policy assignment creating a system-assigned managed identity in East US with Log Analytics Contributor permissions.

Per impostare un'identità gestita assegnata dal sistema nel portale:

  1. Nella scheda Correzione della visualizzazione assegnazione di creazione/modifica, in Tipi di identità gestita verificare che sia selezionata l'identità gestita assegnata dal sistema.

  2. Specificare il percorso in cui si trova l'identità gestita.

  3. Non assegnare un ambito per l'identità gestita assegnata dal sistema perché l'ambito verrà ereditato dall'ambito di assegnazione.

Per impostare un'identità gestita assegnata dall'utente nel portale:

  1. Nella scheda Correzione della visualizzazione assegnazione di creazione/modifica, in Tipi di identità gestita verificare che l'identità gestita assegnata dall'utente sia selezionata.

  2. Specificare l'ambito in cui è ospitata l'identità gestita. L'ambito dell'identità gestita non deve corrispondere all'ambito dell'assegnazione, ma deve trovarsi nello stesso tenant.

  3. In Identità assegnate dall'utente esistenti selezionare l'identità gestita.

Concedere autorizzazioni all'identità gestita tramite ruoli definiti

Importante

Se l'identità gestita non dispone delle autorizzazioni necessarie per eseguire l'attività di correzione richiesta, le autorizzazioni verranno concesse automaticamente solo tramite il portale. È possibile ignorare questo passaggio se si crea un'identità gestita tramite il portale.

Per tutti gli altri metodi, l'identità gestita dell'assegnazione deve essere concessa manualmente tramite l'aggiunta di ruoli. In caso contrario, la distribuzione della correzione avrà esito negativo.

Scenari di esempio che richiedono autorizzazioni manuali:

  • Se l'assegnazione viene creata tramite un Sdk (Software Development Kit) di Azure
  • Se una risorsa modificata da deployIfNotExists o modifica non rientra nell'ambito dell'assegnazione dei criteri
  • Se il modello accede alle proprietà sulle risorse all'esterno dell'ambito dell'assegnazione dei criteri

Esistono due modi per concedere all'identità gestita di un'assegnazione i ruoli definiti tramite il portale: usando controllo di accesso (IAM) o modificando i criteri o l'assegnazione dell'iniziativa e selezionando Salva.

Per aggiungere un ruolo all'identità gestita dell'assegnazione, seguire questa procedura:

  1. Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.

  2. Selezionare Assegnazioni sul lato sinistro della pagina Criteri di Azure.

  3. Individuare l'assegnazione con un'identità gestita e selezionare il nome.

  4. Individuare la proprietà ID assegnazione nella pagina di modifica. L'ID assegnazione sarà simile al seguente:

    /subscriptions/{subscriptionId}/resourceGroups/PolicyTarget/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5
    

    Il nome dell'identità gestita è l'ultima parte dell'ID di risorsa dell'assegnazione, in questo esempio 2802056bfc094dfb95d4d7a5. Copiare questa parte dell'ID di risorsa di assegnazione.

  5. Passare alla risorsa o al contenitore padre delle risorse (gruppo di risorse, sottoscrizione, gruppo di gestione) per il quale è necessario aggiungere la definizione di ruolo manualmente.

  6. Selezionare il collegamento Controllo di accesso (IAM) nella pagina delle risorse e quindi selezionare + Aggiungi assegnazione di ruolo nella parte superiore della pagina di controllo di accesso.

  7. Selezionare il ruolo appropriato corrispondente a un roleDefinitionId dalla definizione dei criteri. Lasciare Assegna accesso a impostato sul valore predefinito di 'utente, gruppo o applicazione di Azure AD'. Nella casella Seleziona incollare o digitare la parte dell'ID di risorsa di assegnazione individuata precedentemente. Al termine della ricerca, selezionare l'oggetto con lo stesso nome per selezionare ID e selezionare Salva.

Creare un'attività di correzione

Avviare il servizio Criteri di Azure nel portale di Azure facendo clic su Tutti i servizi e quindi cercando e selezionando Criteri.

Screenshot of searching for Policy in All Services.

Passaggio 1: Avviare la creazione dell'attività di correzione

Esistono tre modi per creare un'attività di correzione tramite il portale.

Opzione 1: Creare un'attività di correzione dalla pagina Correzione

  1. Nella parte sinistra della pagina di Criteri di Azure selezionare Correzione.

    Screenshot of the Remediation node on the Policy page.

  2. Tutte le assegnazioni di criteri deployIfNotExists e modifica vengono visualizzate nella scheda Criteri da correggere . Selezionare una con le risorse non conformi per aprire la pagina Attività Nuova correzione .

  3. Seguire i passaggi per specificare i dettagli delle attività di correzione.

Opzione 2: Creare un'attività di correzione da un'assegnazione di criteri non conforme

  1. Selezionare Conformità sul lato sinistro della pagina Criteri di Azure.

  2. Selezionare un criterio o un'assegnazione di iniziativa non conforme contenente gli effetti deployIfNotExists o modifica .

  3. Selezionare il pulsante Crea attività di correzione nella parte superiore della pagina per aprire la pagina Nuova attività di correzione.

  4. Seguire i passaggi per specificare i dettagli delle attività di correzione.

Opzione 3: Creare un'attività di correzione durante l'assegnazione dei criteri

Se la definizione di criteri o iniziative da assegnare ha un effetto deployIfNotExists o Modifica, la scheda Correzione della procedura guidata offre un'opzione Crea un'attività di correzione, che crea un'attività di correzione contemporaneamente all'assegnazione dei criteri.

Nota

Si tratta dell'approccio più semplificato per la creazione di un'attività di correzione ed è supportato per i criteri assegnati in una sottoscrizione. Per i criteri assegnati in un gruppo di gestione, le attività di correzione devono essere create usando l'opzione 1 o l'opzione 2 dopo che la valutazione ha determinato la conformità delle risorse.

  1. Dalla procedura guidata di assegnazione nel portale passare alla scheda Correzione . Selezionare la casella di controllo Crea un'attività di correzione.

  2. Se l'attività di correzione viene avviata da un'assegnazione di iniziativa, selezionare i criteri da correggere nell'elenco a discesa.

  3. Configurare l'identità gestita e compilare il resto della procedura guidata. L'attività di correzione verrà creata al momento della creazione dell'assegnazione.

Passaggio 2: Specificare i dettagli delle attività di correzione

Questo passaggio è applicabile solo quando si usa l'opzione 1 o l'opzione 2 per avviare la creazione di attività di correzione.

  1. Se l'attività di correzione viene avviata da un'assegnazione di iniziativa, selezionare i criteri da correggere nell'elenco a discesa. È possibile correggere un criterio deployIfNotExists o modificare tramite una singola attività di correzione alla volta.

  2. Facoltativamente, modificare le impostazioni di correzione nella pagina. Per informazioni sui controlli delle impostazioni, vedere Struttura delle attività di correzione.

  3. Nella stessa pagina filtrare le risorse da correggere usando i puntini di sospensione ambito per selezionare le risorse figlio da cui vengono assegnati i criteri (inclusi i singoli oggetti risorsa). Usare inoltre l'elenco a discesa Percorsi per filtrare ulteriormente le risorse.

    Screenshot of the Remediate node and the grid of resources to remediate.

  4. Avviare l'attività di correzione dopo che le risorse sono state filtrate selezionando Correggi. Si apre la scheda Attività di correzione della pagina di conformità dei criteri per mostrare lo stato di avanzamento delle attività. Le distribuzioni create dall'attività di correzione iniziano immediatamente.

    Screenshot of the Remediation tasks tab and progress of existing remediation tasks.

Passaggio 3: Tenere traccia dello stato dell'attività di correzione

  1. Passare alla scheda Attività di correzione nella pagina Correzione . Fare clic su un'attività di correzione per visualizzare i dettagli sul filtro usato, sullo stato corrente e su un elenco di risorse da correggere.

  2. Nella pagina Dettagli attività di correzione fare clic con il pulsante destro del mouse su una risorsa per visualizzare la distribuzione dell'attività di correzione o la risorsa. Alla fine della riga selezionare Eventi correlati per visualizzare i dettagli, ad esempio un messaggio di errore.

    Screenshot of the context menu for a resource on the Remediate task tab.

Le risorse distribuite tramite un'attività di correzione vengono aggiunte alla scheda Risorse distribuite nella pagina dei dettagli dell'assegnazione dei criteri.

Passaggi successivi