Crittografare il registro usando una chiave gestita dal cliente

Quando si archiviano immagini e altri artefatti in un registro contenitori di Azure, Azure crittografa automaticamente il contenuto inattivo del registro con le chiavi gestite dal servizio. È possibile integrare la crittografia predefinita con un livello di crittografia aggiuntivo usando una chiave creata e gestita in Azure Key Vault (una chiave gestita dal cliente). Questo articolo illustra la procedura per usare l'interfaccia della riga di comando di Azure, portale di Azure o un Resource Manager modello.

La crittografia lato server con chiavi gestite dal cliente è supportata tramite l'integrazione con Azure Key Vault:

  • È possibile creare chiavi di crittografia e archiviarle in un insieme di credenziali delle chiavi oppure usare le API Azure Key Vault per generare le chiavi.
  • Con Azure Key Vault è anche possibile controllare l'utilizzo delle chiavi.
  • Registro Azure Container supporta la rotazione automatica delle chiavi di crittografia del Registro di sistema quando è disponibile una nuova versione della chiave in Azure Key Vault. È anche possibile ruotare manualmente le chiavi di crittografia del Registro di sistema.

Questa funzionalità è disponibile nel livello di servizio Premium del registro contenitori. Per informazioni sui livelli di servizio e sui limiti del registro contenitori, vedere Livelli di servizio del Registro Azure Container.

Informazioni importanti

  • Attualmente è possibile abilitare una chiave gestita dal cliente solo quando si crea un registro. Quando si abilita la chiave, si configura un'identità gestita assegnata dall'utente per accedere all'insieme di credenziali delle chiavi. Successivamente, è possibile abilitare l'identità gestita dal sistema del registro per l'accesso all'insieme di credenziali delle chiavi, se necessario.
  • Dopo aver abilitato la crittografia con una chiave gestita dal cliente in un registro, non è possibile disabilitarla.
  • Registro Azure Container supporta solo chiavi RSA o RSA-HSM. Le chiavi a curva ellittica non sono attualmente supportate.
  • L'attendibilità del contenuto non è attualmente supportata in un registro crittografato con una chiave gestita dal cliente.
  • In un registro crittografato con una chiave gestita dal cliente, i log di esecuzione per le Attività del Registro Azure Container attualmente vengono conservati solo per 24 ore. Se è necessario conservare i log per un periodo di tempo più lungo, vedere le istruzioni per esportare e archiviare i log di esecuzione delle attività.

Aggiornamento automatico o manuale delle versioni chiave

Una considerazione importante per la sicurezza di un registro crittografato con una chiave gestita dal cliente è la frequenza con cui si aggiorna (ruota) la chiave di crittografia. L'organizzazione potrebbe avere criteri di conformità che richiedono l'aggiornamento regolare delle versioni delle chiavi archiviate in Azure Key Vault se usate come chiavi gestite dal cliente.

Quando si configura la crittografia del Registro di sistema con una chiave gestita dal cliente, sono disponibili due opzioni per l'aggiornamento della versione della chiave usata per la crittografia:

  • Aggiornare automaticamente la versione della chiave: per aggiornare automaticamente una chiave gestita dal cliente quando è disponibile una nuova versione in Azure Key Vault, omettere la versione della chiave quando si abilita la crittografia del Registro di sistema con una chiave gestita dal cliente. Quando un registro viene crittografato con una chiave senza controllo delle versioni, Registro Azure Container controlla regolarmente la presenza di una nuova versione della chiave nell'insieme di credenziali delle chiavi e aggiorna la chiave gestita dal cliente entro 1 ora. Registro Azure Container usa automaticamente la versione più recente della chiave.

  • Aggiornare manualmente la versione della chiave: per usare una versione specifica di una chiave per la crittografia del Registro di sistema, specificare tale versione quando si abilita la crittografia del Registro di sistema con una chiave gestita dal cliente. Quando un registro viene crittografato con una versione della chiave specifica, Registro Azure Container usa tale versione per la crittografia fino a quando non si ruota manualmente la chiave gestita dal cliente.

Per informazioni dettagliate, vedere Scegliere l'ID chiave con o senza la versione della chiave e Aggiornare la versione della chiavepiù avanti in questo articolo.

Prerequisiti

Per usare i passaggi dell'interfaccia della riga di comando di Azure descritti in questo articolo, è necessaria l'interfaccia della riga di comando di Azure versione 2.2.0 o successiva o Azure Cloud Shell. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Abilitare la chiave gestita dal cliente - interfaccia della riga di comando

Creare un gruppo di risorse

Se necessario, eseguire il comando az group create per creare un gruppo di risorse per la creazione dell'insieme di credenziali delle chiavi, del registro contenitori e di altre risorse richieste.

az group create --name <resource-group-name> --location <location>

Creare un'identità gestita assegnata dall'utente

Creare un'identità gestita assegnata dall'utente per le risorse di Azure con il comando az identity create. Questa identità verrà usata dal registro per accedere al servizio Key Vault.

az identity create \
  --resource-group <resource-group-name> \
  --name <managed-identity-name>

Nell'output del comando prendere nota dei valori seguenti: id e principalId. Questi valori sono necessari nei passaggi successivi per configurare l'accesso del registro all'insieme di credenziali delle chiavi.

{
  "clientId": "xxxx2bac-xxxx-xxxx-xxxx-192cxxxx6273",
  "clientSecretUrl": "https://control-eastus.identity.azure.net/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentityname/credentials?tid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&oid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&aid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myresourcegroup",
  "location": "eastus",
  "name": "myidentityname",
  "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "resourceGroup": "myresourcegroup",
  "tags": {},
  "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
}

Per praticità, archiviare questi valori nelle variabili di ambiente:

identityID=$(az identity show --resource-group <resource-group-name> --name <managed-identity-name> --query 'id' --output tsv)

identityPrincipalID=$(az identity show --resource-group <resource-group-name> --name <managed-identity-name> --query 'principalId' --output tsv)

Creare un insieme di credenziali delle chiavi

Creare un insieme di credenziali delle chiavi con az keyvault create per archiviare una chiave gestita dal cliente per la crittografia del registro.

Per impostazione predefinita, l'impostazione di eliminazione soft viene abilitata automaticamente in un nuovo insieme di credenziali delle chiavi. Per evitare la perdita di dati causata da eliminazioni accidentali di chiavi o insiemi di credenziali delle chiavi, abilitare anche l'impostazione di protezione dall'eliminazione.

az keyvault create --name <key-vault-name> \
  --resource-group <resource-group-name> \
  --enable-purge-protection

Per l'uso nei passaggi successivi, ottenere l'ID risorsa dell'insieme di credenziali delle chiavi:

keyvaultID=$(az keyvault show --resource-group <resource-group-name> --name <key-vault-name> --query 'id' --output tsv)

Abilitare l'accesso all'insieme di credenziali delle chiavi da parte di servizi attendibili

Se l'insieme di credenziali delle chiavi è protetto con un firewall o una rete virtuale (endpoint privato), abilitare l'impostazione di rete per consentire l'accesso da parte di servizi di Azure attendibili.

Per altre informazioni, vedere Configurare le Azure Key Vault di rete.

Abilitare l'accesso all'insieme di credenziali delle chiavi in base all'identità gestita

Abilitare i criteri di accesso dell'insieme di credenziali delle chiavi

Un'opzione è configurare un criterio per l'insieme di credenziali delle chiavi in modo che l'identità possa accedervi. Nel comando az keyvault set-policy che segue viene passato l'ID entità di sicurezza dell'identità gestita creata, archiviato in precedenza in una variabile di ambiente. Impostare le autorizzazioni delle chiavi per get, unwrapKey e wrapKey.

az keyvault set-policy \
  --resource-group <resource-group-name> \
  --name <key-vault-name> \
  --object-id $identityPrincipalID \
  --key-permissions get unwrapKey wrapKey

Assegnare il ruolo Controllo degli accessi in base al ruolo

In alternativa, usare il controllo degli accessi in base al ruolo di Azure Key Vault per assegnare le autorizzazioni all'identità per accedere all'insieme di credenziali delle chiavi. Ad esempio, assegnare il Key Vault Crittografia del servizio di crittografia all'identità usando il comando az role assignment create:

az role assignment create --assignee $identityPrincipalID \
  --role "Key Vault Crypto Service Encryption User" \
  --scope $keyvaultID

Creare la chiave e ottenere l'ID chiave

Per creare una chiave nell'insieme di credenziali delle chiavi, eseguire il comando az keyvault key create.

az keyvault key create \
  --name <key-name> \
  --vault-name <key-vault-name>

Nell'output del comando prendere nota dell'ID della chiave, kid. Questo ID verrà usato nel passaggio successivo:

[...]
  "key": {
    "crv": null,
    "d": null,
    "dp": null,
    "dq": null,
    "e": "AQAB",
    "k": null,
    "keyOps": [
      "encrypt",
      "decrypt",
      "sign",
      "verify",
      "wrapKey",
      "unwrapKey"
    ],
    "kid": "https://mykeyvault.vault.azure.net/keys/mykey/<version>",
    "kty": "RSA",
[...]

Scegliere l'ID chiave con o senza la versione della chiave

Per praticità, archiviare il formato scelto per l'ID chiave nella $keyID di ambiente. È possibile usare un ID chiave con una versione o una chiave senza una versione.

Rotazione manuale delle chiavi - ID chiave con versione

Se usata per crittografare un registro con una chiave gestita dal cliente, questa chiave consente solo la rotazione manuale delle chiavi Registro Azure Container.

In questo esempio viene archiviata la proprietà della kid chiave:

keyID=$(az keyvault key show \
  --name <keyname> \
  --vault-name <key-vault-name> \
  --query 'key.kid' --output tsv)

Rotazione automatica delle chiavi : ID chiave che omette la versione

Se usata per crittografare un registro con una chiave gestita dal cliente, questa chiave abilita la rotazione automatica delle chiavi quando viene rilevata una nuova versione della chiave Azure Key Vault.

Questo esempio rimuove la versione dalla proprietà della kid chiave:

keyID=$(az keyvault key show \
  --name <keyname> \
  --vault-name <key-vault-name> \
  --query 'key.kid' --output tsv)

keyID=$(echo $keyID | sed -e "s/\/[^/]*$//")

Creare un registro con la chiave gestita dal cliente

Eseguire il comando az acr create per creare un registro nel livello di servizio Premium e abilitare la chiave gestita dal cliente. Passare l'ID identità gestita e l'ID chiave, archiviati in precedenza nelle variabili di ambiente:

az acr create \
  --resource-group <resource-group-name> \
  --name <container-registry-name> \
  --identity $identityID \
  --key-encryption-key $keyID \
  --sku Premium

Visualizzare lo stato della crittografia

Per indicare se la crittografia del registro con una chiave gestita dal cliente è abilitata, eseguire il comando az acr encryption show:

az acr encryption show --name <registry-name>

A seconda della chiave usata per crittografare il Registro di sistema, l'output è simile al seguente:

{
  "keyVaultProperties": {
    "identity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "keyIdentifier": "https://myvault.vault.azure.net/keys/myresourcegroup/abcdefg123456789...",
    "keyRotationEnabled": true,
    "lastKeyRotationTimestamp": xxxxxxxx
    "versionedKeyIdentifier": "https://myvault.vault.azure.net/keys/myresourcegroup/abcdefg123456789...",
  },
  "status": "enabled"
}

Abilitare la chiave gestita dal cliente - portale

Creare un'identità gestita

Creare un'identità gestita assegnata dall'utente per le risorse di Azure nel portale di Azure. Per la procedura, vedere Creare un'identità assegnata dall'utente.

Il nome dell'identità verrà usato nei passaggi successivi.

Creare un'identità assegnata dall'utente nel portale di Azure

Creare un insieme di credenziali delle chiavi

Per la procedura di creazione di un insieme di credenziali delle chiavi, vedere Avvio rapido: Creare un insiemedi credenziali delle chiavi usando portale di Azure .

Quando si crea un insieme di credenziali delle chiavi per una chiave gestita dal cliente, nella scheda Informazioni di base abilitare l'impostazione Protezione dall'eliminazione. Questa impostazione consente di evitare la perdita di dati causata da eliminazioni accidentali di chiavi o insiemi di credenziali delle chiavi.

Creare un insieme di credenziali delle chiavi nel portale di Azure

Abilitare l'accesso all'insieme di credenziali delle chiavi da parte di servizi attendibili

Se l'insieme di credenziali delle chiavi è protetto con un firewall o una rete virtuale (endpoint privato), abilitare l'impostazione di rete per consentire l'accesso da parte di servizi di Azure attendibili.

Per altre informazioni, vedere Configurare le Azure Key Vault di rete.

Abilitare l'accesso all'insieme di credenziali delle chiavi in base all'identità gestita

Abilitare i criteri di accesso dell'insieme di credenziali delle chiavi

Un'opzione è configurare un criterio per l'insieme di credenziali delle chiavi in modo che l'identità possa accedervi.

  1. Passare all'insieme di credenziali delle chiavi.
  2. Selezionare ImpostazioniCriteri di accesso +Aggiungi criteri di accesso.
  3. Selezionare Autorizzazioni chiave, quindi Recupera, Annulla il wrapping della chiave ed Esegui il wrapping della chiave.
  4. In Seleziona entitàselezionare il nome della risorsa dell'identità gestita assegnata dall'utente.
  5. Selezionare Aggiungi e quindi Salva.

Creare un criterio di accesso dell'insieme di credenziali delle chiavi

Assegnare il ruolo Controllo degli accessi in base al ruolo

In alternativa, assegnare il ruolo utente Key Vault crittografia del servizio Crypto all'identità gestita assegnata dall'utente nell'ambito dell'insieme di credenziali delle chiavi.

Per la procedura dettagliata, vedere Assegnare ruoli di Azure usando portale di Azure.

Crea chiave (facoltativo)

Facoltativamente, creare una chiave nell'insieme di credenziali delle chiavi da usare per crittografare il Registro di sistema. Seguire questa procedura se si vuole selezionare una versione della chiave specifica come chiave gestita dal cliente. Potrebbe anche essere necessario creare una chiave prima di creare il Registro di sistema se l'accesso all'insieme di credenziali delle chiavi è limitato a un endpoint privato o a reti selezionate.

  1. Passare all'insieme di credenziali delle chiavi.
  2. Selezionare Impostazionichiavi.
  3. Selezionare +Genera/Importa e immettere un nome univoco per la chiave.
  4. Accettare i rimanenti valori predefiniti e selezionare Crea.
  5. Dopo la creazione, selezionare la chiave e quindi selezionare la versione corrente. Copiare l'identificatore di chiave per la versione della chiave.

Creare un'istanza di Registro Azure Container

  1. Selezionare Create a resource ContainersContainer Registry (Crea una risorsa ContainersContainer Registry).
  2. Nella scheda Nozioni di base selezionare o creare un gruppo di risorse e immettere un nome di registro. In SKU selezionare Premium.
  3. Nella scheda Crittografia, selezionare Abilitata in Chiave gestita dal cliente.
  4. In Identità selezionare l'identità gestita creata.
  5. In Crittografiascegliere una delle opzioni seguenti:
    • Selezionare Seleziona da Key Vaulte selezionare un insieme di credenziali delle chiavi e una chiave esistenti oppure Crea nuovo. La chiave selezionata non ha il controllo delle versioni e abilita la rotazione automatica delle chiavi.
    • Selezionare Immettere l'URI dellachiave e specificare l'identificatore di una chiave esistente. È possibile fornire un URI di chiave con controllo delle versioni (per una chiave che deve essere ruotata manualmente) o un URI di chiave senza controllo delle versioni (che abilita la rotazione automatica della chiave). Vedere la sezione precedente per i passaggi per creare una chiave.
  6. Nella scheda Crittografia selezionare Rivedi e crea.
  7. Selezionare Crea per distribuire l'istanza del registro.

Creare un registro crittografato nel portale di Azure

Per visualizzare lo stato della crittografia del registro nel portale, passare al registro. In Impostazioniselezionare Crittografia.

Abilitare la chiave gestita dal cliente - modello

È anche possibile usare un modello di Resource Manager per creare un registro e abilitare la crittografia con una chiave gestita dal cliente.

Il modello seguente crea un nuovo registro contenitori e un'identità gestita assegnata dall'utente. Copiare il contenuto seguente in un nuovo file e salvarlo usando un nome file, ad esempio CMKtemplate.json.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vault_name": {
      "defaultValue": "",
      "type": "String"
    },
    "registry_name": {
      "defaultValue": "",
      "type": "String"
    },
    "identity_name": {
      "defaultValue": "",
      "type": "String"
    },
    "kek_id": {
      "type": "String"
    }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.ContainerRegistry/registries",
      "apiVersion": "2019-12-01-preview",
      "name": "[parameters('registry_name')]",
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Premium",
        "tier": "Premium"
      },
      "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]": {}
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]"
      ],
      "properties": {
        "adminUserEnabled": false,
        "encryption": {
          "status": "enabled",
          "keyVaultProperties": {
            "identity": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name')), '2018-11-30').clientId]",
            "KeyIdentifier": "[parameters('kek_id')]"
          }
        },
        "networkRuleSet": {
          "defaultAction": "Allow",
          "virtualNetworkRules": [],
          "ipRules": []
        },
        "policies": {
          "quarantinePolicy": {
            "status": "disabled"
          },
          "trustPolicy": {
            "type": "Notary",
            "status": "disabled"
          },
          "retentionPolicy": {
            "days": 7,
            "status": "disabled"
          }
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/accessPolicies",
      "apiVersion": "2018-02-14",
      "name": "[concat(parameters('vault_name'), '/add')]",
      "dependsOn": [
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]"
      ],
      "properties": {
        "accessPolicies": [
          {
            "tenantId": "[subscription().tenantId]",
            "objectId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name')), '2018-11-30').principalId]",
            "permissions": {
              "keys": [
                "get",
                "unwrapKey",
                "wrapKey"
              ]
            }
          }
        ]
      }
    },
    {
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
      "apiVersion": "2018-11-30",
      "name": "[parameters('identity_name')]",
      "location": "[resourceGroup().location]"
    }
  ]
}

Seguire i passaggi delle sezioni precedenti per creare le risorse seguenti:

  • Insieme di credenziali delle chiavi, identificato dal nome
  • Insieme di credenziali delle chiavi, identificato dall'ID chiave

Eseguire il comando az deployment group create seguente per creare il Registro di sistema usando il file modello precedente. Dove indicato, specificare un nuovo nome del registro e il nome dell'identità gestita, nonché il nome dell'insieme di credenziali delle chiavi e l'ID chiave creato.

az deployment group create \
  --resource-group <resource-group-name> \
  --template-file CMKtemplate.json \
  --parameters \
    registry_name=<registry-name> \
    identity_name=<managed-identity> \
    vault_name=<key-vault-name> \
    kek_id=<key-vault-key-id>

Visualizzare lo stato della crittografia

Per visualizzare lo stato della crittografia del registro, eseguire il comando az acr encryption show:

az acr encryption show --name <registry-name>

Usare il registro

Dopo aver abilitato una chiave gestita dal cliente in un registro, è possibile eseguire le stesse operazioni del registro che si eseguono in un registro non crittografato con una chiave gestita dal cliente. Ad esempio, è possibile eseguire l'autenticazione con il registro ed effettuare il push delle immagini Docker. Vedere i comandi di esempio in Effettuare il push e il pull di un'immagine.

Ruotare la chiave

Aggiornare la versione della chiave in Azure Key Vault o creare una nuova chiave e quindi aggiornare il Registro di sistema per crittografare i dati usando la chiave. È possibile eseguire questi passaggi usando l'interfaccia della riga di comando di Azure o il portale.

Quando si ruota una chiave, in genere si specifica la stessa identità usata durante la creazione del registro. Facoltativamente, configurare una nuova identità assegnata dall'utente per l'accesso alla chiave o abilitare e specificare l'identità assegnata dal sistema del registro.

Nota

  • Per abilitare l'identità assegnata dal sistema del Registro di sistema nel portale, selezionare Impostazioni Identity e impostare lo stato dell'identità assegnata dal sistema su On.
  • Assicurarsi che l'accesso all'insieme di credenziali delle chiavi necessario sia impostato per l'identità configurata per l'accesso alla chiave.

Aggiornare la versione della chiave

Uno scenario comune consiste nell'aggiornare la versione della chiave usata come chiave gestita dal cliente. A seconda della configurazione della crittografia del Registro di sistema, la chiave gestita dal cliente in Registro Azure Container viene aggiornata automaticamente o deve essere aggiornata manualmente.

Interfaccia della riga di comando di Azure

Usare i comandi az keyvault key per creare o gestire le chiavi dell'insieme di credenziali delle chiavi. Per creare una nuova versione della chiave, eseguire il comando az keyvault key create:

# Create new version of existing key
az keyvault key create \
  –-name <key-name> \
  --vault-name <key-vault-name>

Il passaggio successivo dipende dalla configurazione della crittografia del Registro di sistema:

  • Se il Registro di sistema è configurato per rilevare gli aggiornamenti delle versioni chiave, la chiave gestita dal cliente viene aggiornata automaticamente entro 1 ora.

  • Se il Registro di sistema è configurato per richiedere l'aggiornamento manuale per una nuova versione della chiave, eseguire il comando az acr encryption rotate-key, passando il nuovo ID chiave e l'identità da configurare:

Per aggiornare manualmente la versione della chiave gestita dal cliente:

# Rotate key and use user-assigned identity
az acr encryption rotate-key \
  --name <registry-name> \
  --key-encryption-key <new-key-id> \
  --identity <principal-id-user-assigned-identity>

# Rotate key and use system-assigned identity
az acr encryption rotate-key \
  --name <registry-name> \
  --key-encryption-key <new-key-id> \
  --identity [system]

Suggerimento

Quando si esegue , è possibile passare un ID chiave con controllo delle versioni o un ID chiave az acr encryption rotate-key senza versione. Se si usa un ID chiave senza controllo delle versioni, il Registro di sistema viene quindi configurato per rilevare automaticamente gli aggiornamenti delle versioni delle chiavi successivi.

Portale

Usare le impostazioni di crittografia del Registro di sistema per aggiornare le impostazioni dell'insieme di credenziali delle chiavi, della chiave o dell'identità usate per la chiave gestita dal cliente.

Ad esempio, per configurare una nuova chiave:

  1. Passare al registro nel portale.

  2. In Impostazioniselezionare Chiave di modificacrittografia.

    Ruotare la chiave nel portale di Azure

  3. In Crittografiascegliere una delle opzioni seguenti:

    • Selezionare Seleziona da Key Vaulte selezionare un insieme di credenziali delle chiavi e una chiave esistenti oppure Crea nuovo. La chiave selezionata non ha il controllo delle versioni e abilita la rotazione automatica delle chiavi.
    • Selezionare Immettere l'URI della chiavee specificare direttamente un identificatore di chiave. È possibile fornire un URI di chiave con controllo delle versioni (per una chiave che deve essere ruotata manualmente) o un URI di chiave senza controllo delle versioni (che abilita la rotazione automatica della chiave).
  4. Completare la selezione della chiave e selezionare Salva.

Revocare la chiave

Revocare la chiave di crittografia gestita dal cliente modificando i criteri di accesso o le autorizzazioni nell'insieme di credenziali delle chiavi o eliminando la chiave. Ad esempio, usare il comando az keyvault delete-policy per modificare il criterio di accesso dell'identità gestita usata dal registro:

az keyvault delete-policy \
  --resource-group <resource-group-name> \
  --name <key-vault-name> \
  --object-id $identityPrincipalID

La revoca della chiave blocca efficacemente l'accesso a tutti i dati del registro, poiché il registro non può accedere alla chiave di crittografia. Se l'accesso alla chiave è abilitato o viene ripristinata la chiave eliminata, il registro selezionerà la chiave in modo che sia possibile accedere di nuovo ai dati crittografati del registro.

Risolvere problemi

Rimozione dell'identità gestita

Se si tenta di rimuovere un'identità gestita assegnata dall'utente o assegnata dal sistema da un registro usato per configurare la crittografia, è possibile che venga visualizzato un messaggio di errore simile al seguente:

Azure resource '/subscriptions/xxxx/resourcegroups/myGroup/providers/Microsoft.ContainerRegistry/registries/myRegistry' does not have access to identity 'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx' Try forcibly adding the identity to the registry <registry name>. For more information on bring your own key, please visit 'https://aka.ms/acr/cmk'.

Non sarà inoltre possibile modificare (ruotare) la chiave di crittografia. I passaggi di risoluzione dipendono dal tipo di identità usato per la crittografia.

Identità assegnata dall'utente

Se questo problema si verifica con un'identità assegnata dall'utente, riassegnare prima l'identità usando il comando az acr identity assign. Passare l'ID risorsa dell'identità o usare il nome dell'identità quando si trova nello stesso gruppo di risorse del Registro di sistema. Ad esempio:

az acr identity assign -n myRegistry \
    --identities "/subscriptions/mysubscription/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentity"

Quindi, dopo aver modificato la chiave e aver assegnato un'identità diversa, è possibile rimuovere l'identità assegnata dall'utente originale.

Identità assegnata dal sistema

Se questo problema si verifica con un'identità assegnata dal sistema, creare un ticket supporto tecnico di Azure assistenza per ripristinare l'identità.

Abilitazione del firewall dell'insieme di credenziali delle chiavi

Se si abilita un firewall o una rete virtuale dell'insieme di credenziali delle chiavi dopo aver creato un registro crittografato, è possibile che venga visualizzato HTTP 403 o altri errori relativi all'importazione di immagini o alla rotazione automatica delle chiavi. Per risolvere questo problema, riconfigurare l'identità gestita e la chiave usate inizialmente per la crittografia. Vedere i passaggi in Ruotare la chiave.

Se il problema persiste, contattare supporto di Azure.

Eliminazione accidentale dell'insieme di credenziali delle chiavi o della chiave

L'eliminazione dell'insieme di credenziali delle chiavi o della chiave usata per crittografare un registro con una chiave gestita dal cliente rende inaccessibile il contenuto del registro. Se l'eliminazione soft è abilitata nell'insieme di credenziali delle chiavi (opzione predefinita), è possibile ripristinare un insieme di credenziali o un oggetto dell'insieme di credenziali delle chiavi eliminato e riprendere le operazioni del Registro di sistema.

Per gli scenari di eliminazione e ripristino dell'insieme di credenziali delle chiavi, Azure Key Vault la gestione del ripristino con l'eliminazione e la protezione dall'eliminazione.

Passaggi successivi