Configurare le regole per accedere a un registro contenitori di Azure dietro un firewall

Questo articolo illustra come configurare le regole nel firewall per consentire l'accesso a un registro contenitori di Azure. Ad esempio, un dispositivo Azure IoT Edge dietro un firewall o un server proxy potrebbe dover accedere a un registro contenitori per eseguire il pull di un'immagine del contenitore. In alternativa, un server bloccato in una rete locale potrebbe dover accedere per eseguire il push di un'immagine.

Se invece si vuole configurare l'accesso alla rete in ingresso a un registro contenitori solo all'interno di una rete virtuale di Azure, vedere Configurare un collegamento privato di Azure per un registro contenitori di Azure.

Informazioni sugli endpoint del registro contenitori

Per eseguire il pull o il push di immagini o altri artefatti in un registro contenitori di Azure, un client come un daemon Docker deve interagire su HTTPS con due endpoint distinti. Per i client che accedono a un registro da dietro un firewall, è necessario configurare le regole di accesso per entrambi gli endpoint. Entrambi gli endpoint vengono raggiunti sulla porta 443.

  • Endpoint API REST del registro contenitori: le operazioni di autenticazione e gestione del registro contenitori vengono gestite tramite l'endpoint API REST pubblico del registro. Questo endpoint è il nome del server di accesso del registro. Esempio: myregistry.azurecr.io

    • Endpoint DELL'API REST del Registro di sistema per i certificati : registro Azure Container usa un certificato SSL con caratteri jolly per tutti i sottodomini. Quando ci si connette al Registro Azure Container usando SSL, il client deve essere in grado di scaricare il certificato per l'handshake TLS. In questi casi, azurecr.io deve anche essere accessibile.
  • Endpoint di archiviazione (dati) : Azure alloca l'archiviazione BLOB negli account di archiviazione di Azure per conto di ogni registro per gestire i dati per le immagini del contenitore e altri artefatti. Quando un client accede a livelli immagine in un registro contenitori di Azure, effettua richieste usando un endpoint dell'account di archiviazione fornito dal registro.

Se si tratta di un registro con replica geografica, un client potrebbe dover interagire con l'endpoint dati in un'area specifica o in più aree replicate.

Consentire l'accesso agli endpoint REST e di dati

  • Endpoint REST: consentire l'accesso al nome del server di accesso completo al registro <registry-name>.azurecr.io o a un intervallo di indirizzi IP associato
  • Endpoint di archiviazione (dati) : consentire l'accesso a tutti gli account di archiviazione BLOB di Azure usando il carattere jolly *.blob.core.windows.net o un intervallo di indirizzi IP associato.

Nota

Registro Azure Container introduce endpoint di dati dedicati, consentendo di definire rigorosamente l'ambito delle regole del firewall del client per l'archiviazione del registro. Facoltativamente, è possibile abilitare gli endpoint di dati in tutte le aree in cui il registro viene individuato o replicato usando il modulo <registry-name>.<region>.data.azurecr.io.

Informazioni sul nome di dominio completo del Registro di sistema

Il Registro di sistema ha due FQDN, l'URL di accesso e l'endpoint dati.

  • Sia l'URL di accesso che l'endpoint dati sono accessibili dall'interno della rete virtuale, usando l'INDIRIZZO IP privato abilitando un collegamento privato.
  • Un registro che non usa endpoint dati deve accedere ai dati da un endpoint del modulo *.blob.core.windows.net e non fornisce l'isolamento necessario durante la configurazione delle regole del firewall.
  • Un registro con un collegamento privato abilitato ottiene automaticamente l'endpoint dati dedicato.
  • Viene creato un endpoint dati dedicato per ogni area per un registro.
  • L'URL di accesso rimane invariato indipendentemente dal fatto che l'endpoint dati sia abilitato o disabilitato.

Consentire l'accesso in base all'indirizzo IP

Se l'organizzazione dispone di criteri per consentire l'accesso solo a indirizzi IP o intervalli di indirizzi specifici, scaricare il documento Tag di servizio e intervalli IP di Azure: cloud pubblico.

Per trovare gli intervalli IP dell'endpoint REST del Registro Azure Container per i quali è necessario consentire l'accesso, cercare AzureContainerRegistry nel file JSON.

Importante

Gli intervalli di indirizzi IP per i servizi di Azure possono cambiare e gli aggiornamenti vengono pubblicati settimanalmente. Scaricare regolarmente il file JSON e apportare gli aggiornamenti necessari nelle regole di accesso. Se lo scenario prevede la configurazione delle regole del gruppo di sicurezza di rete in una rete virtuale di Azure o si usa Firewall di Azure, usare invece il tag del servizioAzureContainerRegistry.

Indirizzi IP REST per tutte le aree

{
  "name": "AzureContainerRegistry",
  "id": "AzureContainerRegistry",
  "properties": {
    "changeNumber": 10,
    "region": "",
    "platform": "Azure",
    "systemService": "AzureContainerRegistry",
    "addressPrefixes": [
      "13.66.140.72/29",
    [...]

Indirizzi IP REST per un'area specifica

Cercare l'area specifica, ad esempio AzureContainerRegistry.AustraliaEast.

{
  "name": "AzureContainerRegistry.AustraliaEast",
  "id": "AzureContainerRegistry.AustraliaEast",
  "properties": {
    "changeNumber": 1,
    "region": "australiaeast",
    "platform": "Azure",
    "systemService": "AzureContainerRegistry",
    "addressPrefixes": [
      "13.70.72.136/29",
    [...]

Indirizzi IP di archiviazione per tutte le aree

{
  "name": "Storage",
  "id": "Storage",
  "properties": {
    "changeNumber": 19,
    "region": "",
    "platform": "Azure",
    "systemService": "AzureStorage",
    "addressPrefixes": [
      "13.65.107.32/28",
    [...]

Indirizzi IP di archiviazione per aree specifiche

Cercare l'area specifica, ad esempio storage.AustraliaCentral.

{
  "name": "Storage.AustraliaCentral",
  "id": "Storage.AustraliaCentral",
  "properties": {
    "changeNumber": 1,
    "region": "australiacentral",
    "platform": "Azure",
    "systemService": "AzureStorage",
    "addressPrefixes": [
      "52.239.216.0/23"
    [...]

Consentire l'accesso in base ai tag del servizio

In una rete virtuale di Azure, usare le regole di sicurezza di rete per filtrare il traffico da una risorsa, ad esempio una macchina virtuale, a un registro contenitori. Per semplificare la creazione delle regole di rete di Azure, usare il tag del servizioAzureContainerRegistry. Un tag di servizio rappresenta un gruppo di prefissi di indirizzi IP per accedere a un servizio di Azure a livello globale o per area di Azure. Il tag viene aggiornato automaticamente in caso di modifica degli indirizzi.

Ad esempio, creare una regola del gruppo di sicurezza di rete in uscita con destinazione AzureContainerRegistry per consentire il traffico verso un registro contenitori di Azure. Per consentire l'accesso al tag del servizio solo in un'area specifica, specificare l'area nel formato seguente: AzureContainerRegistry.[nome regione].

Abilitare endpoint dati dedicati

Avviso

Se in precedenza è stato configurato l'accesso del firewall client agli endpoint *.blob.core.windows.net esistenti, il passaggio a endpoint di dati dedicati influirà sulla connettività client, causando errori di pull. Per assicurarsi che i client dispongano di un accesso coerente, aggiungere le nuove regole dell'endpoint dei dati alle regole del firewall del client. Al termine, abilitare gli endpoint dati dedicati per i registri tramite l'interfaccia della riga di comando di Azure o altri strumenti.

Gli endpoint dati dedicati sono una funzionalità facoltativa del livello di servizio del registro contenitori Premium. Per informazioni sui livelli di servizio e sui limiti del registro contenitori, vedere Livelli di servizio del Registro Azure Container.

È possibile abilitare endpoint dati dedicati usando il portale di Azure o l'interfaccia della riga di comando di Azure. Gli endpoint dati seguono un modello a livello di area, <registry-name>.<region>.data.azurecr.io. In un registro con replica geografica, l'abilitazione degli endpoint dati abilita gli endpoint in tutte le aree di replica.

Portale

Per abilitare gli endpoint dati tramite il portale:

  1. Passare al registro contenitori.
  2. Selezionare Rete>Accesso pubblico.
  3. Selezionare la casella di controllo Abilita endpoint dati dedicato.
  4. Selezionare Salva.

Gli endpoint dati vengono visualizzati nel portale.

Endpoint dati dedicati nel portale

Interfaccia della riga di comando di Azure

Per abilitare gli endpoint dati tramite l'interfaccia della riga di comando di Azure, usare l'interfaccia della riga di comando di Azure versione 2.4.0 o superiore. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Il comando az acr update seguente abilita gli endpoint dati dedicati in un registro myregistry.

az acr update --name myregistry --data-endpoint-enabled

Per visualizzare gli endpoint dati, usare il comando az acr show-endpoints:

az acr show-endpoints --name myregistry

L'output a scopo dimostrativo mostra due endpoint regionali

{
    "loginServer": "myregistry.azurecr.io",
    "dataEndpoints": [
        {
            "region": "eastus",
            "endpoint": "myregistry.eastus.data.azurecr.io",
        },
        {
            "region": "westus",
            "endpoint": "myregistry.westus.data.azurecr.io",
        }
    ]
}

Dopo avere configurato gli endpoint dati dedicati per il registro, è possibile abilitare le regole di accesso del firewall client per gli endpoint dati. Abilitare le regole di accesso dell'endpoint dati per tutte le aree del registro necessarie.

Configurare le regole del firewall per il client per MCR

Se è necessario accedere a Registro Azure Container Microsoft (MCR) da dietro un firewall, vedere le indicazioni per configurare le regole del firewall del client MCR. MCR è il registro di sistema principale per tutte le immagini Docker pubblicate da Microsoft, ad esempio le immagini di Windows Server.

Passaggi successivi