Share via


Inserimento di segreti negli endpoint online (anteprima)

SI APPLICA A:estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

L'inserimento di segreti nel contesto di una distribuzione online è un processo che consiste nel recuperare segreti (come le chiavi API) da archivi segreti e nell'inserirli nel contenitore utente eseguito all'interno di una distribuzione online. I segreti vengono infine resi accessibili in modo sicuro tramite variabili di ambiente, usate dal server di inferenza che esegue lo script di assegnazione dei punteggi o dallo stack di inferenza che si usa con un approccio di distribuzione BYOC (Bring Your Own Container).

Importante

Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio, pertanto non è consigliabile usarla per i carichi di lavoro in ambienti di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate.

Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Presentazione del problema

Quando si crea una distribuzione online, è possibile usare segreti dall'interno della distribuzione per accedere a servizi esterni. Alcuni di questi servizi esterni includono il servizio OpenAI di Microsoft Azure, i servizi di Azure AI e Sicurezza dei contenuti di Azure AI.

Per usare i segreti, è necessario trovare un modo per passarli in modo sicuro al contenitore utente eseguito all'interno della distribuzione. Non è consigliabile includere segreti come parte della definizione di distribuzione, poiché questa procedura espone i segreti nella definizione della distribuzione.

Un approccio migliore consiste nell'archiviare i segreti negli archivi segreti per poi recuperarli in modo sicuro dall'interno della distribuzione. Tuttavia, questo approccio presenta alcune difficoltà, come il modo in cui la distribuzione deve autenticarsi negli archivi segreti per recuperare i segreti. Poiché la distribuzione online esegue il contenitore utente usando l'identità dell'endpoint, ovvero un'identitàgestita, è possibile usare il controllo degli accessi in base al ruolo di Azure per controllare le autorizzazioni dell'identità dell'endpoint e consentire all'endpoint di recuperare i segreti dagli archivi segreti. L'uso di questo approccio richiede di eseguire le attività seguenti:

  • Assegnare i ruoli corretti all'identità dell'endpoint in modo che possa leggere i segreti dagli archivi segreti.
  • Implementare la logica di assegnazione dei punteggi per la distribuzione in modo che usi l'identità gestita dell'endpoint per recuperare i segreti dagli archivi segreti.

Sebbene questo approccio all'uso di un'identità gestita sia un modo sicuro per recuperare e inserire segreti, l'inserimento di segreti tramite la funzionalità di inserimento dei segreti semplifica ulteriormente il processo di recupero dei segreti per le connessioni dell'area di lavoro e gli insiemi di credenziali delle chiavi.

Identità gestita associata all'endpoint

Una distribuzione online esegue il contenitore utente con l'identità gestita associata all'endpoint. Questa identità gestita, denominata identità dell'endpoint, è un ID Microsoft Entra che supporta il controllo degli accessi in base al ruolo di Azure. È quindi possibile assegnare ruoli di Azure all'identità per controllare le autorizzazioni necessarie per eseguire le operazioni. Questa identità endpoint può essere un'identità assegnata dal sistema o un'identità assegnata dall'utente. È possibile decidere quale di questi tipi di identità usare quando si crea l'endpoint.

  • Per un'identità assegnata dal sistema, l'identità viene creata automaticamente quando si crea l'endpoint e i ruoli con autorizzazioni fondamentali, come l'autorizzazione pull di Registro Azure Container e l'autorizzazione Lettore dei dati dei BLOB di archiviazione, vengono assegnati automaticamente.
  • Per un'identità assegnata dall'utente, è necessario creare prima l'identità e quindi associarla all'endpoint quando si crea l'endpoint. L'utente è anche responsabile dell'assegnazione dei ruoli appropriati all'identità assegnata dall'utente in base alle esigenze.

Per altre informazioni sull'uso di identità gestite di un endpoint, vedere Come accedere alle risorse dagli endpoint con identità gestite e l'esempio relativo all'uso di identità gestite per interagire con i servizi esterni.

Assegnazione di ruolo all'identità dell'endpoint

I ruoli seguenti sono richiesti dagli archivi segreti:

  • Per i segreti archiviati nelle connessioni all'area di lavoro nell'area di lavoro: Workspace Connections fornisce un'API List Secrets (anteprima) che richiede che l'identità che chiama l'API abbia un ruolo Azure Machine Learning Workspace Connection Secrets Reader (o equivalente) assegnato all'identità.
  • Per i segreti archiviati in un insieme di credenziali delle chiavi di Microsoft Azure esterno: l'insieme di credenziali delle chiavi fornisce un API Get Secret Versions che richiede che l'identità che chiama l'API abbia un ruolo Key Vault Secrets User (o equivalente) assegnato all'identità.

Implementazione dell'inserimento di segreti

Dopo aver recuperato i segreti (ad esempio le chiavi API) dagli archivi segreti, esistono due modi per inserirli in un contenitore utente eseguito all'interno della distribuzione online:

  • Inserire i segreti manualmente, usando le identità gestite.
  • Inserire segreti usando la funzionalità di inserimento dei segreti.

Entrambi questi approcci prevedono due passaggi:

  1. Recuperare prima di tutto i segreti dagli archivi segreti usando l'identità dell'endpoint.
  2. In secondo luogo, inserire i segreti nel contenitore utente.

Inserimento di segreti tramite l'uso di identità gestite

Nella definizione della distribuzione è necessario usare l'identità dell'endpoint per chiamare le API dagli archivi segreti. È possibile implementare questa logica nello script di assegnazione dei punteggi o negli script della shell eseguiti nel contenitore BYOC. Per implementare l'inserimento di segreti tramite l'uso di identità gestite, vedere l'esempio relativo all'uso di identità gestite per interagire con i servizi esterni.

Inserimento di segreti tramite la funzionalità di inserimento dei segreti

Per usare la funzionalità di inserimento dei segreti, nella definizione della distribuzione eseguire il mapping dei segreti (a cui si vuole fare riferimento) dalle connessioni dell'area di lavoro o dall'insieme di credenziali delle chiavi alle variabili di ambiente. Questo approccio non richiede la scrittura di codice nello script di assegnazione dei punteggi o negli script della shell eseguiti nel contenitore BYOC. Per eseguire il mapping dei segreti dalle connessioni all'area di lavoro o dall'insieme di credenziali delle chiavi nelle variabili di ambiente, è necessario soddisfare le condizioni seguenti:

  • Durante la creazione dell'endpoint, se è stato definito un endpoint online per applicare l'accesso agli archivi segreti predefiniti (connessioni all'area di lavoro nell'area di lavoro corrente), l'identità utente che crea la distribuzione nell'endpoint deve avere le autorizzazioni per leggere i segreti dalle connessioni dell'area di lavoro.
  • L'identità dell'endpoint usata dalla distribuzione deve avere le autorizzazioni per leggere i segreti dalle connessioni dell'area di lavoro o dall'insieme di credenziali delle chiavi, come indicato nella definizione della distribuzione.

Nota

  • Se l'endpoint è stato creato correttamente con un SAI e il flag impostato per applicare l'accesso agli archivi segreti predefiniti, l'endpoint avrà automaticamente l'autorizzazione per le connessioni all'area di lavoro.
  • Nel caso in cui l'endpoint utilizzi un'interfaccia utente o il flag per applicare l'accesso agli archivi segreti predefiniti non sia stato impostato, l'identità dell'endpoint potrebbe non avere l'autorizzazione per le connessioni all'area di lavoro. In questo caso, è necessario assegnare manualmente il ruolo per le connessioni dell'area di lavoro all'identità dell'endpoint.
  • L'identità dell'endpoint non riceverà automaticamente l'autorizzazione per l'insieme di credenziali delle chiavi esterno. Se si usa l'insieme di credenziali delle chiavi come archivio segreto, è necessario assegnare manualmente il ruolo per l'insieme di credenziali delle chiavi all'identità dell'endpoint.

Per altre informazioni sull'uso dell'inserimento di segreti, vedere Distribuire modelli di Machine Learning negli endpoint online con inserimento di segreti (anteprima).