Tárfiók hozzáférési kulcsának újragenerálása

Megtudhatja, hogyan módosíthatja az Azure Machine Tanulás által használt Azure Storage-fiókok hozzáférési kulcsait. Az Azure Machine Tanulás tárfiókokkal tárolhatja az adatokat vagy a betanított modelleket.

Biztonsági okokból előfordulhat, hogy módosítania kell egy Azure Storage-fiók hozzáférési kulcsait. A hozzáférési kulcs újragenerálásakor az Azure Machine Tanulás frissíteni kell az új kulcs használatához. Előfordulhat, hogy az Azure Machine Tanulás a tárfiókot modelltárolóként és adattárként is használja.

Fontos

Az adattárakban regisztrált hitelesítő adatokat a rendszer a munkaterülethez társított Azure Key Vaultba menti. Ha engedélyezve van a helyreállítható törlés a Key Vaulthoz, ez a cikk útmutatást nyújt a hitelesítő adatok frissítéséhez. Ha törli az adattár regisztrációjának törlését, és ugyanazzal a névvel próbálja újra regisztrálni, ez a művelet sikertelen lesz. Ebben a forgatókönyvben a helyreállítható törlés engedélyezéséről a meglévő kulcstartók helyreállítható törlésének bekapcsolása című témakörben olvashat.

Előfeltételek

Megjegyzés:

A dokumentum kódrészleteit a Python SDK 1.0.83-as verziójával teszteltük.

Mit kell frissíteni?

A tárfiókokat az Azure Machine Tanulás munkaterülete (naplók, modellek, pillanatképek stb.) és adattárként is használhatja. A munkaterület frissítésének folyamata egyetlen Azure CLI-parancs, amely a tárkulcs frissítése után futtatható. Az adattárak frissítésének folyamata nagyobb szerepet játszik, és meg kell találnia, hogy mely adattárak használják jelenleg a tárfiókot, majd újra regisztrálni kell őket.

Fontos

Frissítse a munkaterületet az Azure CLI és az adattárak Használatával a Python használatával. Csak az egyik vagy a másik frissítése nem elegendő, és mindkettő frissítéséig hibákat okozhat.

Az adattárak által használt tárfiókok felderítéséhez használja a következő kódot:

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)

Ez a kód az Azure Storage-t kulcshitelesítéssel használó regisztrált adattárakat keresi, és a következő információkat sorolja fel:

  • Adattár neve: Annak az adattárnak a neve, amely alatt a tárfiók regisztrálva van.
  • Tárfiók neve: Az Azure Storage-fiók neve.
  • Tároló: A regisztráció által használt tároló a tárfiókban.
  • Fájlmegosztás: A regisztráció által használt fájlmegosztás.
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)

Ez a kód megkeresi az Azure Storage-t használó regisztrált adattárakat, és felsorolja a következő információkat:

  • Adattár neve: Annak az adattárnak a neve, amely alatt a tárfiók regisztrálva van.
  • Tárfiók neve: Az Azure Storage-fiók neve.
  • Tároló: A regisztráció által használt tároló a tárfiókban.

Azt is jelzi, hogy az adattár egy Azure-blobhoz vagy egy Azure-fájlmegosztáshoz tartozik-e, mivel különböző módszerek léteznek az egyes típusú adattárak újraregisztrálására.

Ha olyan bejegyzés található a tárfiókhoz, amelyhez a hozzáférési kulcsok újragenerálását tervezi, mentse az adattár nevét, a tárfiók nevét és a tároló nevét.

A hozzáférési kulcs frissítése

Ha frissíteni szeretné az Azure Machine Tanulás az új kulcs használatára, kövesse az alábbi lépéseket:

Fontos

Végezze el az összes lépést, frissítse a munkaterületet a parancssori felület használatával, és az adattárakat a Python használatával. Ha csak az egyiket vagy a másikat frissíti, az mindaddig hibákat okozhat, amíg mindkettő nem frissül.

  1. Hozza létre újra a kulcsot. A hozzáférési kulcsok újragenerálásáról további információt a tárfiók hozzáférési kulcsainak kezelése című témakörben talál. Mentse az új kulcsot.

  2. Az Azure Machine Tanulás munkaterület automatikusan szinkronizálja az új kulcsot, és egy óra múlva elkezdi használni. Ha a munkaterületet azonnal szinkronizálni szeretné az új kulccsal, kövesse az alábbi lépéseket:

    1. A munkaterületet tartalmazó Azure-előfizetésbe az alábbi Azure CLI-paranccsal jelentkezhet be:

      az login
      

      Tipp.

      Bejelentkezés után megjelenik az Azure-fiókhoz társított előfizetések listája. Az előfizetés adatai isDefault: true az Azure CLI-parancsok jelenleg aktivált előfizetése. Ennek az előfizetésnek ugyanaznak kell lennie, amely az Azure Machine Tanulás-munkaterületet tartalmazza. Az előfizetés-azonosítót az Azure Portalon találja a munkaterület áttekintési oldalának megnyitásával.

      Másik előfizetés kiválasztásához használja a az account set -s <subscription name or ID> parancsot, és adja meg az előfizetés nevét vagy azonosítóját, amelyre váltani szeretne. Az előfizetés kiválasztásával kapcsolatos további információkért lásd : Több Azure-előfizetés használata.

    2. Ha frissíteni szeretné a munkaterületet az új kulcs használatára, használja az alábbi parancsot. Cserélje le myworkspace az Azure Machine Tanulás munkaterület nevére, és cserélje le myresourcegroup a munkaterületet tartalmazó Azure-erőforráscsoport nevére.

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

      Ez a parancs automatikusan szinkronizálja a munkaterület által használt Azure Storage-fiók új kulcsait.

  3. A tárfiókot használó adattár(ok) újra regisztrálhatók az SDK-n vagy az Azure Machine Tanulás studióján keresztül.

    1. Az adattárak Python SDK-val történő újbóli regisztrálásához használja a Frissíteni kívánt szakasz értékeit, valamint az 1. lépésben szereplő kulcsot az alábbi kóddal.

      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)
      

      Mivel overwrite=True meg van adva, ez a kód felülírja a meglévő regisztrációt, és frissíti az új kulcs használatára.

      # 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. Adattárak újbóli regisztrálása a stúdión keresztül

      1. A stúdióban válassza az Adatok lehetőséget a bal oldali panelEn az Eszközök csoportban.

      2. A tetején válassza az Adattárak lehetőséget.

      3. Válassza ki a frissíteni kívánt adattárat.

      4. Válassza a hitelesítő adatok frissítése gombot a bal felső sarokban.

      5. Az 1. lépés új hozzáférési kulcsával töltse ki az űrlapot, és kattintson a Mentés gombra.

        Ha az alapértelmezett adattár hitelesítő adatait frissíti, végezze el ezt a lépést, és ismételje meg a 2b. lépést az új kulcs újraszinkronizálásához a munkaterület alapértelmezett adattárával.

További lépések

További információ az adattárak használatáról: Adattárak használata.

Az adattárak regisztrálásával kapcsolatos további információkért tekintse meg az osztályreferenciát Datastore .