Manfaat menggunakan identitas terkelola untuk Azure OpenAI

Selesai

Saat menggunakan Identitas Terkelola, Anda perlu menentukan ID klien identitas yang dikelola pengguna saat membuat instans kelas DefaultAzureCredential atau ManagedIdentityCredential di aplikasi JavaScript Anda. Nilai ID klien ditetapkan sebagai variabel lingkungan $AZURE_CLIENT_ID saat Identitas Terkelola disiapkan.

Pada pandangan pertama, tampaknya ini adalah satu-satunya informasi penting yang diperlukan untuk koneksi, selain dari URL titik akhir.

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);

Mari kita evaluasi dampak ID klien yang bocor versus kunci API yang bocor.

Kunci API berfungsi mirip dengan kata sandi biasa. Jika disusupi, siapa pun dengan kunci dapat mengakses sumber daya. Untuk Azure OpenAI, ini berarti penggunaan model AI yang tidak dibatasi seperti GPT-4. Jika jaringan dapat diakses secara publik, dampak keamanan bisa lebih besar.

Sebaliknya, jika ID klien bocor, risikonya minimal. Ini karena ID klien saja tidak dapat membuat koneksi ke Azure OpenAI. Untuk menggunakan Identitas Terkelola, layanan harus beroperasi di Azure dan bahkan jika Azure OpenAI bersifat publik, Anda tidak dapat terhubung dari lingkungan lokal atau di seluruh jaringan menggunakan aplikasi.

Selain itu, penetapan peran berikut dikonfigurasi untuk Identitas Terkelola:

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

Ini mengonfigurasi tindakan dapat dilakukan menggunakan ID pengguna ini (lebih lanjut tentang ini nanti dalam modul). Di sini, peran Pengguna OpenAI Cognitive Services ditunjuk untuk layanan Azure OpenAI, dengan pembatasan izin hanya untuk operasi dalam Azure OpenAI.

Singkatnya, dibandingkan dengan ramifikasi kunci API yang bocor, mengeksploitasi ID klien yang bocor melibatkan beberapa langkah, sehingga lebih sulit bagi aktor jahat untuk mengeksploitasi. Untuk alasan ini, Identitas Terkelola menawarkan metode yang lebih aman untuk mengelola operasi dibandingkan dengan kunci API. Disarankan dengan sangat tegas untuk menggunakan Identitas Terkelola ketimbang kunci API saat melakukan autentikasi ke Azure OpenAI, atau layanan Azure lainnya yang mendukung Identitas Terkelola.