Endpoint dati dedicati in Registro Azure Container.

Gli endpoint dati dedicati in Registro Azure Container forniscono URL con ambito definito e specifici per il registro per il download dei livelli delle immagini contenitore, sostituendo gli endpoint predefiniti con caratteri jolly dell'account di archiviazione di Azure (*.blob.core.windows.net). Ciò consente regole del firewall client con ambito stretto e riduce i rischi di esfiltrazione dei dati.

Note

Gli endpoint dati dedicati vengono usati solo durante i download dei BLOB del livello (pull). Quando si caricano blob durante le operazioni di push, questi passano tramite il server di login (endpoint globale o endpoint regionale), non tramite l'endpoint dati dedicato.

La funzione degli endpoint dati dedicati è disponibile per i registri nel tier di servizioPremium.

Gli endpoint di dati dedicati sono anche un requisito preliminare per gli endpoint dual-stack IPv6. Per poter impostare il protocollo dell'endpoint di un registro su IPv4AndIPv6, è necessario che il registro abbia abilitati endpoint dati dedicati.

Come funzionano i download delle immagini dei container: server di autenticazione e reindirizzamento 307 agli endpoint dei dati

Il pull del contenuto da un registro prevede due tipi di endpoint:

  1. Endpoint del server di accesso : usato per l'autenticazione e l'individuazione del contenuto. Il server di accesso può essere:

    • L'endpoint globale (contoso.azurecr.io): il Registro Azure Container indirizza automaticamente le richieste alla replica geografica con il miglior profilo di prestazioni di rete per il client. Per altre informazioni, vedere Replica geografica.
    • Un endpoint regional (contoso.eastus.geo.azurecr.io) : instrada le richieste direttamente a una replica geografica specifica, ignorando il routing gestito Azure. Per altre informazioni, vedere Replica geografica.

    Quando si esegue un comando come docker pull contoso.azurecr.io/hello-world (endpoint globale) o docker pull contoso.eastus.geo.azurecr.io/hello-world (endpoint a livello di area), il client esegue l'autenticazione nel server di accesso e negozia i livelli che costituiscono l'artefatto richiesto.

  2. Endpoint dati : usato per scaricare i BLOB effettivi del livello immagine. Dopo che il server di accesso identifica i livelli necessari, reindirizza il client per scaricarli da un endpoint dati.

Diagramma che illustra gli endpoint.

ACR gestisce gli account di archiviazione sottostanti per gli endpoint di dati. I vantaggi includono il bilanciamento del carico, la suddivisione del contenuto tra gli account di archiviazione per un recapito simultaneo più elevato e il supporto di più aree con la replica geografica.

Senza endpoint dati dedicati

Senza endpoint dati dedicati, il server di accesso emette un reindirizzamento 307 per il download dei BLOB dei livelli agli account di archiviazione di Azure tramite URL con caratteri jolly (*.blob.core.windows.net).

Utilizza l'endpoint globale (routing gestito da Azure):

Diagramma che mostra il flusso delle richieste senza endpoint dati dedicati tramite l'endpoint globale: un client si connette a contoso.azurecr.io, il routing gestito da Azure seleziona la georeplica migliore e la georeplica emette un reindirizzamento 307 a *.blob.core.windows.net per il download dei BLOB di livello.

Uso di un endpoint a livello di area (routing specificato dal client):

Diagramma che mostra il flusso della richiesta senza endpoint dati dedicati usando un endpoint regionale: un client si connette a contoso.eastus.geo.azurecr.io, la richiesta viene indirizzata direttamente alla geo-replica degli Stati Uniti orientali e la geo-replica emette un reindirizzamento 307 a *.blob.core.windows.net per il download dei BLOB del layer.

In entrambi i casi, per consentire tali download tramite il firewall, è necessario autorizzare *.blob.core.windows.net, un carattere jolly generico che copre tutti gli account di archiviazione di Azure, non solo lo spazio di archiviazione del registro.

Con endpoint dati dedicati

Con gli endpoint dati dedicati abilitati, il server di accesso restituisce un reindirizzamento 307 per il download dei BLOB dei livelli verso URL specifici del registro con ambito regionale.

Utilizza l'endpoint globale (routing gestito da Azure):

Diagramma che mostra il flusso di richiesta con endpoint dati dedicati usando l'endpoint globale: un client si connette a contoso.azurecr.io, il routing gestito Azure seleziona la replica geografica migliore e la replica geografica genera un reindirizzamento 307 a contoso.eastus.data.azurecr.io per i download blob di livello.

Uso di un endpoint a livello di area (routing specificato dal client):

Diagramma che mostra il flusso della richiesta con endpoint dati dedicati tramite un endpoint regionale: un client si connette a contoso.eastus.geo.azurecr.io, la richiesta viene indirizzata direttamente alla replica geografica di East US e la replica geografica emette un reindirizzamento 307 a contoso.eastus.data.azurecr.io per il download dei BLOB del layer.

Ogni replica geografica ottiene un proprio endpoint dati dedicato usando il modello [registry].[region].data.azurecr.io. Le regole del firewall possono essere limitate a questi endpoint specifici anziché a una wildcard generica.

Perché gli endpoint dati dedicati sono importanti

Rischio di esfiltrazione dei dati senza endpoint dedicati ai dati

Senza endpoint di dati dedicati, le regole del firewall devono consentire a *.blob.core.windows.net di scaricare i layer. Questo carattere jolly generico consente l'accesso a tutti gli account di archiviazione di Azure, non solo all'archiviazione del registro. Un attore non valido potrebbe distribuire il codice che scrive i dati in qualsiasi account di archiviazione Azure raggiungibile dalla rete.

Diagramma che illustra i rischi di esfiltrazione dei dati client.

Regole del firewall con ambito definito ed endpoint dati dedicati

Gli endpoint dati dedicati consentono di sostituire il carattere jolly *.blob.core.windows.net generico con regole del firewall con ambito per gli endpoint dati del registro specifico. Ad esempio, è possibile consentire solo contoso.eastus.data.azurecr.io e contoso.westeurope.data.azurecr.io nella configurazione del firewall, limitando l'accesso all'archiviazione del Registro di sistema e bloccando l'esfiltrazione ad altri account di archiviazione.

Diagramma che illustra l'esempio Contoso con endpoint dati dedicati.

Questo vale per i client che si connettono da host locali, dispositivi IoT, agenti di compilazione personalizzati o qualsiasi ambiente in cui gli endpoint privati non sono un'opzione.

Endpoint dati dedicati con replica geografica

Per i registri con replica geografica , ogni replica geografica ottiene il proprio endpoint dati dedicato. Il modello di URL è [registry].[region].data.azurecr.io.

Quando si preleva un'immagine dall'endpoint globale, ACR indirizza la richiesta alla georeplica con le migliori prestazioni di rete per il client. La geo-replica di servizio emette quindi un reindirizzamento 307 per i download dei BLOB dei livelli verso il proprio endpoint dati dedicato. Il reindirizzamento rimane sempre all'interno della stessa area della replica geografica di servizio, ovvero un pull indirizzato alla replica geografica degli Stati Uniti orientali reindirizza sempre a contoso.eastus.data.azurecr.io, mai a un endpoint dati dedicato in un'area diversa.

Questo vale anche quando si usano endpoint a livello di area. Un'operazione pull da un endpoint a livello di area (contoso.eastus.geo.azurecr.io) reindirizza i download dei livelli a contoso.eastus.data.azurecr.io, mai tra aree diverse. Ciò significa che le regole del firewall possono essere definite per ogni regione.

Abilitare endpoint dati dedicati

Note

Se in precedenza è stato configurato l'accesso del firewall client agli endpoint *.blob.core.windows.net esistenti, il passaggio a endpoint di dati dedicati influisce 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.

Durante lo scaricamento delle immagini, se gli endpoint dedicati per i dati sono abilitati, Registro Azure Container (ACR) fornisce al client un collegamento di download temporaneo ogni volta che è necessario scaricare uno strato dell'immagine. Questo collegamento punta all'endpoint di dati dedicato ed è valido per almeno 20 minuti e fino a 30 minuti, e fornisce un URL sicuro a durata limitata per il download del livello. Dopo la scadenza del collegamento, il client richiede semplicemente uno nuovo se deve scaricare un altro livello durante il pull delle immagini.

È 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 replicato geograficamente, l'abilitazione degli endpoint dati attiva gli endpoint in tutte le aree di replica.

Abilitare gli endpoint dati dedicati usando il portale di Azure

  1. Vai al tuo registro dei contenitori.
  2. Nel menu del servizio, in Impostazioni, selezionare Rete.
  3. In Accesso pubblico, selezionare la casella di controllo Usa endpoint dati dedicato.
  4. Seleziona Salva.

Gli endpoint dati vengono ora visualizzati nel portale di Azure.

Abilitare gli endpoint dati dedicati usando l'interfaccia della riga di comando di Azure

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

Questo output di esempio mostra lo schema completo dell'endpoint, inclusi gli endpoint dati dedicati e gli endpoint a livello di area (se abilitati):

{
    "loginServer": "myregistry.azurecr.io",
    "dataEndpoints": [
        {
            "region": "eastus",
            "endpoint": "myregistry.eastus.data.azurecr.io"
        },
        {
            "region": "westus",
            "endpoint": "myregistry.westus.data.azurecr.io"
        }
    ],
    "regionalEndpoints": [
        {
            "region": "eastus",
            "endpoint": "myregistry.eastus.geo.azurecr.io"
        },
        {
            "region": "westus",
            "endpoint": "myregistry.westus.geo.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. Attivare le regole di accesso all'endpoint dati per tutte le regioni del registro richieste. Per altre informazioni, vedere Configurare le regole per accedere a un registro contenitori Azure dietro un firewall.

Limitazione dell'accesso di rete agli endpoint dati

Dopo aver abilitato gli endpoint dati dedicati, è possibile limitare il modo in cui i client raggiungono tali endpoint. Esistono due approcci:

Endpoint privati di Azure (rete virtuale)

Gli endpoint privati di Azure sono il modo più sicuro per controllare l'accesso di rete dai client presenti in una rete virtuale al registro. Quando vengono configurati endpoint privati, sia il server di accesso (endpoint globale ed endpoint regionali) sia gli endpoint dei dati sono accessibili dall'interno della rete virtuale tramite indirizzi IP privati assegnati a una risorsa di endpoint privato nella rete virtuale. I clienti possono anche disabilitare l'accesso alla rete pubblica nel Registro di sistema, assicurando che gli endpoint dati dedicati siano raggiungibili solo tramite l'endpoint privato.

Se un registro ha almeno un endpoint privato configurato, gli endpoint dati dedicati vengono abilitati automaticamente. Per altre informazioni, vedere Connettersi privatamente a un registro tramite una rete virtuale usando gli endpoint privati.

Considerazioni sull'indirizzo IP dell'endpoint privato

Ogni risorsa di endpoint privato usa indirizzi IP privati della subnet della rete virtuale. Pianifica di conseguenza il dimensionamento della subnet:

  • 1 IP per l'endpoint globale (myregistry.azurecr.io)
  • 1 IP per replica geografica per gli endpoint dati dedicati (myregistry.<region>.data.azurecr.io), abilitato automaticamente quando viene configurato un endpoint privato
  • 1 IP per replica geografica per endpoint a livello di area (myregistry.<region>.geo.azurecr.io) - solo se gli endpoint a livello di area sono abilitati nel Registro di sistema

Ad esempio, un registro con 3 repliche geografiche e gli endpoint regionali abilitati richiede 1 (globale) + 3 (dati) + 3 (regionali) = 7 indirizzi IP privati per ogni risorsa di endpoint privato. Per altre informazioni, vedere Connettersi privatamente a un registro tramite una rete virtuale usando gli endpoint privati.

Regole del firewall client

Se gli endpoint privati non sono un'opzione, configura le regole del firewall del client per consentire l'accesso agli endpoint dati dedicati per ogni area geografica del registro richiesta. Per altre informazioni, vedere Configurare le regole per accedere a un registro contenitori Azure dietro un firewall.

Passaggi successivi

  • Scopri la georeplicazione e come gli endpoint dati dedicati funzionano con gli endpoint regionali.
  • Scopri come abilitare gli endpoint dual-stack IPv6, che si basano su endpoint di dati dedicati.
  • Per un elenco completo dei tipi di endpoint, dei formati url e dei flag dell'interfaccia della riga di comando, vedere il riferimento all'endpoint Registro Azure Container.