Felügyelt identitás használatának előnyei az Azure OpenAI-hoz

Befejeződött

Felügyelt identitás használatakor meg kell adnia a felhasználó által felügyelt identitás ügyfél-azonosítóját, amikor létrehoz egy példányt a DefaultAzureCredential vagy ManagedIdentityCredential osztályból a JavaScript-alkalmazásban. Az ügyfél-azonosító értéke a felügyelt identitás beállításakor környezeti változóként van meghatározva $AZURE_CLIENT_ID-ként.

Első pillantásra úgy tűnhet, hogy a végpont URL-címén kívül ez az egyetlen létfontosságú információ, amely szükséges a kapcsolathoz.

import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity";
import { AzureOpenAI } from "openai";

// set environment variable AZURE_CLIENT_ID
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);

const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] || "<endpoint>";
const deployment = "<your Azure OpenAI deployment name>";
const apiVersion = "2024-05-01-preview";
const options = { azureADTokenProvider, deployment, apiVersion, endpoint }

const client = new AzureOpenAI(options);

Értékeljük ki a kiszivárgott ügyfélazonosító és a kiszivárgott API-kulcs hatását.

Az API-kulcsok a normál jelszóhoz hasonlóan működnek. Ha kompromittálódott, bárki, aki rendelkezik a kulccsal, hozzáférhet az erőforráshoz. Az Azure OpenAI esetében ez az AI-modellek, például a GPT-4 korlátlan használatát jelenti. Ha a hálózat nyilvánosan elérhető, a biztonsági hatás még nagyobb lehet.

Ezzel szemben, ha az ügyfélazonosító kiszivárog, a kockázatok minimálisak. Ennek az az oka, hogy az ügyfélazonosító önmagában nem tud kapcsolatot létesíteni az Azure OpenAI-hoz. A felügyelt identitás használatához a szolgáltatásnak az Azure-ban kell üzemelnie, és még ha az Azure OpenAI nyilvános is, nem tud helyi környezetből vagy hálózaton keresztül csatlakozni egy alkalmazással.

Emellett a felügyelt identitáshoz a következő szerepkör-hozzárendelés van konfigurálva:

az role assignment create --assignee $USER_MANAGED_ID_PRINCIPAL_ID \
--scope $OPEN_AI_RESOURCE_ID \
--role "Cognitive Services OpenAI User"

Ez konfigurálja a műveleteket ezzel a felhasználói azonosítóval (erről a modul későbbi részében olvashat bővebben). Itt a Cognitive Services OpenAI felhasználói szerepköre van hozzárendelve az Azure OpenAI-szolgáltatásokhoz, korlátozva az Engedélyeket az Azure OpenAI-on belüli műveletekre.

Összefoglalva, a kiszivárgott API-kulcsok következményeihez képest a kiszivárgott ügyfél-azonosítók kihasználása több lépésből áll, ami megnehezíti a rosszindulatú szereplők kihasználását. Ezen okok miatt a felügyelt identitások biztonságosabb módszert kínálnak a műveletek kezelésére az API-kulcsokhoz képest. Javasoljuk, hogy a lehető legerősebb feltételekkel használja a felügyelt identitást API-kulcsokkal az Azure OpenAI-ba vagy bármely más, a felügyelt identitást támogató Azure-szolgáltatásba való hitelesítéskor.