Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK:
Python SDK azure-ai-ml v2 (saat ini)
Informasi autentikasi, seperti nama pengguna dan kata sandi Anda, adalah rahasia. Misalnya, jika Anda tersambung ke database eksternal untuk mengkueri data pelatihan, Anda perlu meneruskan nama pengguna dan kata sandi Anda ke konteks pekerjaan jarak jauh. Pengkodian nilai tersebut ke dalam skrip pelatihan dalam teks yang jelas tidak aman karena mengekspos rahasia.
Azure Key Vault menyediakan penyimpanan dan pengambilan rahasia yang aman. Dalam artikel ini, pelajari cara mengambil rahasia yang disimpan dalam brankas kunci dari pekerjaan pelatihan yang berjalan pada kluster komputasi.
Penting
Gunakan pustaka klien Rahasia Azure Key Vault untuk Python untuk menyimpan dan mengambil rahasia. Azure Machine Learning SDK v2 menyediakan informasi ruang kerja yang Anda perlukan untuk terhubung ke Key Vault Anda.
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Petunjuk / Saran
Banyak prasyarat di bagian ini memerlukan kontributor, Pemilik, atau akses yang setara ke langganan Azure Anda, atau Grup Sumber Daya Azure yang berisi sumber daya. Anda mungkin perlu menghubungi administrator Azure Anda dan meminta mereka melakukan tindakan ini.
Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba versi gratis atau berbayar Azure Machine Learning.
Python 3.10 atau yang lebih baru. Paket
azure-keyvault-secretsdanazure-identitymemerlukan Python 3.9 atau yang lebih baru, tetapi Python 3.10 atau yang lebih baru direkomendasikan.Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah dalam artikel Membuat sumber daya untuk memulai untuk membuatnya.
Layanan Azure Key Vault. Jika Anda menggunakan artikel Membuat sumber daya untuk memulai untuk membuat ruang kerja, brankas kunci dibuat untuk Anda. Anda juga dapat membuat instans brankas kunci terpisah dengan menggunakan informasi di artikel Mulai Cepat: Membuat brankas kunci .
Petunjuk / Saran
Anda tidak perlu menggunakan brankas kunci yang sama dengan ruang kerja.
(Opsional) Kluster komputasi Azure Pembelajaran Mesin dikonfigurasi untuk menggunakan identitas terkelola. Kluster dapat dikonfigurasi untuk identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna.
Jika pekerjaan Anda berjalan pada kluster komputasi, berikan akses identitas terkelola untuk kluster komputasi ke rahasia yang disimpan di Kunci Vault. Atau, jika pekerjaan berjalan pada komputasi tanpa server, berikan identitas terkelola yang ditentukan untuk akses pekerjaan ke rahasia. Metode yang digunakan untuk memberikan akses tergantung pada bagaimana brankas kunci Anda dikonfigurasi:
- Kontrol akses berbasis peran Azure (Azure RBAC): Saat dikonfigurasi untuk Azure RBAC, tambahkan identitas terkelola ke peran Pengguna Rahasia Key Vault di brankas kunci Anda.
- Kebijakan akses Azure Key Vault: Saat dikonfigurasi untuk menggunakan kebijakan akses, tambahkan kebijakan baru yang memberikan operasi pengambilan untuk rahasia dan tetapkan ke identitas terkelola.
Nilai rahasia tersimpan di brankas kunci. Anda dapat mengambil nilai ini dengan menggunakan kunci. Untuk informasi selengkapnya, lihat Panduan Memulai Cepat: Menetapkan dan mengambil rahasia dari Azure Key Vault.
Petunjuk / Saran
Tautan panduan cepat mengarah ke langkah-langkah untuk menggunakan Azure Key Vault Python SDK. Dalam daftar isi di panel kiri terdapat tautan ke cara lain untuk mengatur kunci.
Mendapatkan URL brankas kunci
Saat Anda membuat ruang kerja Azure Machine Learning, brankas kunci default disediakan bersama ruang kerja tersebut. Gunakan MLClient untuk mengambil URL vault secara terprogram:
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
subscription_id = "<subscription-id>"
resource_group = "<resource-group>"
workspace_name = "<workspace-name>"
ml_client = MLClient(
DefaultAzureCredential(),
subscription_id=subscription_id,
resource_group_name=resource_group,
workspace_name=workspace_name,
)
workspace = ml_client.workspaces.get(workspace_name)
key_vault_arm_id = workspace.key_vault
vault_name = key_vault_arm_id.split("/")[-1]
vault_url = f"https://{vault_name}.vault.azure.net/"
print(vault_url) # https://<your-vault-name>.vault.azure.net/
Anda kemudian dapat meneruskan nilai ini vault_url ke pekerjaan pelatihan Anda sebagai variabel lingkungan, seperti yang ditunjukkan dalam contoh berikut.
Petunjuk / Saran
Anda juga dapat menemukan URL brankas kunci di portal Microsoft Azure dengan menavigasi ke ruang kerja Anda dan memilih Gambaran Umum. Brankas kunci (key vault) tercantum dalam properti ruang kerja.
Mendapatkan rahasia
Anda bisa mendapatkan rahasia selama pelatihan dengan dua cara:
- Gunakan identitas terkelola yang terkait dengan sumber daya komputasi tempat pekerjaan pelatihan berjalan.
- Gunakan identitas Anda sendiri dengan meminta komputasi menjalankan pekerjaan atas nama Anda.
Tambahkan paket
azure-keyvault-secretsdanazure-identityke dalam lingkungan Azure Machine Learning yang Anda gunakan untuk melatih model. Misalnya, tambahkan ke file conda yang digunakan untuk membangun lingkungan.Gunakan lingkungan ini untuk membangun gambar Docker tempat pekerjaan pelatihan berjalan pada kluster komputasi.
Dari kode pelatihan Anda, gunakan pustaka klien Azure Identity SDK dan Key Vault untuk mendapatkan kredensial identitas terkelola dan autentikasi ke brankas kunci. Variabel
KEY_VAULT_URLlingkungan diteruskan ke pekerjaan pada waktu pengiriman (lihat langkah 3):import os from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential from azure.keyvault.secrets import SecretClient try: credential = DefaultAzureCredential() credential.get_token("https://management.azure.com/.default") except Exception: credential = InteractiveBrowserCredential() vault_url = os.environ["KEY_VAULT_URL"] secret_client = SecretClient(vault_url=vault_url, credential=credential)Petunjuk / Saran
Dalam produksi, atur
AZURE_TOKEN_CREDENTIALSvariabel lingkungan keManagedIdentityCredentialuntuk membatasiDefaultAzureCredentialrantai hanya pada kredensial identitas terkelola. Perubahan ini meningkatkan waktu startup dan mengurangi ambiguitas.Setelah mengautentikasi, gunakan pustaka klien Key Vault untuk mengambil rahasia dengan menyediakan kunci terkait:
secret = secret_client.get_secret("secret-name") print(secret.value)Saat Anda mengirimkan pekerjaan pelatihan, berikan URL Key Vault sebagai variabel lingkungan. Gunakan nilai yang
vault_urldiperoleh pada bagian Dapatkan URL brankas kunci:from azure.ai.ml import command job = command( code="./src", command="python train.py", environment="AzureML-sklearn-1.0-ubuntu20.04-py38-cpu:1", compute="cpu-cluster", environment_variables={"KEY_VAULT_URL": vault_url}, ) ml_client.jobs.create_or_update(job)
Konten terkait
Untuk contoh mengirimkan pekerjaan pelatihan dengan menggunakan Azure Machine Learning Python SDK v2, lihat Melatih model dengan Python SDK v2.