Ponowne generowanie kluczy dostępu do konta magazynu
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 1zestawu SDK języka Python azureml v1
DOTYCZY: Zestaw SDK języka Python w wersji 1
Dowiedz się, jak zmienić klucze dostępu dla kont usługi Azure Storage używanych przez usługę Azure Machine Learning. Usługa Azure Machine Learning może używać kont magazynu do przechowywania danych lub wytrenowanych modeli.
Ze względów bezpieczeństwa może być konieczne zmianę kluczy dostępu dla konta usługi Azure Storage. W przypadku ponownego wygenerowania klucza dostępu należy zaktualizować usługę Azure Machine Learning, aby można było używać nowego klucza. Usługa Azure Machine Learning może używać konta magazynu zarówno dla magazynu modelu, jak i jako magazynu danych.
Ważne
Poświadczenia zarejestrowane w magazynach danych są zapisywane w usłudze Azure Key Vault skojarzonej z obszarem roboczym. Jeśli dla usługi Key Vault włączono usuwanie nietrwałe, ten artykuł zawiera instrukcje dotyczące aktualizowania poświadczeń. Jeśli wyrejestrujesz magazyn danych i spróbujesz ponownie zarejestrować go pod tą samą nazwą, ta akcja zakończy się niepowodzeniem. Zobacz Włączanie usuwania nietrwałego dla istniejącego magazynu kluczy, aby dowiedzieć się, jak włączyć usuwanie nietrwałe w tym scenariuszu.
Wymagania wstępne
- Obszar roboczy usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz artykuł Tworzenie zasobów obszaru roboczego.
Rozszerzenie interfejsu wiersza polecenia usługi Azure Machine Learning w wersji 2.
Rozszerzenie interfejsu wiersza polecenia usługi Azure Machine Learning w wersji 1.
Uwaga
Fragmenty kodu w tym dokumencie zostały przetestowane przy użyciu wersji 1.0.83 zestawu SDK języka Python.
Co należy zaktualizować
Konta magazynu mogą być używane przez obszar roboczy usługi Azure Machine Learning (przechowywanie dzienników, modeli, migawek itp.) i jako magazyn danych. Proces aktualizowania obszaru roboczego jest pojedynczym poleceniem interfejsu wiersza polecenia platformy Azure i można go uruchomić po zaktualizowaniu klucza magazynu. Proces aktualizowania magazynów danych jest bardziej zaangażowany i wymaga odnalezienia magazynów danych, które obecnie korzystają z konta magazynu, a następnie ich ponownego zarejestrowania.
Ważne
Zaktualizuj obszar roboczy przy użyciu interfejsu wiersza polecenia platformy Azure i magazyny danych przy użyciu języka Python w tym samym czasie. Aktualizowanie tylko jednej lub drugiej nie jest wystarczające i może powodować błędy do czasu zaktualizowania obu tych elementów.
Aby odnaleźć konta magazynu używane przez magazyny danych, użyj następującego kodu:
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)
Ten kod wyszukuje wszystkie zarejestrowane magazyny danych korzystające z usługi Azure Storage z uwierzytelnianiem za pomocą klucza i zawierają następujące informacje:
- Nazwa magazynu danych: nazwa magazynu danych, w ramach którego zarejestrowano konto magazynu.
- Nazwa konta magazynu: nazwa konta usługi Azure Storage.
- Kontener: kontener na koncie magazynu używanym przez tę rejestrację.
- Udział plików: udział plików używany przez tę rejestrację.
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)
Ten kod wyszukuje wszystkie zarejestrowane magazyny danych korzystające z usługi Azure Storage i zawierają następujące informacje:
- Nazwa magazynu danych: nazwa magazynu danych, w ramach którego zarejestrowano konto magazynu.
- Nazwa konta magazynu: nazwa konta usługi Azure Storage.
- Kontener: kontener na koncie magazynu używanym przez tę rejestrację.
Wskazuje również, czy magazyn danych jest przeznaczony dla obiektu blob platformy Azure, czy udziału plików platformy Azure, ponieważ istnieją różne metody ponownego rejestrowania każdego typu magazynu danych.
Jeśli istnieje wpis dla konta magazynu, dla którego planujesz ponowne generowanie kluczy dostępu, zapisz nazwę magazynu danych, nazwę konta magazynu i nazwę kontenera.
Aktualizowanie klucza dostępu
Aby zaktualizować usługę Azure Machine Learning w celu użycia nowego klucza, wykonaj następujące kroki:
Ważne
Wykonaj wszystkie kroki, aktualizuj zarówno obszar roboczy przy użyciu interfejsu wiersza polecenia, jak i magazyny danych przy użyciu języka Python. Aktualizowanie tylko jednego lub drugiego może spowodować błędy do czasu zaktualizowania obu tych elementów.
Wygeneruj ponownie klucz. Aby uzyskać informacje na temat ponownego generowania klucza dostępu, zobacz Zarządzanie kluczami dostępu do konta magazynu. Zapisz nowy klucz.
Obszar roboczy usługi Azure Machine Learning automatycznie zsynchronizuje nowy klucz i zacznie go używać po godzinie. Aby wymusić natychmiastowe zsynchronizowanie obszaru roboczego z nowym kluczem, wykonaj następujące kroki:
Aby zalogować się do subskrypcji platformy Azure zawierającej obszar roboczy przy użyciu następującego polecenia interfejsu wiersza polecenia platformy Azure:
az login
Napiwek
Po zalogowaniu zostanie wyświetlona lista subskrypcji skojarzonych z kontem platformy Azure. Informacje o subskrypcji z
isDefault: true
programem to aktualnie aktywowana subskrypcja poleceń interfejsu wiersza polecenia platformy Azure. Ta subskrypcja musi być taka sama, która zawiera obszar roboczy usługi Azure Machine Learning. Informacje o subskrypcji można znaleźć na stronie przeglądu obszaru roboczego w witrynie Azure Portal.Aby wybrać inną subskrypcję do użycia dla poleceń interfejsu wiersza polecenia platformy Azure, uruchom
az account set -s <subscription>
polecenie i określ nazwę subskrypcji lub identyfikator, do których ma zostać przełączona. Aby uzyskać więcej informacji na temat wyboru subskrypcji, zobacz Korzystanie z wielu subskrypcji platformy Azure.Aby zaktualizować obszar roboczy do użycia nowego klucza, użyj następującego polecenia. Zastąp
myworkspace
ciąg nazwą obszaru roboczego usługi Azure Machine Learning i zastąpmyresourcegroup
ciąg nazwą grupy zasobów platformy Azure, która zawiera obszar roboczy.az ml workspace sync-keys -n myworkspace -g myresourcegroup
To polecenie automatycznie synchronizuje nowe klucze dla konta usługi Azure Storage używanego przez obszar roboczy.
Możesz ponownie zarejestrować magazyny danych korzystające z konta magazynu za pośrednictwem zestawu SDK lub usługi Azure Machine Learning Studio.
Aby ponownie zarejestrować magazyny danych za pomocą zestawu SDK języka Python, użyj wartości z sekcji Co należy zaktualizować i klucza z kroku 1 przy użyciu następującego kodu.
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)
Ponieważ
overwrite=True
jest określony, ten kod zastępuje istniejącą rejestrację i aktualizuje go do użycia nowego klucza.# 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)
Aby ponownie zarejestrować magazyny danych za pośrednictwem programu Studio
W studio wybierz pozycję Dane w okienku po lewej stronie w obszarze Zasoby.
W górnej części wybierz pozycję Magazyny danych.
Wybierz magazyn danych, który chcesz zaktualizować.
Wybierz przycisk Aktualizuj poświadczenia w lewym górnym rogu.
Użyj nowego klucza dostępu z kroku 1, aby wypełnić formularz, a następnie kliknij przycisk Zapisz.
Jeśli aktualizujesz poświadczenia domyślnego magazynu danych, wykonaj ten krok i powtórz krok 2b, aby ponownie zsynchronizować nowy klucz z domyślnym magazynem danych obszaru roboczego.
Następne kroki
Aby uzyskać więcej informacji na temat korzystania z magazynów danych, zobacz Korzystanie z magazynów danych.
Aby uzyskać więcej informacji na temat rejestrowania magazynów danych, zobacz dokumentację Datastore
klasy.