Výhody používání spravované identity pro Azure OpenAI
Při použití spravované identity musíte při vytváření instance DefaultAzureCredential nebo třídy ManagedIdentityCredential v javascriptové aplikaci zadat ID klienta identity spravované uživatelem. Hodnota ID klienta se vytvoří jako proměnná prostředí $AZURE_CLIENT_ID při nastavení spravované identity.
Na první pohled se může zdát, že je to jediná důležitá část informací vyžadovaná pro připojení, a to kromě adresy URL koncového bodu.
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);
Pojďme vyhodnotit dopad úniku ID klienta oproti úniku klíče rozhraní API.
Klíč rozhraní API funguje podobně jako běžné heslo. Pokud dojde k ohrožení zabezpečení, může k prostředku přistupovat kdokoli, kdo má klíč. V případě Azure OpenAI to znamená neomezené použití modelů AI, jako je GPT-4. Pokud je síť veřejně přístupná, může být dopad na zabezpečení ještě větší.
Naopak pokud dojde k úniku ID klienta, rizika jsou minimální. Důvodem je to, že samotné ID klienta nemůže navázat připojení k Azure OpenAI. Aby bylo možné využívat spravovanou identitu, musí služba fungovat v Azure a i když je Azure OpenAI veřejná, nemůžete se připojit z místního prostředí nebo přes síť pomocí aplikace.
Kromě toho je pro spravovanou identitu nakonfigurované následující přiřazení role:
az role assignment create --assignee $USER_MANAGED_ID_PRINCIPAL_ID \
--scope $OPEN_AI_RESOURCE_ID \
--role "Cognitive Services OpenAI User"
Tím se akce konfigurují pomocí tohoto ID uživatele (další informace najdete dále v tomto modulu). V této části je role uživatele OpenAI služeb Cognitive Services přiřazená službám Azure OpenAI, která omezuje oprávnění k operacím v rámci Azure OpenAI.
Stručně řečeno, v porovnání s důsledky uniklého klíče rozhraní API zahrnuje zneužití uniklého ID klienta několik kroků, což znesnadňuje škodlivým aktérům zneužití. Z těchto důvodů nabízejí spravované identity bezpečnější metodu správy operací v porovnání s klíči rozhraní API. Při ověřování ve službě Azure OpenAI nebo jakékoli jiné službě Azure, která podporuje spravovanou identitu, se doporučuje v nejsilnějších možných termínech používat spravovanou identitu přes klíče rozhraní API.