Configurare le regole di rete per IP pubblico

Per impostazione predefinita, un registro contenitori di Azure accetta le connessioni Internet da host in qualsiasi rete. Questo articolo illustra come configurare il registro contenitori per consentire l'accesso solo da indirizzi o intervalli di indirizzi IP pubblici specifici. Vengono forniti i passaggi equivalenti usando l'interfaccia della riga di comando di Azure e il portale di Azure.

Le regole di rete IP vengono configurate nell'endpoint del registro di sistema pubblico. Le regole di rete IP non si applicano agli endpoint privati configurati con collegamento privato

La configurazione delle regole di accesso IP è disponibile per il livello di servizio Premium del registro contenitori. Per informazioni sui livelli di servizio del registro e sui limiti, vedere livelli di Registro Azure Container.

Ogni Registro di sistema supporta un massimo di 100 regole di accesso IP.

Importante

Alcune funzionalità potrebbero non essere disponibili o richiedere più configurazioni in un registro contenitori che limita l'accesso a endpoint privati, subnet selezionate o indirizzi IP.

  • Quando l'accesso alla rete pubblica a un registro è disabilitato, l'accesso al Registro di sistema da parte di determinati servizi attendibili, tra cui Centro sicurezza di Azure richiede l'abilitazione di un'impostazione di rete per ignorare le regole di rete.
  • Dopo aver disabilitato l'accesso alla rete pubblica, le istanze di determinati servizi di Azure, tra cui Azure DevOps Services, non sono attualmente in grado di accedere al registro contenitori.
  • Gli endpoint privati non sono attualmente supportati con gli agenti gestiti di Azure DevOps. Sarà necessario usare un agente self-hosted con la linea di rete per l'endpoint privato.
  • Se il Registro di sistema ha un endpoint privato approvato e l'accesso alla rete pubblica è disabilitato, i repository e i tag non possono essere elencati all'esterno della rete virtuale usando il portale di Azure, l'interfaccia della riga di comando di Azure o altri strumenti.

Accesso da rete pubblica selezionata - Interfaccia della riga di comando

Modificare la regola predefinita di accesso al registro

Per limitare l'accesso a una rete pubblica selezionata, modificare innanzitutto l'azione predefinita per negare l'accesso. Sostituire il nome del registro con nel seguente comando az acr update:

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

Aggiungere una regola di rete al registro

Usare il comando az acr network-rule add per aggiungere una regola di rete al registro che consenta l'accesso da un indirizzo o intervallo di indirizzi IP pubblici. Ad esempio, sostituire il nome del registro contenitori e l'indirizzo IP pubblico di una macchina virtuale in una rete virtuale.

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

Nota

Dopo aver aggiunto una regola, questa avrà effetto dopo alcuni minuti.

Accesso da rete pubblica selezionata - Portale

  1. Nel portale passare al registro contenitori.
  2. In Impostazioni selezionare Rete.
  3. Nella scheda Accesso pubblico selezionare questa opzione per consentire l'accesso pubblico da Reti selezionate.
  4. In Firewall immettere un indirizzo IP pubblico, ad esempio l'indirizzo IP pubblico di una macchina virtuale in una rete virtuale. In alternativa, immettere un intervallo di indirizzi nella notazione CIDR che contenga l'indirizzo IP della macchina virtuale.
  5. Selezionare Salva.

Configurare una regola del firewall per il registro contenitori

Nota

Dopo aver aggiunto una regola, questa avrà effetto dopo alcuni minuti.

Suggerimento

Facoltativamente, abilitare l'accesso al registro da un computer client locale o da un intervallo di indirizzi IP. Per consentire l'accesso, è necessario l'indirizzo IPv4 pubblico del computer. È possibile trovare questo indirizzo cercando "Qual è il mio indirizzo IP" in un browser Internet. L'indirizzo IPv4 del client corrente viene visualizzato automaticamente anche quando si configurano le impostazioni del firewall nella pagina Rete del portale.

Disabilitare l'accesso alla rete pubblica

Facoltativamente, disabilitare l'endpoint pubblico nel registro di sistema. La disabilitazione dell'endpoint pubblico sostituisce tutte le configurazioni del firewall. Ad esempio, potrebbe essere necessario disabilitare l'accesso pubblico a un registro protetto in una rete virtuale usando un collegamento privato.

Nota

Se il Registro di sistema è configurato in una rete virtuale con un endpoint di servizio, la disabilitazione dell'accesso all'endpoint pubblico del Registro di sistema disabilita anche l'accesso al Registro di sistema all'interno della rete virtuale.

Disabilitare l'accesso pubblico - Interfaccia della riga di comando

Per disabilitare l'accesso pubblico usando l'interfaccia della riga di comando di Azure, eseguire az acr update e impostare --public-network-enabled su false. L'argomento public-network-enabled richiede l'interfaccia della riga di comando di Azure 2.6.0 o versione successiva.

az acr update --name myContainerRegistry --public-network-enabled false

Disabilitare l'accesso pubblico - Portale

  1. Nel portale passare al registro contenitori e selezionare Impostazioni > rete.
  2. Nella scheda Accesso pubblico in Consenti l'accesso alla rete pubblica selezionare Disabilitato. Selezionare quindi Salva.

Disabilitare l'accesso pubblico

Ripristinare l'accesso alla rete pubblica

Per abilitare nuovamente l'endpoint pubblico, aggiornare le impostazioni di rete per consentire l'accesso pubblico. L'abilitazione dell'endpoint pubblico sostituisce tutte le configurazioni del firewall.

Ripristinare l'accesso pubblico - Interfaccia della riga di comando

Eseguire az acr update e impostare --public-network-enabled su true.

Nota

L'argomento public-network-enabled richiede l'interfaccia della riga di comando di Azure 2.6.0 o versione successiva.

az acr update --name myContainerRegistry --public-network-enabled true

Ripristinare l'accesso pubblico - Portale

  1. Nel portale passare al registro contenitori e selezionare Impostazioni > rete.
  2. Nella scheda Accesso pubblico in Consenti l'accesso alla rete pubblica selezionare Tutte le reti. Selezionare quindi Salva.

Accesso pubblico da tutte le reti

Risolvere problemi

Accesso dietro il proxy HTTPS

Se viene impostata una regola di rete pubblica o l'accesso pubblico al Registro di sistema viene negato, i tentativi di accesso al Registro di sistema da una rete pubblica non consentita avranno esito negativo. L'accesso client da dietro un proxy HTTPS avrà esito negativo anche se non è impostata una regola di accesso per il proxy. Verrà visualizzato un messaggio di errore simile a Error response from daemon: login attempt failed with status: 403 Forbidden o Looks like you don't have access to registry.

Questi errori possono verificarsi anche se si usa un proxy HTTPS consentito da una regola di accesso alla rete, ma il proxy non è configurato correttamente nell'ambiente client. Verificare che sia il client Docker che il daemon Docker siano configurati per il comportamento del proxy. Per informazioni dettagliate, vedere proxy HTTP/HTTPS nella documentazione di Docker.

Accesso da Azure Pipelines

Se si usa Azure Pipelines con un registro Azure Container che limita l'accesso a indirizzi IP specifici, la pipeline potrebbe non essere in grado di accedere al Registro di sistema, perché l'indirizzo IP in uscita dalla pipeline non è corretto. Per impostazione predefinita, la pipeline esegue processi usando un agente ospitato da Microsoft in un pool di macchine virtuali con un set di indirizzi IP modificato.

Una soluzione alternativa consiste nel modificare l'agente usato per eseguire la pipeline da Microsoft ospitata in self-hosted. Con un agente self-hosted in esecuzione in un computer Windows o Linux gestito, si controlla l'indirizzo IP in uscita della pipeline ed è possibile aggiungere questo indirizzo in una regola di accesso IP del Registro di sistema.

Accesso dal servizio Azure Kubernetes

Se si usa servizio Azure Kubernetes (AKS) con un registro Azure Container che limita l'accesso a indirizzi IP specifici, non è possibile configurare un indirizzo IP predefinito del servizio Azure Kubernetes. L'indirizzo IP in uscita dal cluster del servizio Azure Kubernetes viene assegnato in modo casuale.

Per consentire al cluster del servizio Azure Kubernetes di accedere al Registro di sistema, sono disponibili queste opzioni:

Passaggi successivi