Accesso negato durante l'esecuzione di processi Azure Batch

L'account di archiviazione di Azure è un componente dipendente necessario per l'account Azure Batch per archiviare file di risorse, pacchetti dell'applicazione e file di output. In molti casi, si usa l'account di archiviazione di Azure con un firewall per migliorarne la sicurezza. Tuttavia, l'account di archiviazione di Azure con un firewall può causare errori quando si eseguono processi Azure Batch. Questo articolo fornisce soluzioni per tali problemi.

Sintomi

Quando si eseguono processi Azure Batch, è possibile che si verifichino errori correlati all'account di archiviazione di Azure associato.

Ecco un esempio di errore:

Categoria: UserError
Codice: ResourceContainerAccessDenied
Messaggio: l'accesso per uno dei contenitori di blog di Azure specificati viene negato

Causa

Quando si crea un pool di Azure Batch, verrà eseguito il provisioning delle nuove macchine virtuali (nodi Batch). Se non si assegna un indirizzo IP pubblico statico al pool di Batch, verrà assegnato un indirizzo IP pubblico casuale. Ogni volta che si ridimensiona il numero di nodi su 0 e si ridimensiona nuovamente, l'indirizzo IP pubblico di questi nuovi nodi Batch cambia. Pertanto, se l'account di archiviazione associato ha configurato un firewall, è difficile gestire l'elenco di autorizzazioni del firewall.

Se l'account di archiviazione e il pool di Batch si trovano nella stessa area, indipendentemente dal fatto che il pool di Batch disponga o meno di un indirizzo IP pubblico statico, il traffico in uscita dai nodi batch passa sempre tramite l'internet backbone di Azure (indirizzi IP privati). Il firewall di archiviazione non è autorizzato ad aggiungere un indirizzo IP privato nell'elenco consentiti, il che causerà il rifiuto del traffico verso l'account di archiviazione.

Risoluzione

Per risolvere il problema, gestire il pool di Batch e le configurazioni dell'account di archiviazione in base agli scenari.

Nota

Se è necessario caricare i pacchetti dell'applicazione, nessuna delle soluzioni seguenti funzionerà. L'account di archiviazione non deve configurare alcun firewall. Per altre informazioni, vedere Collegare un account di archiviazione.

Scenario 1: il pool batch e l'account di archiviazione si trovano nella stessa area e il pool di Batch ha una rete virtuale

  1. Controllare le informazioni sulla subnet in Configurazione di rete dalleproprietà delpool>di account> batch portale di Azure>. Prendere nota e scrivere le informazioni.

    Screenshot delle informazioni sulla subnet del pool di Azure Batch.

  2. Passare all'account di archiviazione e selezionare Rete. Nell'impostazione Firewall e reti virtuali selezionare Abilita da reti virtuali e indirizzi IP selezionati per l'accesso alla rete pubblica. Aggiungere la subnet del pool di Batch nell'elenco di elementi consentiti del firewall.

    Screenshot che mostra come aggiungere una subnet all'elenco di elementi consentiti del firewall.

    Se la subnet non abilita l'endpoint del servizio, quando lo si seleziona, verrà visualizzata una notifica come indicato di seguito:

    Nelle reti seguenti non sono abilitati gli endpoint di servizio per "Microsoft.Storage". Il completamento dell'abilitazione dell'accesso richiederà fino a 15 minuti. Dopo aver avviato questa operazione, è sicuro uscire e tornare in un secondo momento se non si desidera attendere.

    Pertanto, prima di aggiungere la subnet, controllarla nella rete virtuale Batch per verificare se l'endpoint del servizio per l'account di archiviazione è abilitato.

    Screenshot che mostra come verificare se l'endpoint del servizio è abilitato.

Dopo aver completato le configurazioni precedenti, i nodi Batch nel pool possono accedere correttamente all'account di archiviazione.

Scenario 2: il pool batch e l'account di archiviazione si trovano in aree diverse

  1. Creare un nuovo pool batch in una rete virtuale con un indirizzo IP pubblico statico. Per altre informazioni, vedere Creare un pool di Batch con indirizzi IP pubblici specificati.

    Poiché il pool di Batch e l'account di archiviazione si trovano in aree diverse, il traffico in uscita passerà attraverso internet pubblico tramite l'indirizzo IP pubblico.

  2. Annotare l'indirizzo IP pubblico.

  3. Assegnare l'indirizzo IP pubblico all'indirizzo IP del pool di Batch public Load Balancer.Assign the public IP address to the Batch pool public Load Balancer's IP.

    Successivamente, controllare le proprietà del pool di Batch. Saranno come quelli nello screenshot seguente:

    Screenshot delle proprietà del pool di Batch.

  4. Aggiungere l'indirizzo IP pubblico all'elenco di indirizzi consentiti del firewall di archiviazione.

    Screenshot dell'indirizzo IP pubblico.

    Screenshot che mostra che l'indirizzo IP pubblico viene aggiunto all'elenco consentiti.

  5. Eseguire i processi Batch con il pool batch appena creato.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.