Sdílet prostřednictvím


Opětovné generování přístupových klíčů k účtu úložiště

Zjistěte, jak změnit přístupové klíče pro účty Azure Storage používané službou Azure Machine Learning. Azure Machine Learning může k ukládání dat nebo trénovaných modelů používat účty úložiště.

Pro účely zabezpečení možná budete muset změnit přístupové klíče pro účet Azure Storage. Když znovu vygenerujete přístupový klíč, musí být služba Azure Machine Learning aktualizovaná, aby používala nový klíč. Azure Machine Learning může používat účet úložiště pro úložiště modelu i jako úložiště dat.

Důležité

Přihlašovací údaje zaregistrované v úložištích dat se ukládají do služby Azure Key Vault přidružené k pracovnímu prostoru. Pokud máte pro key Vault povolené obnovitelné odstranění , najdete v tomto článku pokyny k aktualizaci přihlašovacích údajů. Pokud zrušíte registraci úložiště dat a pokusíte se ho znovu zaregistrovat pod stejným názvem, tato akce selže. Informace o povolení obnovitelného odstranění v tomto scénáři najdete v tématu Zapnutí obnovitelného odstranění pro existující trezor klíčů.

Požadavky

Poznámka:

Fragmenty kódu v tomto dokumentu byly testovány s verzí 1.0.83 sady Python SDK.

Co je potřeba aktualizovat

Účty úložiště můžou používat pracovní prostor Azure Machine Learning (ukládání protokolů, modelů, snímků atd.) a jako úložiště dat. Proces aktualizace pracovního prostoru je jeden příkaz Azure CLI a po aktualizaci klíče úložiště je možné ho spustit. Proces aktualizace úložišť dat je více zapojen a vyžaduje zjištění, které úložiště dat aktuálně používají účet úložiště, a pak je znovu zaregistrovat.

Důležité

Aktualizujte pracovní prostor pomocí Azure CLI a úložišť dat pomocí Pythonu současně. Aktualizace pouze jedné nebo druhé není dostatečná a může způsobit chyby, dokud se oba neaktualizují.

Pokud chcete zjistit účty úložiště používané vašimi úložišti dat, použijte následující kód:

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)

Tento kód vyhledá všechna zaregistrovaná úložiště dat, která používají Azure Storage s ověřováním klíčů, a zobrazí následující informace:

  • Název úložiště dat: Název úložiště dat, pod kterým je účet úložiště zaregistrovaný.
  • Název účtu úložiště: Název účtu azure Storage.
  • Kontejner: Kontejner v účtu úložiště, který tato registrace používá.
  • Sdílená složka: Sdílená složka, kterou tato registrace používá.
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)

Tento kód vyhledá všechny registrované úložiště dat, které používají Azure Storage, a zobrazí následující informace:

  • Název úložiště dat: Název úložiště dat, pod kterým je účet úložiště zaregistrovaný.
  • Název účtu úložiště: Název účtu azure Storage.
  • Kontejner: Kontejner v účtu úložiště, který tato registrace používá.

Označuje také, jestli je úložiště dat určené pro objekt blob Azure nebo sdílenou složku Azure, protože existují různé metody opětovné registrace jednotlivých typů úložiště dat.

Pokud pro účet úložiště, pro který plánujete znovu vygenerovat přístupové klíče, uložte název úložiště dat, název účtu úložiště a název kontejneru.

Aktualizace přístupového klíče

Pokud chcete službu Azure Machine Learning aktualizovat tak, aby používala nový klíč, postupujte následovně:

Důležité

Proveďte všechny kroky, aktualizujte pracovní prostor pomocí rozhraní příkazového řádku i úložiště dat pomocí Pythonu. Aktualizace pouze jedné nebo druhé může způsobit chyby, dokud se oba neaktualizují.

  1. Znovu vygenerujte klíč. Informace o opětovném vygenerování přístupového klíče najdete v tématu Správa přístupových klíčů účtu úložiště. Uložte nový klíč.

  2. Pracovní prostor Azure Machine Learning automaticky synchronizuje nový klíč a začne ho používat po hodině. Pokud chcete, aby se pracovní prostor okamžitě synchronizoval s novým klíčem, postupujte následovně:

    1. Pokud se chcete přihlásit k předplatnému Azure, které obsahuje váš pracovní prostor, pomocí následujícího příkazu Azure CLI:

      az login
      

      Tip

      Po přihlášení se zobrazí seznam předplatných přidružených k vašemu účtu Azure. Informace o isDefault: true předplatném jsou aktuálně aktivované předplatné pro příkazy Azure CLI. Toto předplatné musí být stejné, které obsahuje váš pracovní prostor Azure Machine Learning. Informace o předplatném najdete na stránce přehledu vašeho pracovního prostoru na webu Azure Portal.

      Pokud chcete vybrat jiné předplatné, které se má použít pro příkazy Azure CLI, spusťte az account set -s <subscription> příkaz a zadejte název nebo ID předplatného, na které se má přepnout. Další informace o výběru předplatného najdete v tématu Použití více předplatných Azure.

    2. Pokud chcete pracovní prostor aktualizovat tak, aby používal nový klíč, použijte následující příkaz. Nahraďte myworkspace názvem pracovního prostoru Služby Azure Machine Learning a nahraďte myresourcegroup názvem skupiny prostředků Azure, která tento pracovní prostor obsahuje.

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

      Tento příkaz automaticky synchronizuje nové klíče pro účet úložiště Azure používaný pracovním prostorem.

  3. Úložiště dat, která používají účet úložiště, můžete znovu zaregistrovat prostřednictvím sady SDK nebo studio Azure Machine Learning.

    1. Pokud chcete úložiště dat znovu zaregistrovat prostřednictvím sady Python SDK, použijte hodnoty z části Co je potřeba aktualizovat a klíč z kroku 1 s následujícím kódem.

      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)
      

      Vzhledem k tomu overwrite=True , že je zadaný, tento kód přepíše existující registraci a aktualizuje ho tak, aby používal nový klíč.

      # 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. Opětovná registrace úložišť dat prostřednictvím studia

      1. V sadě Studio vyberte v levém podokně v části Prostředky data.

      2. Nahoře vyberte Úložiště dat.

      3. Vyberte úložiště dat, které chcete aktualizovat.

      4. V levém horním rohu vyberte tlačítko Aktualizovat přihlašovací údaje.

      5. K naplnění formuláře použijte nový přístupový klíč z kroku 1 a klikněte na Uložit.

        Pokud aktualizujete přihlašovací údaje pro výchozí úložiště dat, dokončete tento krok a opakujte krok 2b a znovu synchronizujte nový klíč s výchozím úložištěm dat pracovního prostoru.

Další kroky

Další informace o používání úložišť dat naleznete v tématu Použití úložišť dat.

Další informace o registraci úložišť dat najdete v referenčních informacích ke Datastore třídě.