Injeksi rahasia di titik akhir online (pratinjau)

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Injeksi rahasia dalam konteks titik akhir online adalah proses pengambilan rahasia (seperti kunci API) dari penyimpanan rahasia, dan menyuntikkannya ke dalam kontainer pengguna Anda yang berjalan di dalam penyebaran online. Rahasia akhirnya diakses dengan aman melalui variabel lingkungan, yang digunakan oleh server inferensi yang menjalankan skrip penilaian Anda atau oleh tumpukan inferensi yang Anda bawa dengan pendekatan penyebaran BYOC (bawa kontainer Anda sendiri).

Penting

Fitur ini masih dalam pratinjau umum. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas.

Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Pernyataan masalah

Saat membuat penyebaran online, Anda mungkin ingin menggunakan rahasia dari dalam penyebaran untuk mengakses layanan eksternal. Beberapa layanan eksternal ini termasuk layanan Microsoft Azure OpenAI, Azure AI Services, dan Azure AI Content Brankas ty.

Untuk menggunakan rahasia, Anda harus menemukan cara untuk meneruskannya dengan aman ke kontainer pengguna Anda yang berjalan di dalam penyebaran. Kami tidak menyarankan Agar Anda menyertakan rahasia sebagai bagian dari definisi penyebaran, karena praktik ini akan mengekspos rahasia dalam definisi penyebaran.

Pendekatan yang lebih baik adalah menyimpan rahasia di penyimpanan rahasia dan kemudian mengambilnya dengan aman dari dalam penyebaran. Namun, pendekatan ini menimbulkan tantangannya sendiri: bagaimana penyebaran harus mengautentikasi dirinya sendiri ke penyimpanan rahasia untuk mengambil rahasia. Karena penyebaran online menjalankan kontainer pengguna Anda menggunakan identitas titik akhir, yang merupakan identitas terkelola, Anda dapat menggunakan Azure RBAC untuk mengontrol izin identitas titik akhir dan memungkinkan titik akhir untuk mengambil rahasia dari penyimpanan rahasia. Menggunakan pendekatan ini mengharuskan Anda untuk melakukan tugas-tugas berikut:

  • Tetapkan peran yang tepat ke identitas titik akhir sehingga dapat membaca rahasia dari penyimpanan rahasia.
  • Terapkan logika penilaian untuk penyebaran sehingga menggunakan identitas terkelola titik akhir untuk mengambil rahasia dari penyimpanan rahasia.

Meskipun pendekatan menggunakan identitas terkelola ini adalah cara yang aman untuk mengambil dan menyuntikkan rahasia, injeksi rahasia melalui fitur injeksi rahasia semakin menyederhanakan proses pengambilan rahasia untuk koneksi ruang kerja dan brankas kunci.

Identitas terkelola yang terkait dengan titik akhir

Penyebaran online menjalankan kontainer pengguna Anda dengan identitas terkelola yang terkait dengan titik akhir. Identitas terkelola ini, yang disebut identitas titik akhir, adalah ID Microsoft Entra yang mendukung Azure RBAC. Oleh karena itu, Anda dapat menetapkan peran Azure ke identitas untuk mengontrol izin yang diperlukan untuk melakukan operasi. Identitas titik akhir dapat berupa identitas yang ditetapkan sistem (SAI) atau identitas yang ditetapkan pengguna (UAI). Anda dapat memutuskan jenis identitas mana yang akan digunakan saat membuat titik akhir.

  • Untuk identitas yang ditetapkan sistem, identitas dibuat secara otomatis saat Anda membuat titik akhir, dan peran dengan izin mendasar (seperti izin penarikan Azure Container Registry dan pembaca data blob penyimpanan) secara otomatis ditetapkan.
  • Untuk identitas yang ditetapkan pengguna, Anda perlu membuat identitas terlebih dahulu, lalu mengaitkannya dengan titik akhir saat Membuat titik akhir. Anda juga bertanggung jawab untuk menetapkan peran yang tepat ke UAI sesuai kebutuhan.

Untuk informasi selengkapnya tentang menggunakan identitas terkelola titik akhir, lihat Cara mengakses sumber daya dari titik akhir dengan identitas terkelola, dan contoh untuk menggunakan identitas terkelola untuk berinteraksi dengan layanan eksternal.

Penetapan peran ke identitas titik akhir

Peran berikut diperlukan oleh penyimpanan rahasia:

  • Untuk rahasia yang disimpan dalam koneksi ruang kerja di bawah ruang kerja Anda: Workspace Connections menyediakan List Secrets API (pratinjau) yang mengharuskan identitas yang memanggil API untuk memiliki Azure Machine Learning Workspace Connection Secrets Reader peran (atau setara) yang ditetapkan ke identitas.
  • Untuk rahasia yang disimpan di Microsoft Azure Key Vault eksternal: Key Vault menyediakan Get Secret Versions API yang memerlukan identitas yang memanggil API untuk memiliki Key Vault Secrets User peran (atau setara) yang ditetapkan ke identitas.

Implementasi injeksi rahasia

Setelah rahasia (seperti kunci API) diambil dari penyimpanan rahasia, ada dua cara untuk memasukkannya ke dalam kontainer pengguna yang berjalan di dalam penyebaran online:

  • Menyuntikkan rahasia sendiri, menggunakan identitas terkelola.
  • Masukkan rahasia, menggunakan fitur injeksi rahasia.

Kedua pendekatan ini melibatkan dua langkah:

  1. Pertama, ambil rahasia dari penyimpanan rahasia, menggunakan identitas titik akhir.
  2. Kedua, masukkan rahasia ke dalam kontainer pengguna Anda.

Injeksi rahasia melalui penggunaan identitas terkelola

Dalam definisi penyebaran, Anda perlu menggunakan identitas titik akhir untuk memanggil API dari penyimpanan rahasia. Anda dapat menerapkan logika ini baik dalam skrip penilaian atau dalam skrip shell yang Anda jalankan di kontainer BYOC Anda. Untuk menerapkan injeksi rahasia melalui penggunaan identitas terkelola, lihat contoh penggunaan identitas terkelola untuk berinteraksi dengan layanan eksternal.

Injeksi rahasia melalui fitur injeksi rahasia

Untuk menggunakan fitur injeksi rahasia, dalam definisi penyebaran Anda, petakan rahasia (yang ingin Anda rujuk) dari koneksi ruang kerja atau Key Vault ke variabel lingkungan. Pendekatan ini tidak mengharuskan Anda menulis kode apa pun dalam skrip penilaian Anda atau dalam skrip shell yang Anda jalankan di kontainer BYOC Anda. Untuk memetakan rahasia dari koneksi ruang kerja atau Key Vault ke variabel lingkungan, kondisi berikut harus dipenuhi:

  • Selama pembuatan titik akhir, jika titik akhir online didefinisikan untuk menerapkan akses ke penyimpanan rahasia default (koneksi ruang kerja di bawah ruang kerja saat ini), identitas pengguna Anda yang membuat penyebaran di bawah titik akhir harus memiliki izin untuk membaca rahasia dari koneksi ruang kerja.
  • Identitas titik akhir yang digunakan penyebaran harus memiliki izin untuk membaca rahasia dari koneksi ruang kerja atau Key Vault, seperti yang dirujuk dalam definisi penyebaran.

Catatan

  • Jika titik akhir berhasil dibuat dengan SAI dan bendera diatur untuk menerapkan akses ke penyimpanan rahasia default, maka titik akhir akan secara otomatis memiliki izin untuk koneksi ruang kerja.
  • Dalam kasus di mana titik akhir menggunakan UAI, atau bendera untuk memberlakukan akses ke penyimpanan rahasia default tidak diatur, identitas titik akhir mungkin tidak memiliki izin untuk koneksi ruang kerja. Dalam situasi seperti itu, Anda perlu menetapkan peran secara manual untuk koneksi ruang kerja ke identitas titik akhir.
  • Identitas titik akhir tidak akan secara otomatis menerima izin untuk Key Vault eksternal. Jika Anda menggunakan Key Vault sebagai penyimpanan rahasia, Anda harus menetapkan peran secara manual untuk Key Vault ke identitas titik akhir.

Untuk informasi selengkapnya tentang menggunakan injeksi rahasia, lihat Menyebarkan model pembelajaran mesin ke titik akhir online dengan injeksi rahasia (pratinjau).