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 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 da parte di determinati servizi attendibili, incluso il 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. È necessario usare un agente self-hosted con la linea di rete per l'endpoint privato.
- Se il registro 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
- Nel portale passare al registro contenitori.
- In Impostazioni selezionare Rete.
- Nella scheda Accesso pubblico selezionare questa opzione per consentire l'accesso pubblico da Reti selezionate.
- 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.
- Seleziona Salva.
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
- Nel portale passare al registro contenitori e selezionare Impostazioni > Rete.
- Nella scheda Accesso pubblico in Consenti l'accesso alla rete pubblica selezionare Disabilitato. Quindi selezionare Salva.
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
- Nel portale passare al registro contenitori e selezionare Impostazioni > Rete.
- Nella scheda Accesso pubblico in Consenti l'accesso alla rete pubblica selezionare Tutte le reti. Quindi selezionare Salva.
Risoluzione dei problemi
Accesso con 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 con 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
.
Tali 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. Assicurarsi 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 è fisso. Per impostazione predefinita, la pipeline esegue i processi usando un agente ospitato da Microsoft in un pool di macchine virtuali con un set di indirizzi IP dinamico.
Una soluzione alternativa consiste nel cambiare l'agente utilizzato per eseguire la pipeline da Microsoft-hosted a self-hosted. Con un agente self-hosted in esecuzione in una macchina Windows o Linux gestita, si controlla l'indirizzo IP in uscita della pipeline ed è possibile aggiungere questo indirizzo a una regola di accesso IP del Registro di sistema.
Accesso da AKS
Se si usa il servizio Azure Kubernetes (AKS) con un registro Azure Container che limita l'accesso a indirizzi IP specifici, non è possibile configurare un indirizzo IP AKS fisso per impostazione predefinita. 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:
- Se si usa Azure Load Balancer Basic, configurare un indirizzo IP statico per il cluster del servizio Azure Kubernetes.
- Se si usa Azure Load Balancer Standard, vedere indicazioni per controllare il traffico in uscita dal cluster.
Passaggi successivi
- Per limitare l'accesso a un registro usando un endpoint privato in una rete virtuale, vedere Configurare un collegamento privato di Azure per un registro contenitori di Azure.
- Per configurare regole di accesso al registro da dietro un firewall del client, vedere Configurare le regole per accedere a un registro contenitori di Azure dietro un firewall.
- Per altre indicazioni sulla risoluzione dei problemi, vedere Risolvere i problemi di rete con Registro di sistema.