Toegangssleutels voor opslagaccount opnieuw genereren

Meer informatie over het wijzigen van de toegangssleutels voor Azure Storage-accounts die worden gebruikt door Azure Machine Learning. Azure Machine Learning kan opslagaccounts gebruiken om gegevens of getrainde modellen op te slaan.

Voor beveiligingsdoeleinden moet u mogelijk de toegangssleutels voor een Azure Storage-account wijzigen. Wanneer u de toegangssleutel opnieuw genereert, moet Azure Machine Learning worden bijgewerkt om de nieuwe sleutel te kunnen gebruiken. Azure Machine Learning gebruikt mogelijk het opslagaccount voor zowel modelopslag als als een gegevensarchief.

Belangrijk

Referenties die zijn geregistreerd bij gegevensarchieven, worden opgeslagen in uw Azure Key Vault die is gekoppeld aan de werkruimte. Als voorlopig verwijderen is ingeschakeld voor uw Key Vault, bevat dit artikel instructies voor het bijwerken van referenties. Als u de registratie van het gegevensarchief ongedaan maakt en deze opnieuw probeert te registreren onder dezelfde naam, mislukt deze actie. Zie Voorlopig verwijderen inschakelen voor een bestaande sleutelkluis voor het inschakelen van voorlopig verwijderen in dit scenario.

Vereisten

Notitie

De codefragmenten in dit document zijn getest met versie 1.0.83 van de Python SDK.

Wat moet worden bijgewerkt

Opslagaccounts kunnen worden gebruikt door de Azure Machine Learning-werkruimte (logboeken, modellen, momentopnamen, enzovoort) en als gegevensarchief. Het proces voor het bijwerken van de werkruimte is één Azure CLI-opdracht en kan worden uitgevoerd na het bijwerken van de opslagsleutel. Het proces voor het bijwerken van gegevensarchieven is meer betrokken en vereist dat u ontdekt welke gegevensarchieven momenteel het opslagaccount gebruiken en deze vervolgens opnieuw registreren.

Belangrijk

Werk de werkruimte bij met behulp van de Azure CLI en de gegevensarchieven met behulp van Python, tegelijkertijd. Het bijwerken van slechts één of de andere is niet voldoende en kan fouten veroorzaken totdat beide zijn bijgewerkt.

Gebruik de volgende code om de opslagaccounts te detecteren die worden gebruikt door uw gegevensarchieven:

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)

Met deze code wordt gezocht naar geregistreerde gegevensarchieven die Gebruikmaken van Azure Storage met sleutelverificatie en worden de volgende informatie weergegeven:

  • Naam van gegevensarchief: de naam van het gegevensarchief waaronder het opslagaccount is geregistreerd.
  • Naam van opslagaccount: de naam van het Azure Storage-account.
  • Container: de container in het opslagaccount dat wordt gebruikt door deze registratie.
  • Bestandsshare: de bestandsshare die wordt gebruikt door deze registratie.
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)

Met deze code wordt gezocht naar geregistreerde gegevensarchieven die gebruikmaken van Azure Storage en worden de volgende informatie vermeld:

  • Naam van gegevensarchief: de naam van het gegevensarchief waaronder het opslagaccount is geregistreerd.
  • Naam van opslagaccount: de naam van het Azure Storage-account.
  • Container: de container in het opslagaccount dat wordt gebruikt door deze registratie.

Het geeft ook aan of het gegevensarchief voor een Azure-blob of een Azure-bestandsshare is, omdat er verschillende methoden zijn om elk type gegevensarchief opnieuw te registreren.

Als er een vermelding bestaat voor het opslagaccount waarvoor u toegangssleutels wilt genereren, slaat u de naam van het gegevensarchief, de naam van het opslagaccount en de containernaam op.

De toegangssleutel bijwerken

Als u Azure Machine Learning wilt bijwerken om de nieuwe sleutel te gebruiken, gebruikt u de volgende stappen:

Belangrijk

Voer alle stappen uit, waarbij u zowel de werkruimte bijwerkt met behulp van de CLI als gegevensarchieven met behulp van Python. Het bijwerken van slechts één of de andere kan fouten veroorzaken totdat beide zijn bijgewerkt.

  1. Genereer de sleutel opnieuw. Zie Toegangssleutels voor opslagaccounts beheren voor informatie over het opnieuw genereren van een toegangssleutel. Sla de nieuwe sleutel op.

  2. De Azure Machine Learning-werkruimte synchroniseert automatisch de nieuwe sleutel en begint deze na een uur te gebruiken. Als u wilt afdwingen dat de werkruimte onmiddellijk met de nieuwe sleutel wordt gesynchroniseerd, gebruikt u de volgende stappen:

    1. Als u zich wilt aanmelden bij het Azure-abonnement dat uw werkruimte bevat met behulp van de volgende Azure CLI-opdracht:

      az login
      

      Tip

      Nadat u zich hebt aangemeld, ziet u een lijst met abonnementen die zijn gekoppeld aan uw Azure-account. De abonnementsgegevens met isDefault: true zijn het abonnement dat momenteel is geactiveerd voor Azure CLI-opdrachten. Dit abonnement moet gelijk zijn aan het abonnement dat uw Azure Machine Learning-werkruimte bevat. U vindt de abonnements-id in Azure Portal door naar de overzichtspagina voor uw werkruimte te gaan.

      Als u een ander abonnement wilt selecteren, gebruikt u de opdracht az account set -s <subscription name or ID> en geeft u de naam van het abonnement of het id op om over te schakelen. Zie Meerdere Azure-abonnementen gebruiken voor meer informatie over het selecteren van abonnementen.

    2. Gebruik de volgende opdracht om de werkruimte bij te werken voor het gebruik van de nieuwe sleutel. Vervang door myworkspace de naam van uw Azure Machine Learning-werkruimte en vervang deze door myresourcegroup de naam van de Azure-resourcegroep die de werkruimte bevat.

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

      Met deze opdracht worden de nieuwe sleutels voor het Azure-opslagaccount dat door de werkruimte wordt gebruikt, automatisch gesynchroniseerd.

  3. U kunt gegevensarchieven die gebruikmaken van het opslagaccount opnieuw registreren via de SDK of de Azure Machine Learning-studio.

    1. Als u gegevensarchieven opnieuw wilt registreren via de Python SDK, gebruikt u de waarden uit de sectie Wat moet worden bijgewerkt en de sleutel uit stap 1 met de volgende code.

      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)
      

      Omdat overwrite=True deze code is opgegeven, overschrijft deze de bestaande registratie en werkt deze bij om de nieuwe sleutel te gebruiken.

      # 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. Gegevensarchieven opnieuw registreren via de studio

      1. Selecteer in de studio Gegevens in het linkerdeelvenster onder Assets.

      2. Selecteer bovenaan Gegevensarchieven.

      3. Selecteer welk gegevensarchief u wilt bijwerken.

      4. Selecteer de knop Referenties bijwerken linksboven.

      5. Gebruik de nieuwe toegangssleutel uit stap 1 om het formulier in te vullen en klik op Opslaan.

        Als u referenties voor uw standaardgegevensarchief bijwerkt, voert u deze stap uit en herhaalt u stap 2b om uw nieuwe sleutel opnieuw te synchroniseren met het standaardgegevensarchief van de werkruimte.

Volgende stappen

Zie de klasseverwijzing voor meer informatie over het Datastore registreren van gegevensarchieven.