Esercitazione: Proteggere le nuove risorse con blocchi delle risorse in Azure BlueprintsTutorial: Protect new resources with Azure Blueprints resource locks

Il blocco delle risorse di Azure Blueprints consente di proteggere le risorse appena distribuite da eventuali manomissioni, anche da parte di un account con il ruolo Proprietario.With Azure Blueprints resource locks, you can protect newly deployed resources from being tampered with, even by an account with the Owner role. È possibile aggiungere questo tipo di protezione per le risorse create da un elemento del modello di Resource Manager nelle definizioni del progetto.You can add this protection in the blueprint definitions of resources created by a Resource Manager template artifact.

In questa esercitazione si completeranno i passaggi seguenti:In this tutorial, you'll complete these steps:

  • Creare una definizione di progettoCreate a blueprint definition
  • Contrassegnare la definizione di progetto come pubblicatoMark your blueprint definition as Published
  • Assegnare la definizione del progetto a una sottoscrizione esistenteAssign your blueprint definition to an existing subscription
  • Esaminare il nuovo gruppo di risorseInspect the new resource group
  • Annullare l'assegnazione progetto per rimuovere i blocchiUnassign the blueprint to remove the locks

PrerequisitiPrerequisites

Per completare l'esercitazione, è necessaria una sottoscrizione di Azure.To complete this tutorial, you need an Azure subscription. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Creare una definizione di progettoCreate a blueprint definition

Creare prima la definizione di progetto.First, create the blueprint definition.

  1. Selezionare Tutti i servizi nel riquadro a sinistra.Select All services in the left pane. Cercare e selezionare Progetti.Search for and select Blueprints.

  2. Nella pagina Introduzione a sinistra selezionare Crea in Creare un progetto.On the Getting started page on the left, select Create under Create a blueprint.

  3. Trovare l'esempio di progetto Progetto vuoto nella parte superiore della pagina.Find the Blank Blueprint blueprint sample at the top of the page. Selezionare Inizia con un progetto vuoto.Select Start with blank blueprint.

  4. Immettere queste informazioni nella scheda Nozioni di base:Enter this information on the Basics tab:

    • Nome progetto: specificare un nome per la copia dell'esempio di progetto.Blueprint name: Provide a name for your copy of the blueprint sample. Per questa esercitazione si userà il nome locked-storageaccount.For this tutorial, we'll use the name locked-storageaccount.
    • Descrizione del progetto: aggiungere una descrizione per la definizione di progetto.Blueprint description: Add a description for the blueprint definition. Usare Per il test del blocco delle risorse del progetto sulle risorse distribuite.Use For testing blueprint resource locking on deployed resources.
    • Posizione della definizione: selezionare i puntini di sospensione (...) e quindi selezionare il gruppo di gestione o la sottoscrizione in cui salvare la definizione del progetto.Definition location: Select the ellipsis button (...) and then select the management group or subscription to save your blueprint definition to.
  5. Selezionare la scheda Artefatti nella parte superiore della pagina oppure selezionare Avanti: Elementi nella parte inferiore della pagina.Select the Artifacts tab at the top of the page, or select Next: Artifacts at the bottom of the page.

  6. Aggiungere un gruppo di risorse al livello di sottoscrizione:Add a resource group at the subscription level:

    1. Selezionare la riga Aggiungi artefatto sotto la voce Sottoscrizione.Select the Add artifact row under Subscription.
    2. Selezionare Gruppo di risorse in Tipo di artefatto.Select Resource Group under Artifact type.
    3. Impostare il Nome visualizzato dell'artefatto su RGtoLock.Set the Artifact display name to RGtoLock.
    4. Lasciare vuote le caselle Nome gruppo di risorse e Località, ma assicurarsi che sia selezionata la casella di controllo per ogni proprietà in modo che i parametri siano parametri dinamici.Leave the Resource Group Name and Location boxes blank, but make sure the check box is selected on each property to make them dynamic parameters.
    5. Selezionare Aggiungi per aggiungere l'artefatto al progetto.Select Add to add the artifact to the blueprint.
  7. Aggiungere un modello nel gruppo di risorse:Add a template under the resource group:

    1. Selezionare la riga Aggiungi artefatto sotto la voce RGtoLock.Select the Add artifact row under the RGtoLock entry.
    2. Selezionare Modello di Azure Resource Manager in Tipo di artefatto, impostare Nome visualizzato dell'artefatto su Account di archiviazione e lasciare vuoto il campo Descrizione.Select Azure Resource Manager template under Artifact type, set Artifact display name to StorageAccount, and leave Description blank.
    3. Nella scheda Modello incollare il modello di Resource Manager seguente nella casella dell'editor.On the Template tab, paste the following Resource Manager template into the editor box. Dopo aver incollato il modello, selezionare Aggiungi per aggiungere l'artefatto al progetto.After you paste in the template, select Add to add the artifact to the blueprint.
    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "storageAccountType": {
                "type": "string",
                "defaultValue": "Standard_LRS",
                "allowedValues": [
                    "Standard_LRS",
                    "Standard_GRS",
                    "Standard_ZRS",
                    "Premium_LRS"
                ],
                "metadata": {
                    "description": "Storage Account type"
                }
            }
        },
        "variables": {
            "storageAccountName": "[concat('store', uniquestring(resourceGroup().id))]"
        },
        "resources": [{
            "type": "Microsoft.Storage/storageAccounts",
            "name": "[variables('storageAccountName')]",
            "location": "[resourceGroup().location]",
            "apiVersion": "2018-07-01",
            "sku": {
                "name": "[parameters('storageAccountType')]"
            },
            "kind": "StorageV2",
            "properties": {}
        }],
        "outputs": {
            "storageAccountName": {
                "type": "string",
                "value": "[variables('storageAccountName')]"
            }
        }
    }
    
  8. Selezionare Salva bozza nella parte inferiore della pagina.Select Save Draft at the bottom of the page.

Questo passaggio crea la definizione del progetto nel gruppo di gestione o nella sottoscrizione selezionata.This step creates the blueprint definition in the selected management group or subscription.

Quando nel portale viene visualizzata la notifica Il salvataggio della definizione di progetto è riuscito, proseguire con il passaggio successivo.After the Saving blueprint definition succeeded portal notification appears, go to the next step.

Pubblicare la definizione di progettoPublish the blueprint definition

La definizione del progetto è stata creata nell'ambiente.Your blueprint definition has now been created in your environment. Ma poiché è stata creata in modalità Bozza, è necessario pubblicarla per poterla assegnare e distribuire.It's created in Draft mode and must be published before it can be assigned and deployed.

  1. Selezionare Tutti i servizi nel riquadro a sinistra.Select All services in the left pane. Cercare e selezionare Progetti.Search for and select Blueprints.

  2. Selezionare la pagina Definizioni di progetto a sinistra.Select the Blueprint definitions page on the left. Usare i filtri per trovare la definizione del progetto locked-storageaccount e selezionarla.Use the filters to find the locked-storageaccount blueprint definition, and then select it.

  3. Selezionare Pubblica progetto nella parte superiore della pagina.Select Publish blueprint at the top of the page. Nel nuovo riquadro a destra immettere 1.0 come Versione.In the new pane on the right, enter 1.0 as the Version. Questa proprietà è utile se si apporta una modifica in un secondo momento.This property is useful if you make a change later. In Modifica le note specificare ad esempio Prima versione pubblicata per bloccare le risorse distribuite del progetto.Enter Change notes, such as First version published for locking blueprint deployed resources. Quindi selezionare Pubblica nella parte inferiore della pagina.Then select Publish at the bottom of the page.

Questo passaggio rende possibile l'assegnazione del progetto a una sottoscrizione.This step makes it possible to assign the blueprint to a subscription. Dopo aver pubblicato la definizione di progetto, è ancora possibile apportare modifiche.After the blueprint definition is published, you can still make changes. Se si apportano modifiche, è necessario pubblicare la definizione con un nuovo valore di versione, in modo da tenere traccia delle differenze tra le versioni della stessa definizione di progetto.If you make changes, you need to publish the definition with a new version value to track differences between versions of the same blueprint definition.

Quando nel portale viene visualizzata la notifica La pubblicazione della definizione di progetto è riuscita, proseguire con il passaggio successivo.After the Publishing blueprint definition succeeded portal notification appears, go to the next step.

Assegnare la definizione di progettoAssign the blueprint definition

Dopo aver pubblicato la definizione di progetto, è possibile assegnarla a una sottoscrizione all'interno del gruppo di gestione in cui è stata salvata.After the blueprint definition is published, you can assign it to a subscription within the management group where you saved it. In questo passaggio vengono specificati i parametri che rendono univoca ogni distribuzione della definizione del progetto.In this step, you provide parameters to make each deployment of the blueprint definition unique.

  1. Selezionare Tutti i servizi nel riquadro a sinistra.Select All services in the left pane. Cercare e selezionare Progetti.Search for and select Blueprints.

  2. Selezionare la pagina Definizioni di progetto a sinistra.Select the Blueprint definitions page on the left. Usare i filtri per trovare la definizione del progetto locked-storageaccount e selezionarla.Use the filters to find the locked-storageaccount blueprint definition, and then select it.

  3. Selezionare Assegna progetto nella parte superiore della pagina della definizione di progetto.Select Assign blueprint at the top of the blueprint definition page.

  4. Specificare i valori dei parametri per l'assegnazione del progetto:Provide the parameter values for the blueprint assignment:

    • Nozioni di baseBasics

      • Sottoscrizioni: selezionare una o più sottoscrizioni presenti nel gruppo di gestione in cui è stata salvata la definizione di progetto.Subscriptions: Select one or more of the subscriptions that are in the management group where you saved your blueprint definition. Se si selezionano più sottoscrizioni, viene creata un'assegnazione per ogni sottoscrizione usando i parametri immessi.If you select more than one subscription, an assignment will be created for each subscription, using the parameters you enter.
      • Nome dell'assegnazione: il nome viene prepopolato in base al nome della definizione di progetto.Assignment name: The name is pre-populated based on the name of the blueprint definition. Questa assegnazione dovrà rappresentare il blocco del nuovo gruppo di risorse, quindi modificare il nome dell'assegnazione in assignment-locked-storageaccount-TestingBPLockss.We want this assignment to represent locking the new resource group, so change the assignment name to assignment-locked-storageaccount-TestingBPLocks.
      • Località: selezionare un'area in cui creare l'identità gestita.Location: Select a region in which to create the managed identity. Azure Blueprint usa questa identità gestita per distribuire tutti gli elementi nel progetto assegnato.Azure Blueprint uses this managed identity to deploy all artifacts in the assigned blueprint. Per altre informazioni, vedere Managed identities for Azure resources (Identità gestite per risorse di Azure).To learn more, see managed identities for Azure resources. Per questa esercitazione selezionare Stati Uniti orientali 2.For this tutorial, select East US 2.
      • Versione della definizione di progetto: selezionare la versione pubblicata 1.0 della definizione di progetto.Blueprint definition version: Select the published version 1.0 of the blueprint definition.
    • Blocca assegnazioneLock Assignment

      Selezionare la modalità di blocco del progetto Sola lettura.Select the Read Only blueprint lock mode. Per altre informazioni, vedere Blueprints resource locking (Blocco delle risorse del progetto).For more information, see blueprints resource locking.

    • Identità gestitaManaged Identity

      Usare l'opzione predefinita: Assegnata dal sistema.Use the default option: System assigned. Per altre informazioni, vedere Informazioni sulle identità gestite per le risorse di Azure.For more information, see managed identities.

    • Parametri artefattoArtifact parameters

      I parametri definiti in questa sezione si applicano all'artefatto in cui sono definiti.The parameters defined in this section apply to the artifact under which they're defined. Si tratta di parametri dinamici, in quanto vengono definiti durante l'assegnazione del progetto.These parameters are dynamic parameters because they're defined during the assignment of the blueprint. Per ogni artefatto impostare il parametro sul valore definito nella colonna Valore.For each artifact, set the parameter value to what you see in the Value column.

      Nome dell'artefattoArtifact name Tipo di artefattoArtifact type Nome parametroParameter name ValoreValue DESCRIZIONEDescription
      Gruppo di risorse RGtoLockRGtoLock resource group Gruppo di risorseResource group NOMEName TestingBPLocksTestingBPLocks Definisce il nome del nuovo gruppo di risorse a cui applicare i blocchi del progetto.Defines the name of the new resource group to apply blueprint locks to.
      Gruppo di risorse RGtoLockRGtoLock resource group Gruppo di risorseResource group LocalitàLocation Stati Uniti occidentali 2West US 2 Definisce la posizione del nuovo gruppo di risorse a cui applicare i blocchi del progetto.Defines the location of the new resource group to apply blueprint locks to.
      StorageAccountStorageAccount Modello di Resource ManagerResource Manager template storageAccountType (Account di archiviazione)storageAccountType (StorageAccount) Standard_GRSStandard_GRS SKU di archiviazione.The storage SKU. Il valore predefinito è Standard_LRS.The default value is Standard_LRS.
  5. Dopo avere immesso tutti i parametri, selezionare Assegna in fondo alla pagina.After you've entered all parameters, select Assign at the bottom of the page.

Questo passaggio distribuisce le risorse definite e configura l'opzione selezionata in Blocca assegnazione.This step deploys the defined resources and configures the selected Lock Assignment. L'applicazione dei blocchi dei progetti può richiedere fino a 30 minuti.It can take up to 30 minutes to apply blueprint locks.

Quando nel portale viene visualizzata la notifica L'assegnazione della definizione di progetto è riuscita, proseguire con il passaggio successivo.After the Assigning blueprint definition succeeded portal notification appears, go to the next step.

Esaminare le risorse distribuite per l'assegnazioneInspect resources deployed by the assignment

L'assegnazione crea il gruppo di risorse TestingBPLocks e l'account di archiviazione distribuito dall'artefatto del modello di Resource Manager.The assignment creates the resource group TestingBPLocks and the storage account deployed by the Resource Manager template artifact. Il nuovo gruppo di risorse e lo stato di blocco selezionato vengono visualizzati nella pagina dei dettagli dell'assegnazione.The new resource group and the selected lock state are shown on the assignment details page.

  1. Selezionare Tutti i servizi nel riquadro a sinistra.Select All services in the left pane. Cercare e selezionare Progetti.Search for and select Blueprints.

  2. Selezionare la pagina Progetti assegnati a sinistra.Select the Assigned blueprints page on the left. Usare i filtri per trovare l'assegnazione del progetto assignment-locked-storageaccount-TestingBPLocks e selezionarla.Use the filters to find the assignment-locked-storageaccount-TestingBPLocks blueprint assignment, and then select it.

    In questa pagina è possibile vedere l'assegnazione riuscita e le risorse distribuite insieme al nuovo stato di blocco del progetto.From this page, we can see that the assignment succeeded and that the resources were deployed with the new blueprint lock state. Se l'assegnazione viene aggiornata, nell'elenco a discesa Operazione di assegnazione vengono visualizzati i dettagli della distribuzione di ogni versione di definizione.If the assignment is updated, the Assignment operation drop-down shows details about the deployment of each definition version. È possibile selezionare il gruppo di risorse per aprire la pagina delle proprietà.You can select the resource group to open the property page.

  3. Selezionare il gruppo di risorse TestingBPLocks.Select the TestingBPLocks resource group.

  4. Selezionare la pagina Controllo di accesso (IAM) a sinistra.Select the Access control (IAM) page on the left. Selezionare quindi la scheda Assegnazioni di ruolo.Then select the Role assignments tab.

    Qui è possibile vedere che l'assegnazione di progetto assignment-locked-storageaccount-TestingBPLocks ha il ruolo ProprietarioHere we see that the assignment-locked-storageaccount-TestingBPLocks blueprint assignment has the Owner role. poiché questo ruolo è stato usato per distribuire e bloccare il gruppo di risorse.It has this role because this role was used to deploy and lock the resource group.

  5. Selezionare la scheda Assegnazioni di rifiuto.Select the Deny assignments tab.

    L'assegnazione del progetto ha creato un'assegnazione di rifiuto nel gruppo di risorse distribuito per rafforzare la modalità di blocco del progetto Sola lettura.The blueprint assignment created a deny assignment on the deployed resource group to enforce the Read Only blueprint lock mode. L'assegnazione di rifiuto impedisce agli utenti che dispongono di diritti appropriati nella scheda Assegnazioni di ruolo di eseguire azioni specifiche.The deny assignment prevents someone with appropriate rights on the Role assignments tab from taking specific actions. L'assegnazione di rifiuto si applica a tutte le entità.The deny assignment affects All principals.

    Per informazioni su come escludere un'entità di sicurezza da un'assegnazione di rifiuto, vedere l'articolo sul blocco risorse di Azure Blueprints.For information about excluding a principal from a deny assignment, see blueprints resource locking.

  6. Selezionare l'assegnazione di rifiuto e quindi selezionare la pagina Autorizzazioni negate a sinistra.Select the deny assignment, and then select the Denied Permissions page on the left.

    L'assegnazione di rifiuto impedisce tutte le operazioni con la configurazione * e Action, ma consente l'accesso in lettura escludendo */read tramite NotActions.The deny assignment is preventing all operations with the * and Action configuration, but it allows read access by excluding */read via NotActions.

  7. Nella struttura di navigazione del portale di Azure selezionare TestingBPLocks - Controllo di accesso (IAM) .In the Azure portal breadcrumb, select TestingBPLocks - Access control (IAM). Selezionare la pagina Panoramica a sinistra e quindi il pulsante Elimina gruppo di risorse.Then select the Overview page on the left and then the Delete resource group button. Immettere il nome TestingBPLocks per confermare l'eliminazione e quindi selezionare Elimina in fondo al riquadro.Enter the name TestingBPLocks to confirm the delete and then select Delete at the bottom of the pane.

    Nel portale viene visualizzata la notifica L'eliminazione del gruppo di risorse TestingBPLocks non è riuscita.The portal notification Delete resource group TestingBPLocks failed appears. Questo errore si verifica perché, sebbene l'account abbia l'autorizzazione necessaria per eliminare il gruppo di risorse, l'accesso è negato dall'assegnazione del progetto.The error states that although your account has permission to delete the resource group, access is denied by the blueprint assignment. È stata infatti selezionata la modalità di blocco del progetto Sola lettura durante l'assegnazione del progetto.Remember that we selected the Read Only blueprint lock mode during blueprint assignment. Il blocco del progetto impedisce a un account di eliminare la risorsa, anche se dispone dell'autorizzazione Proprietario.The blueprint lock prevents an account with permission, even Owner, from deleting the resource. Per altre informazioni, vedere Blueprints resource locking (Blocco delle risorse del progetto).For more information, see blueprints resource locking.

Questi passaggi mostrano che le risorse distribuite sono ora protette con blocchi del progetto che ne impediscono l'eliminazione indesiderata, persino da un account dotato dell'autorizzazione per eliminare le risorse.These steps show that our deployed resources are now protected with blueprint locks that prevent unwanted deletion, even from an account that has permission to delete the resources.

Annullare l'assegnazione del progettoUnassign the blueprint

L'ultimo passaggio consiste nel rimuovere l'assegnazione della definizione del progetto.The last step is to remove the assignment of the blueprint definition. Con la rimozione dell'assegnazione non vengono rimossi gli artefatti interessati.Removing the assignment doesn't remove the associated artifacts.

  1. Selezionare Tutti i servizi nel riquadro a sinistra.Select All services in the left pane. Cercare e selezionare Progetti.Search for and select Blueprints.

  2. Selezionare la pagina Progetti assegnati a sinistra.Select the Assigned blueprints page on the left. Usare i filtri per trovare l'assegnazione del progetto assignment-locked-storageaccount-TestingBPLocks e selezionarla.Use the filters to find the assignment-locked-storageaccount-TestingBPLocks blueprint assignment, and then select it.

  3. Selezionare Annulla assegnazione progetto nella parte superiore della pagina.Select Unassign blueprint at the top of the page. Leggere l'avviso nella finestra di dialogo di conferma e quindi scegliere OK.Read the warning in the confirmation dialog box, and then select OK.

    Con la rimozione dell'assegnazione del progetto vengono rimossi anche i relativi blocchi.When the blueprint assignment is removed, the blueprint locks are also removed. Le risorse possono ancora una volta essere eliminate da un account dotato di autorizzazioni appropriate.The resources can once again be deleted by an account with appropriate permissions.

  4. Scegliere Gruppi di risorse dal menu di Azure e quindi selezionare TestingBPLocks.Select Resource groups from the Azure menu, and then select TestingBPLocks.

  5. Selezionare la pagina Controllo di accesso (IAM) a sinistra e quindi selezionare la scheda Assegnazioni di ruoli.Select the Access control (IAM) page on the left and then select the Role assignments tab.

La sicurezza per il gruppo di risorse mostra che l'assegnazione del progetto non dispone più dell'accesso Proprietario.The security for the resource group shows that the blueprint assignment no longer has Owner access.

Quando nel portale viene visualizzata la notifica La rimozione dell'assegnazione progetto è riuscita, proseguire con il passaggio successivo.After the Removing blueprint assignment succeeded portal notification appears, go to the next step.

Pulire le risorseClean up resources

Al termine dell'esercitazione, eliminare le risorse seguenti:When you're finished with this tutorial, delete these resources:

  • Gruppo di risorse TestingBPLocksResource group TestingBPLocks
  • Definizione del progetto locked-storageaccountBlueprint definition locked-storageaccount

Passaggi successiviNext steps