Limitare l'accesso a un registro contenitori di Azure usando una rete virtuale di Azure o regole del firewallRestrict access to an Azure container registry using an Azure virtual network or firewall rules

Rete virtuale di Azure offre reti private e sicure per le risorse di Azure e locali.Azure Virtual Network provides secure, private networking for your Azure and on-premises resources. Limitando l'accesso al registro contenitori di Azure privato da una rete virtuale di Azure, è possibile garantire che solo le risorse nella rete virtuale accedano al registro di sistema.By limiting access to your private Azure container registry from an Azure virtual network, you ensure that only resources in the virtual network access the registry. Per gli scenari cross-premise, è anche possibile configurare le regole del firewall per consentire l'accesso al registro di sistema solo da indirizzi IP specifici.For cross-premises scenarios, you can also configure firewall rules to allow registry access only from specific IP addresses.

Questo articolo illustra due scenari per configurare le regole di accesso alla rete in ingresso in un registro contenitori: da una macchina virtuale distribuita in una rete virtuale o da un indirizzo IP pubblico della macchina virtuale.This article shows two scenarios to configure inbound network access rules on a container registry: from a virtual machine deployed in a virtual network, or from a VM's public IP address.

Importante

Questa funzionalità è attualmente in anteprima e si applicano alcune limitazioni.This feature is currently in preview, and some limitations apply. Le anteprime vengono rese disponibili per l'utente a condizione che si accettino le condizioni d'uso aggiuntive.Previews are made available to you on the condition that you agree to the supplemental terms of use. Alcuni aspetti di questa funzionalità potrebbero subire modifiche prima della disponibilità a livello generale.Some aspects of this feature may change prior to general availability (GA).

Se invece è necessario configurare regole di accesso per le risorse per raggiungere un registro contenitori da dietro un firewall, vedere configurare le regole per accedere a un registro contenitori di Azure dietro un firewall.If instead you need to set up access rules for resources to reach a container registry from behind a firewall, see Configure rules to access an Azure container registry behind a firewall.

Limiti di anteprimaPreview limitations

  • Solo un registro contenitori Premium può essere configurato con regole di accesso alla rete.Only a Premium container registry can be configured with network access rules. Per informazioni sui livelli di servizio del registro di sistema, vedere sku container Registry di Azure.For information about registry service tiers, see Azure Container Registry SKUs.

  • Solo un cluster di Servizi Kubernetes di Azure o una macchina virtuale di Azure può essere usato come host per accedere a un registro contenitori in una rete virtuale.Only an Azure Kubernetes Service cluster or Azure virtual machine can be used as a host to access a container registry in a virtual network. Altri servizi di Azure, incluse le istanze di contenitore di Azure, non sono attualmente supportati.Other Azure services including Azure Container Instances aren't currently supported.

  • Le operazioni delle attività ACR non sono attualmente supportate in un registro contenitori a cui si accede in una rete virtuale.ACR Tasks operations aren't currently supported in a container registry accessed in a virtual network.

  • Ogni registro supporta un massimo di 100 regole della rete virtuale.Each registry supports a maximum of 100 virtual network rules.

prerequisitiPrerequisites

  • Per usare i passaggi dell'interfaccia della riga di comando di Azure in questo articolo, è necessaria la versione 2.0.58 o successiva di Azure CLI.To use the Azure CLI steps in this article, Azure CLI version 2.0.58 or later is required. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.If you need to install or upgrade, see Install Azure CLI.

  • Se non si dispone già di un registro contenitori, crearne uno (SKU Premium obbligatorio) ed effettuare il push di un'immagine di esempio, ad esempio hello-world dall'hub docker.If you don't already have a container registry, create one (Premium SKU required) and push a sample image such as hello-world from Docker Hub. Ad esempio, usare l' portale di Azure o l' interfaccia della riga di comando di Azure per creare un registro.For example, use the Azure portal or the Azure CLI to create a registry.

  • Se si vuole limitare l'accesso al registro di sistema usando una rete virtuale in un'altra sottoscrizione di Azure, è necessario registrare il provider di risorse per Container Registry di Azure nella sottoscrizione.If you want to restrict registry access using a virtual network in a different Azure subscription, you need to register the resource provider for Azure Container Registry in that subscription. Ad esempio:For example:

    az account set --subscription <Name or ID of subscription of virtual network>
    
    az provider register --namespace Microsoft.ContainerRegistry
    

Informazioni sulle regole di rete per un registro contenitoriAbout network rules for a container registry

Per impostazione predefinita, un registro contenitori di Azure accetta connessioni su Internet dagli host in qualsiasi rete.An Azure container registry by default accepts connections over the internet from hosts on any network. Con una rete virtuale, è possibile consentire solo a risorse di Azure, ad esempio un cluster AKS o una macchina virtuale di Azure, di accedere in modo sicuro al registro di sistema, senza superare un limite di rete.With a virtual network, you can allow only Azure resources such as an AKS cluster or Azure VM to securely access the registry, without crossing a network boundary. È anche possibile configurare le regole del firewall di rete per consentire solo specifici intervalli di indirizzi IP Internet pubblici.You can also configure network firewall rules to allow only specific public internet IP address ranges.

Per limitare l'accesso a un registro, modificare prima l'azione predefinita del registro di sistema in modo da negare tutte le connessioni di rete.To limit access to a registry, first change the default action of the registry so that it denies all network connections. Quindi, aggiungere le regole di accesso alla rete.Then, add network access rules. I client che hanno concesso l'accesso tramite le regole di rete devono continuare a eseguire l' autenticazione nel registro contenitori ed essere autorizzati ad accedere ai dati.Clients granted access via the network rules must continue to authenticate to the container registry and be authorized to access the data.

Endpoint servizio per le subnetService endpoint for subnets

Per consentire l'accesso da una subnet in una rete virtuale, è necessario aggiungere un endpoint di servizio per il servizio container Registry di Azure.To allow access from a subnet in a virtual network, you need to add a service endpoint for the Azure Container Registry service.

I servizi multi-tenant, come Azure Container Registry, usano un unico set di indirizzi IP per tutti i clienti.Multi-tenant services, like Azure Container Registry, use a single set of IP addresses for all customers. Un endpoint di servizio assegna un endpoint per accedere a un registro.A service endpoint assigns an endpoint to access a registry. Questo endpoint fornisce al traffico una route ottimale alla risorsa tramite la rete backbone di Azure.This endpoint gives traffic an optimal route to the resource over the Azure backbone network. Con ogni richiesta vengono anche trasmesse le identità della rete virtuale e della subnet.The identities of the virtual network and the subnet are also transmitted with each request.

Regole del firewallFirewall rules

Per le regole di rete IP, specificare gli intervalli di indirizzi Internet consentiti usando la notazione CIDR, ad esempio 16.17.18.0/24 o un singolo indirizzo IP come 16.17.18.19.For IP network rules, provide allowed internet address ranges using CIDR notation such as 16.17.18.0/24 or an individual IP addresses like 16.17.18.19. Le regole di rete IP sono consentite solo per indirizzi IP Internet pubblici .IP network rules are only allowed for public internet IP addresses. Gli intervalli di indirizzi IP riservati per le reti private (come definito nella RFC 1918) non sono consentiti nelle regole IP.IP address ranges reserved for private networks (as defined in RFC 1918) aren't allowed in IP rules.

Creare una macchina virtuale abilitata per DockerCreate a Docker-enabled virtual machine

Per questo articolo, usare una VM Ubuntu abilitata per Docker per accedere a un registro contenitori di Azure.For this article, use a Docker-enabled Ubuntu VM to access an Azure container registry. Per usare l'autenticazione Azure Active Directory per il registro di sistema, installare anche l'interfaccia della riga di comando di Azure nella macchina virtuale.To use Azure Active Directory authentication to the registry, also install the Azure CLI on the VM. Se si dispone già di una macchina virtuale di Azure, ignorare questo passaggio di creazione.If you already have an Azure virtual machine, skip this creation step.

È possibile usare lo stesso gruppo di risorse per la macchina virtuale e il registro contenitori.You may use the same resource group for your virtual machine and your container registry. Questa configurazione semplifica la pulizia alla fine, ma non è obbligatoria.This setup simplifies clean-up at the end but isn't required. Se si sceglie di creare un gruppo di risorse separato per la macchina virtuale e la rete virtuale, eseguire il comando AZ Group create.If you choose to create a separate resource group for the virtual machine and virtual network, run az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località westcentralus :The following example creates a resource group named myResourceGroup in the westcentralus location:

az group create --name myResourceGroup --location westus

Distribuire ora una macchina virtuale di Azure Ubuntu predefinita con AZ VM create.Now deploy a default Ubuntu Azure virtual machine with az vm create. L'esempio seguente crea una macchina virtuale denominata myDockerVM:The following example creates a VM named myDockerVM:

az vm create \
    --resource-group myResourceGroup \
    --name myDockerVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

Per creare la macchina virtuale sono necessari alcuni minuti.It takes a few minutes for the VM to be created. Dopo aver eseguito il comando, prendere nota del publicIpAddress visualizzato dall'interfaccia della riga di comando di Azure.When the command completes, take note of the publicIpAddress displayed by the Azure CLI. Usare questo indirizzo per stabilire connessioni SSH alla macchina virtuale e, facoltativamente, per configurare le regole del firewall in un secondo momento.Use this address to make SSH connections to the VM, and optionally for later setup of firewall rules.

Installare Docker nella macchina virtualeInstall Docker on the VM

Una volta che la macchina virtuale è in esecuzione, stabilire una connessione SSH alla macchina virtuale.After the VM is running, make an SSH connection to the VM. Sostituire publicIpAddress con l'indirizzo IP pubblico della macchina virtuale.Replace publicIpAddress with the public IP address of your VM.

ssh azureuser@publicIpAddress

Eseguire il comando seguente per installare Docker nella VM Ubuntu:Run the following command to install Docker on the Ubuntu VM:

sudo apt install docker.io -y

Dopo l'installazione, eseguire il comando seguente per verificare la corretta esecuzione di Docker nella macchina virtuale:After installation, run the following command to verify that Docker is running properly on the VM:

sudo docker run -it hello-world

Output:Output:

Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]

Installare l'interfaccia della riga di comando di AzureInstall the Azure CLI

Seguire i passaggi descritti in Installare l'interfaccia della riga di comando di Azure con APT per installare l'interfaccia della riga di comando di Azure nella macchina virtuale Ubuntu.Follow the steps in Install Azure CLI with apt to install the Azure CLI on your Ubuntu virtual machine. Per questo articolo, assicurarsi di installare la versione 2.0.58 o successiva.For this article, ensure that you install version 2.0.58 or later.

Uscire dalla connessione SSH.Exit the SSH connection.

Consentire l'accesso da una rete virtualeAllow access from a virtual network

In questa sezione configurare il registro contenitori per consentire l'accesso da una subnet in una rete virtuale di Azure.In this section, configure your container registry to allow access from a subnet in an Azure virtual network. Vengono forniti i passaggi equivalenti usando l'interfaccia della riga di comando di Azure e portale di Azure.Equivalent steps using the Azure CLI and Azure portal are provided.

Consentire l'accesso da una rete virtuale-interfaccia della riga di comandoAllow access from a virtual network - CLI

Aggiungere un endpoint di servizio a una subnetAdd a service endpoint to a subnet

Quando si crea una VM, per impostazione predefinita Azure crea una rete virtuale nello stesso gruppo di risorse.When you create a VM, Azure by default creates a virtual network in the same resource group. Il nome della rete virtuale si basa sul nome della macchina virtuale.The name of the virtual network is based on the name of the virtual machine. Ad esempio, se si specifica il nome della macchina virtuale myDockerVM, il nome di rete virtuale predefinito è myDockerVMVNET, con una subnet denominata myDockerVMSubnet.For example, if you name your virtual machine myDockerVM, the default virtual network name is myDockerVMVNET, with a subnet named myDockerVMSubnet. Verificare questa impostazione nel portale di Azure o usando il comando AZ Network VNET list :Verify this in the Azure portal or by using the az network vnet list command:

az network vnet list --resource-group myResourceGroup --query "[].{Name: name, Subnet: subnets[0].name}"

Output:Output:

[
  {
    "Name": "myDockerVMVNET",
    "Subnet": "myDockerVMSubnet"
  }
]

Usare il comando AZ Network VNET subnet Update per aggiungere un endpoint di servizio Microsoft. ContainerRegistry alla subnet.Use the az network vnet subnet update command to add a Microsoft.ContainerRegistry service endpoint to your subnet. Sostituire i nomi della rete virtuale e della subnet con il comando seguente:Substitute the names of your virtual network and subnet in the following command:

az network vnet subnet update \
  --name myDockerVMSubnet \
  --vnet-name myDockerVMVNET \
  --resource-group myResourceGroup \
  --service-endpoints Microsoft.ContainerRegistry

Usare il comando AZ Network VNET subnet Show per recuperare l'ID risorsa della subnet.Use the az network vnet subnet show command to retrieve the resource ID of the subnet. Questa operazione è necessaria in un passaggio successivo per configurare una regola di accesso alla rete.You need this in a later step to configure a network access rule.

az network vnet subnet show \
  --name myDockerVMSubnet \
  --vnet-name myDockerVMVNET \
  --resource-group myResourceGroup \
  --query "id"
  --output tsv

Output:Output:

/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myDockerVMVNET/subnets/myDockerVMSubnet

Modificare l'accesso di rete predefinito al registro di sistemaChange default network access to registry

Per impostazione predefinita, un registro contenitori di Azure consente le connessioni da host in qualsiasi rete.By default, an Azure container registry allows connections from hosts on any network. Per limitare l'accesso a una rete selezionata, modificare l'azione predefinita per negare l'accesso.To limit access to a selected network, change the default action to deny access. Sostituire il nome del registro di sistema con il comando AZ ACR Update seguente:Substitute the name of your registry in the following az acr update command:

az acr update --name myContainerRegistry --default-action Deny

Aggiungi regola di rete al registro di sistemaAdd network rule to registry

Usare il comando AZ ACR Network-rule add per aggiungere una regola di rete al registro di sistema che consente l'accesso dalla subnet della VM.Use the az acr network-rule add command to add a network rule to your registry that allows access from the VM's subnet. Sostituire il nome del registro contenitori e l'ID risorsa della subnet nel comando seguente:Substitute the container registry's name and the resource ID of the subnet in the following command:

az acr network-rule add --name mycontainerregistry --subnet <subnet-resource-id>

Continuare a verificare l'accesso al registro di sistema.Continue to Verify access to the registry.

Consentire l'accesso da una rete virtuale-portaleAllow access from a virtual network - portal

Aggiungi endpoint servizio alla subnetAdd service endpoint to subnet

Quando si crea una VM, per impostazione predefinita Azure crea una rete virtuale nello stesso gruppo di risorse.When you create a VM, Azure by default creates a virtual network in the same resource group. Il nome della rete virtuale si basa sul nome della macchina virtuale.The name of the virtual network is based on the name of the virtual machine. Ad esempio, se si specifica il nome della macchina virtuale myDockerVM, il nome di rete virtuale predefinito è myDockerVMVNET, con una subnet denominata myDockerVMSubnet.For example, if you name your virtual machine myDockerVM, the default virtual network name is myDockerVMVNET, with a subnet named myDockerVMSubnet.

Per aggiungere un endpoint di servizio per Container Registry di Azure a una subnet:To add a service endpoint for Azure Container Registry to a subnet:

  1. Nella casella di ricerca nella parte superiore del portale di Azureimmettere reti virtuali.In the search box at the top of the Azure portal, enter virtual networks. Selezionare Reti virtuali quando viene visualizzato nei risultati della ricerca.When Virtual networks appear in the search results, select it.
  2. Dall'elenco di reti virtuali selezionare la rete virtuale in cui è distribuita la macchina virtuale, ad esempio myDockerVMVNET.From the list of virtual networks, select the virtual network where your virtual machine is deployed, such as myDockerVMVNET.
  3. In Impostazioniselezionare Subnet.Under Settings, select Subnets.
  4. Selezionare la subnet in cui è distribuita la macchina virtuale, ad esempio myDockerVMSubnet.Select the subnet where your virtual machine is deployed, such as myDockerVMSubnet.
  5. In endpoint servizioselezionare Microsoft. ContainerRegistry.Under Service endpoints, select Microsoft.ContainerRegistry.
  6. Selezionare Salva.Select Save.

Aggiungi endpoint servizio alla subnet

Configurare l'accesso alla rete per il registro di sistemaConfigure network access for registry

Per impostazione predefinita, un registro contenitori di Azure consente le connessioni da host in qualsiasi rete.By default, an Azure container registry allows connections from hosts on any network. Per limitare l'accesso alla rete virtuale:To limit access to the virtual network:

  1. Nel portale passare al registro contenitori.In the portal, navigate to your container registry.
  2. In Impostazioniselezionare firewall e reti virtuali.Under Settings, select Firewall and virtual networks.
  3. Per negare l'accesso per impostazione predefinita, scegliere di consentire l'accesso da Reti selezionate.To deny access by default, choose to allow access from Selected networks.
  4. Selezionare Aggiungi rete virtuale esistentee selezionare la rete virtuale e la subnet configurate con un endpoint del servizio.Select Add existing virtual network, and select the virtual network and subnet you configured with a service endpoint. Selezionare Aggiungi.Select Add.
  5. Selezionare Salva.Select Save.

Configurare la rete virtuale per il registro contenitori

Continuare a verificare l'accesso al registro di sistema.Continue to Verify access to the registry.

Consenti accesso da un indirizzo IPAllow access from an IP address

In questa sezione configurare il registro contenitori per consentire l'accesso da un intervallo o un indirizzo IP specifico.In this section, configure your container registry to allow access from a specific IP address or range. Vengono forniti i passaggi equivalenti usando l'interfaccia della riga di comando di Azure e portale di Azure.Equivalent steps using the Azure CLI and Azure portal are provided.

Consentire l'accesso da un indirizzo IP-CLIAllow access from an IP address - CLI

Modificare l'accesso di rete predefinito al registro di sistemaChange default network access to registry

Se non è già stato fatto, aggiornare la configurazione del registro di sistema per negare l'accesso per impostazione predefinita.If you haven't already done so, update the registry configuration to deny access by default. Sostituire il nome del registro di sistema con il comando AZ ACR Update seguente:Substitute the name of your registry in the following az acr update command:

az acr update --name myContainerRegistry --default-action Deny

Rimuovere la regola di rete dal registro di sistemaRemove network rule from registry

Se in precedenza è stata aggiunta una regola di rete per consentire l'accesso dalla subnet della VM, rimuovere l'endpoint del servizio e la regola di rete della subnet.If you previously added a network rule to allow access from the VM's subnet, remove the subnet's service endpoint and the network rule. Sostituire il nome del registro contenitori e l'ID risorsa della subnet recuperata in un passaggio precedente del comando AZ ACR Network-Rule Remove :Substitute the container registry's name and the resource ID of the subnet you retrieved in an earlier step in the az acr network-rule remove command:

# Remove service endpoint

az network vnet subnet update \
  --name myDockerVMSubnet \
  --vnet-name myDockerVMVNET \
  --resource-group myResourceGroup \
  --service-endpoints ""

# Remove network rule

az acr network-rule remove --name mycontainerregistry --subnet <subnet-resource-id>

Aggiungi regola di rete al registro di sistemaAdd network rule to registry

Usare il comando AZ ACR Network-rule add per aggiungere una regola di rete al registro di sistema che consenta l'accesso dall'indirizzo IP della macchina virtuale.Use the az acr network-rule add command to add a network rule to your registry that allows access from the VM's IP address. Sostituire il nome del registro contenitori e l'indirizzo IP pubblico della macchina virtuale con il comando seguente.Substitute the container registry's name and the public IP address of the VM in the following command.

az acr network-rule add --name mycontainerregistry --ip-address <public-IP-address>

Continuare a verificare l'accesso al registro di sistema.Continue to Verify access to the registry.

Consentire l'accesso da un indirizzo IP-portaleAllow access from an IP address - portal

Rimuovi regola di rete esistente dal registro di sistemaRemove existing network rule from registry

Se in precedenza è stata aggiunta una regola di rete per consentire l'accesso dalla subnet della VM, rimuovere la regola esistente.If you previously added a network rule to allow access from the VM's subnet, remove the existing rule. Ignorare questa sezione se si vuole accedere al registro di sistema da una macchina virtuale diversa.Skip this section if you want to access the registry from a different VM.

  • Aggiornare le impostazioni della subnet per rimuovere l'endpoint del servizio della subnet per Azure Container Registry.Update the subnet settings to remove the subnet's service endpoint for Azure Container Registry.

    1. Nella portale di Azurepassare alla rete virtuale in cui è distribuita la macchina virtuale.In the Azure portal, navigate to the virtual network where your virtual machine is deployed.
    2. In Impostazioniselezionare Subnet.Under Settings, select Subnets.
    3. Selezionare la subnet in cui è distribuita la macchina virtuale.Select the subnet where your virtual machine is deployed.
    4. In endpoint serviziorimuovere la casella di controllo per Microsoft. ContainerRegistry.Under Service endpoints, remove the checkbox for Microsoft.ContainerRegistry.
    5. Selezionare Salva.Select Save.
  • Rimuovere la regola di rete che consente alla subnet di accedere al registro di sistema.Remove the network rule that allows the subnet to access the registry.

    1. Nel portale passare al registro contenitori.In the portal, navigate to your container registry.
    2. In Impostazioniselezionare firewall e reti virtuali.Under Settings, select Firewall and virtual networks.
    3. In reti virtualiselezionare il nome della rete virtuale e quindi fare clic su Rimuovi.Under Virtual networks, select the name of the virtual network, and then select Remove.
    4. Selezionare Salva.Select Save.

Aggiungi regola di rete al registro di sistemaAdd network rule to registry

  1. Nel portale passare al registro contenitori.In the portal, navigate to your container registry.
  2. In Impostazioniselezionare firewall e reti virtuali.Under Settings, select Firewall and virtual networks.
  3. Se non è già stato fatto, scegliere di consentire l'accesso dalle reti selezionate.If you haven't already done so, choose to allow access from Selected networks.
  4. In reti virtualiassicurarsi che non sia selezionata alcuna rete.Under Virtual networks, ensure no network is selected.
  5. In Firewallimmettere l'indirizzo IP pubblico di una macchina virtuale.Under Firewall, enter the public IP address of a VM. In alternativa, immettere un intervallo di indirizzi nella notazione CIDR che contiene l'indirizzo IP della macchina virtuale.Or, enter an address range in CIDR notation that contains the VM's IP address.
  6. Selezionare Salva.Select Save.

Configurare la regola del firewall per il registro contenitori

Continuare a verificare l'accesso al registro di sistema.Continue to Verify access to the registry.

Verificare l'accesso al registro di sistemaVerify access to the registry

Dopo alcuni minuti di attesa per l'aggiornamento della configurazione, verificare che la macchina virtuale possa accedere al registro contenitori.After waiting a few minutes for the configuration to update, verify that the VM can access the container registry. Creare una connessione SSH alla macchina virtuale ed eseguire il comando AZ ACR login per accedere al registro.Make an SSH connection to your VM, and run the az acr login command to login to your registry.

az acr login --name mycontainerregistry

È possibile eseguire operazioni del registro di sistema, ad esempio Esegui docker pull per eseguire il pull di un'immagine di esempio dal registro di sistema.You can perform registry operations such as run docker pull to pull a sample image from the registry. Sostituire un'immagine e un valore di tag appropriati per il registro di sistema, preceduto dal nome del server di accesso del registro di sistema (tutti minuscoli):Substitute an image and tag value appropriate for your registry, prefixed with the registry login server name (all lowercase):

docker pull mycontainerregistry.azurecr.io/hello-world:v1

Docker esegue correttamente il pull dell'immagine nella macchina virtuale.Docker successfully pulls the image to the VM.

Questo esempio dimostra che è possibile accedere al registro contenitori privato tramite la regola di accesso alla rete.This example demonstrates that you can access the private container registry through the network access rule. Non è tuttavia possibile accedere al registro di sistema da un host di accesso diverso in cui non è configurata una regola di accesso alla rete.However, the registry can't be accessed from a different login host that doesn't have a network access rule configured. Se si tenta di eseguire l'accesso da un altro host usando il comando az acr login o docker login, l'output sarà simile al seguente:If you attempt to login from another host using the az acr login command or docker login command, output is similar to the following:

Error response from daemon: login attempt to https://xxxxxxx.azurecr.io/v2/ failed with status: 403 Forbidden

Ripristinare l'accesso predefinito al registro di sistemaRestore default registry access

Per ripristinare il registro di sistema in modo da consentire l'accesso per impostazione predefinita, rimuovere tutte le regole di rete configurate.To restore the registry to allow access by default, remove any network rules that are configured. Impostare quindi l'azione predefinita per consentire l'accesso.Then set the default action to allow access. Vengono forniti i passaggi equivalenti usando l'interfaccia della riga di comando di Azure e portale di Azure.Equivalent steps using the Azure CLI and Azure portal are provided.

Ripristinare l'accesso predefinito al registro di sistema-CLIRestore default registry access - CLI

Rimuovere le regole di reteRemove network rules

Per visualizzare un elenco di regole di rete configurate per il registro, eseguire il comando AZ ACR Network-Rule list seguente:To see a list of network rules configured for your registry, run the following az acr network-rule list command:

az acr network-rule list--name mycontainerregistry 

Per ogni regola configurata, eseguire il comando AZ ACR Network-Rule Remove per rimuoverlo.For each rule that is configured, run the az acr network-rule remove command to remove it. Ad esempio:For example:

# Remove a rule that allows access for a subnet. Substitute the subnet resource ID.

az acr network-rule remove \
  --name mycontainerregistry \
  --subnet /subscriptions/ \
  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myDockerVMVNET/subnets/myDockerVMSubnet

# Remove a rule that allows access for an IP address or CIDR range such as 23.45.1.0/24.

az acr network-rule remove \
  --name mycontainerregistry \
  --ip-address 23.45.1.0/24

Consentire l'accessoAllow access

Sostituire il nome del registro di sistema con il comando AZ ACR Update seguente:Substitute the name of your registry in the following az acr update command:

az acr update --name myContainerRegistry --default-action Allow

Ripristinare l'accesso predefinito al registro di sistema-portaleRestore default registry access - portal

  1. Nel portale passare al registro contenitori e selezionare firewall e reti virtuali.In the portal, navigate to your container registry and select Firewall and virtual networks.
  2. In reti virtualiselezionare ogni rete virtuale e quindi fare clic su Rimuovi.Under Virtual networks, select each virtual network, and then select Remove.
  3. In Firewallselezionare ogni intervallo di indirizzi, quindi selezionare l'icona Elimina.Under Firewall, select each address range, and then select the Delete icon.
  4. In Consenti accesso daselezionare tutte le reti.Under Allow access from, select All networks.
  5. Selezionare Salva.Select Save.

Pulire le risorseClean up resources

Se sono state create tutte le risorse di Azure nello stesso gruppo di risorse e non sono più necessarie, è possibile eliminare facoltativamente le risorse usando un singolo comando AZ Group Delete :If you created all the Azure resources in the same resource group and no longer need them, you can optionally delete the resources by using a single az group delete command:

az group delete --name myResourceGroup

Per pulire le risorse nel portale, passare al gruppo di risorse myResourceGroup.To clean up your resources in the portal, navigate to the myResourceGroup resource group. Una volta caricato il gruppo di risorse, fare clic su Elimina gruppo di risorse per rimuovere il gruppo di risorse e le risorse archiviate.Once the resource group is loaded, click on Delete resource group to remove the resource group and the resources stored there.

Passaggi successiviNext steps

Sebbene brevemente, questo articolo ha illustrato diverse risorse di rete virtuale e funzionalità.Several virtual network resources and features were discussed in this article, though briefly. La documentazione di Rete virtuale di Azure descrive in modo esteso gli argomenti seguenti:The Azure Virtual Network documentation covers these topics extensively: