Buat kembali kunci akses akun penyimpanan

Pelajari cara mengubah kunci akses untuk akun Penyimpanan Azure yang digunakan oleh Azure Machine Learning. Azure Machine Learning dapat menggunakan akun penyimpanan untuk menyimpan data atau model terlatih.

Untuk tujuan keamanan, Anda mungkin perlu mengubah kunci akses untuk akun Penyimpanan Azure. Saat Anda meregenerasi kunci akses, Azure Machine Learning harus diperbarui untuk menggunakan kunci baru. Azure Machine Learning mungkin menggunakan akun penyimpanan untuk penyimpanan model dan sebagai datastore.

Penting

Kredensial yang terdaftar dengan penyimpanan data disimpan di Vault Kunci Azure yang terkait dengan ruang kerja. Jika Anda mengaktifkan soft-delete untuk Vault Kunci Anda, artikel ini menyediakan instruksi untuk memperbarui kredensial. Jika Anda membatalkan pendaftaran datastore dan mencoba mendaftarkannya kembali dengan nama yang sama, tindakan ini akan gagal. Untuk skenario tentang cara mengaktifkan penghapusan sementara ini, lihat Mengaktifkan Soft Delete untuk brankas kunci yang ada.

Prasyarat

Catatan

Cuplikan kode dalam dokumen ini diuji dengan versi 1.0.83 dari Python SDK.

Apa yang perlu diperbarui

Akun penyimpanan dapat digunakan oleh ruang kerja Azure Machine Learning (menyimpan log, model, snapshot, dll.) dan sebagai penyimpanan data. Proses untuk memperbarui ruang kerja adalah satu perintah tunggal Azure CLI, dan dapat dijalankan setelah memperbarui kunci penyimpanan. Proses pembaruan toko data lebih terlibat, dan mengharuskan menemukan penyimpanan data apa yang saat ini menggunakan akun penyimpanan dan kemudian mendaftarkannya kembali.

Penting

Perbarui ruang kerja menggunakan Azure CLI, dan penyimpanan data menggunakan Python, secara bersamaan. Memperbarui hanya satu atau yang lain, tidak cukup, dan dapat menyebabkan kesalahan sampai keduanya diperbarui.

Untuk menemukan akun penyimpanan yang digunakan oleh penyimpanan data Anda, gunakan kode berikut:

from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

#Enter details of your Azure Machine Learning workspace
subscription_id = '<SUBSCRIPTION_ID>'
resource_group = '<RESOURCE_GROUP>'
workspace_name = '<AZUREML_WORKSPACE_NAME>'

ml_client = MLClient(credential=DefaultAzureCredential(),
                        subscription_id=subscription_id, 
                        resource_group_name=resource_group,
                        workspace_name=workspace_name)

# list all the datastores
datastores = ml_client.datastores.list()
for ds in datastores:
    if ds.credentials.type == "account_key":
        if ds.type.name == "AZURE_BLOB":
            print("Blob store - datastore name: " + ds.name + ", storage account name: " +
                  ds.account_name + ", container name: " + ds.container_name)
        if ds.type.name == "AZURE_FILE":
            print("Blob store - datastore name: " + ds.name + ", storage account name: " +
                  ds.account_name + ", file share name: " + ds.file_share_name)

Kode ini mencari datastore terdaftar apa pun yang menggunakan Azure Storage dengan autentikasi kunci, dan mencantumkan informasi berikut:

  • Nama datastore: Nama datastore yang terdaftar di akun penyimpanan.
  • Nama akun penyimpanan: Nama akun Penyimpanan Azure.
  • Kontainer: Kontainer dalam akun penyimpanan yang digunakan oleh pendaftaran ini.
  • Berbagi file: Berbagi file yang digunakan oleh pendaftaran ini.
import azureml.core
from azureml.core import Workspace, Datastore

ws = Workspace.from_config()

default_ds = ws.get_default_datastore()
print("Default datstore: " + default_ds.name + ", storage account name: " +
      default_ds.account_name + ", container name: " + default_ds.container_name)

datastores = ws.datastores
for name, ds in datastores.items():
    if ds.datastore_type == "AzureBlob":
        print("Blob store - datastore name: " + name + ", storage account name: " +
              ds.account_name + ", container name: " + ds.container_name)
    if ds.datastore_type == "AzureFile":
        print("File share - datastore name: " + name + ", storage account name: " +
              ds.account_name + ", container name: " + ds.container_name)

Kode ini menyerupai setiap penyimpanan data terdaftar yang menggunakan Penyimpanan Azure dan mencantumkan informasi berikut:

  • Nama datastore: Nama datastore yang terdaftar di akun penyimpanan.
  • Nama akun penyimpanan: Nama akun Penyimpanan Azure.
  • Kontainer: Kontainer dalam akun penyimpanan yang digunakan oleh pendaftaran ini.

Ini juga menunjukkan apakah datastore untuk Azure Blob atau berbagi File Azure, karena ada berbagai metode untuk mendaftarkan kembali setiap jenis datastore.

Jika entri ada untuk akun penyimpanan yang Anda rencanakan untuk meregenerasi kunci akses, simpan nama datastore, nama akun penyimpanan, dan nama kontainer.

Memperbarui tombol akses

Untuk memperbarui Azure Machine Learning untuk menggunakan kunci baru, gunakan langkah-langkah berikut:

Penting

Lakukan semua langkah, perbarui ruang kerja menggunakan CLI, maupun penyimpanan data menggunakan Python. Memperbarui hanya satu atau yang lain dapat menyebabkan kesalahan hingga keduanya diperbarui.

  1. Regenerasi kuncinya. Untuk informasi tentang meregenerasi kunci akses, lihat Mengelola kunci akses akun penyimpanan. Simpan kunci baru.

  2. Ruang kerja Azure Machine Learning akan secara otomatis menyinkronkan kunci baru dan mulai menggunakannya setelah satu jam. Untuk memaksa ruang kerja agar segera menyinkronkan kunci baru, gunakan perintah berikut:

    1. Untuk masuk ke langganan Azure yang berisi ruang kerja Anda dengan menggunakan perintah Azure CLI berikut ini:

      az login
      

      Tip

      Setelah masuk, Anda melihat daftar langganan yang terkait dengan akun Azure Anda. Informasi langganan dengan isDefault: true adalah langganan yang saat ini diaktifkan untuk perintah Azure CLI. Langganan ini harus sama dengan yang berisi ruang kerja Azure Machine Learning Anda. Anda dapat menemukan ID langganan dari portal Azure dengan mengunjungi halaman gambaran umum untuk ruang kerja Anda..

      Untuk memilih langganan lain, gunakan az account set -s <subscription name or ID> perintah dan tentukan nama atau ID langganan untuk dialihkan. Untuk informasi selengkapnya tentang pemilihan langganan, lihat Menggunakan beberapa Langganan Azure.

    2. Untuk memperbarui ruang kerja untuk menggunakan kunci baru, gunakan perintah berikut ini. Ganti myworkspace dengan nama ruang kerja Azure Machine Learning Anda, dan ganti myresourcegroupdengan nama grup sumber daya Azure yang berisi ruang kerja.

      az ml workspace sync-keys -n myworkspace -g myresourcegroup
      

      Perintah ini secara otomatis menyinkronkan kunci baru untuk akun penyimpanan Azure yang digunakan oleh ruang kerja.

  3. Anda dapat mendaftarkan ulang ruang penyimpanan yang menggunakan akun penyimpanan melalui SDK atau studio Azure Machine Learning.

    1. Untuk mendaftarkan kembali penyimpanan data melalui Python SDK, gunakan nilai dari Bagian apa yang perlu diperbarui dan kunci dari langkah 1 dengan kode berikut.

      from azure.ai.ml.entities import AzureBlobDatastore, AccountKeyConfiguration
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      subscription_id = '<SUBSCRIPTION_ID>'
      resource_group = '<RESOURCE_GROUP>'
      workspace_name = '<AZUREML_WORKSPACE_NAME>'
      
      ml_client = MLClient(credential=DefaultAzureCredential(),
                              subscription_id=subscription_id, 
                              resource_group_name=resource_group,
                              workspace_name=workspace_name)
      
      blob_datastore1 = AzureBlobDatastore(
          name="your datastore name",
          description="Description",
          account_name="your storage account name",
          container_name="your container name",
          protocol="https",
          credentials=AccountKeyConfiguration(
              account_key="new storage account key"
          ),
      )
      ml_client.create_or_update(blob_datastore1)
      

      Karena overwrite=True ditentukan, kode ini menimpa pendaftaran yang ada saat ini dan memperbaruinya untuk menggunakan kunci baru.

      # Re-register the blob container
      ds_blob = Datastore.register_azure_blob_container(workspace=ws,
                                                datastore_name='your datastore name',
                                                container_name='your container name',
                                                account_name='your storage account name',
                                                account_key='new storage account key',
                                                overwrite=True)
      # Re-register file shares
      ds_file = Datastore.register_azure_file_share(workspace=ws,
                                            datastore_name='your datastore name',
                                            file_share_name='your container name',
                                            account_name='your storage account name',
                                            account_key='new storage account key',
                                            overwrite=True)
      
      
    2. Untuk mendaftarkan ulang datastore melalui studio

      1. Di studio, pilih Data di panel kiri di bawah Aset.

      2. Di bagian atas, pilih Penyimpanan data.

      3. Pilih penyimpanan data mana yang ingin Anda perbarui.

      4. Pilih tombol Perbarui kredensial di kiri atas.

      5. Gunakan kunci akses baru Anda dari langkah 1 untuk mengisi formulir dan klik Simpan.

        Jika Anda memperbarui kredensial untuk penyimpanan data default Anda, selesaikan langkah ini dan ulangi langkah 2b untuk menyinkronkan ulang kunci baru Anda dengan penyimpanan data default ruang kerja.

Langkah berikutnya

untuk informasi selengkapnya tentang menggunakan penyimpanan data, lihat Menggunakan penyimpanan data.

Untuk informasi selengkapnya tentang mendaftarkan penyimpanan data, lihat Datastore referensi kelas.