Повторное создание ключей доступа для учетной записи хранения
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python azure-ai-ml версии 2 (current)
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение Машинного обучения для Azure CLI версии 1пакет SDK для Python azureml версии 1
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python версии 1
Узнайте, как изменить ключи доступа для учетных записей хранения Azure, используемых Машинным обучением Azure. Машинное обучение Azure могут использовать учетные записи хранения для хранения данных или обученных моделей.
В целях безопасности может потребоваться изменить ключи доступа для учетной записи хранения Azure. При повторном создании ключа доступа Машинное обучение Azure необходимо обновить, чтобы использовать новый ключ. Машинное обучение Azure может использовать учетную запись хранения как для хранилища модели, так и для хранилища данных.
Внимание
Учетные данные, зарегистрированные в хранилищах данных, сохраняются в хранилище Azure Key Vault, связанном с рабочей областью. Если для Key Vault включено обратимое удаление, в этой статье приводятся инструкции по обновлению учетных данных. Если отменить регистрацию хранилища данных и попытаться повторно зарегистрировать его с тем же именем, это действие завершится ошибкой. Сведения о включении обратимого удаления в этом сценарии см. в разделе Включение обратимого удаления для существующего хранилища ключей.
Необходимые компоненты
- Рабочая область Машинного обучения Azure. Дополнительные сведения см. в статье Создание ресурсов рабочей области.
Расширение CLI Машинное обучение Azure версии 2.
Примечание.
Фрагменты кода в этом документе были протестированы с версией 1.0.83 пакета SDK для Python.
Что требует обновления
Учетные записи хранения могут использоваться рабочей областью Машинного обучения Azure (хранение журналов, моделей, моментальных снимков и т. д.) и в качестве хранилища данных. Процесс обновления рабочей области является единственной командой Azure CLI и может быть запущен после обновления ключа хранилища. Процесс обновления хранилищ данных больше вовлечен и требует обнаружения того, какие хранилища данных в настоящее время используют эту учетную запись хранения, а затем их повторная регистрация.
Внимание
Одновременно обновите рабочую область, используя Azure CLI и хранилища данных с помощью Python. Обновление только одного или другого не является достаточным, и может привести к ошибкам, пока оба не будут обновлены.
Чтобы найти учетные записи хранения, используемые хранилищами данных, используйте следующий код:
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)
Этот код ищет все зарегистрированные хранилища данных, использующие служба хранилища Azure с проверкой подлинности ключа, и содержит следующие сведения:
- Имя хранилища данных: имя хранилища данных, в котором зарегистрирована учетная запись хранения.
- storage_account_name — имя учетной записи хранения Azure.
- Контейнер: контейнер в учетной записи хранения, используемый при регистрации.
- Общая папка: общая папка, используемая этой регистрацией.
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)
Этот код ищет все зарегистрированные хранилища данных, в которых используется служба хранилища Azure, и перечисляет следующие сведения:
- Имя хранилища данных: имя хранилища данных, в котором зарегистрирована учетная запись хранения.
- storage_account_name — имя учетной записи хранения Azure.
- Контейнер: контейнер в учетной записи хранения, используемый при регистрации.
Оно также указывает, предназначено ли хранилище данных для большого двоичного объекта Azure или файлового ресурса Azure, так как существуют различные методы повторной регистрации каждого типа хранилища данных.
Если для учетной записи хранения, в которой планируется повторное создание ключей доступа, существует запись, то сохраните имя хранилища данных, имя учетной записи хранения и имя контейнера.
Обновить ключ доступа
Чтобы обновить Машинное обучение Azure для использования нового ключа, выполните следующие действия.
Внимание
Выполните все действия, обновив рабочую область с помощью интерфейса командной строки и хранилища данных с помощью Python. Обновление только одного или другого может вызвать ошибки до тех пор, пока оба обновления не будут обновлены.
Повторное создание ключа. Сведения о повторном создании ключа доступа см. в статье Управление ключами доступа учетной записи хранения. Сохраните новый ключ.
Рабочая область Машинное обучение Azure будет автоматически синхронизировать новый ключ и начать использовать ее через час. Чтобы заставить рабочую область синхронизироваться с новым ключом немедленно, выполните следующие действия.
Чтобы войти в подписку Azure, содержащую рабочую область, используйте следующую команду Azure CLI:
az login
Совет
После входа вы увидите список подписок, связанных с вашей учетной записью Azure. В сведениях о подписке с
isDefault: true
указана текущая активная подписка для команд Azure CLI. Эта подписка должна быть той же, которая содержит рабочую область Машинного обучения Azure. Сведения о подписке можно найти на странице обзора рабочей области в портал Azure.Чтобы выбрать другую подписку для команд Azure CLI, выполните
az account set -s <subscription>
команду и укажите имя подписки или идентификатор для переключения. См. дополнительные сведения о выборе нужной подписки при использовании нескольких подписок Azure.Чтобы обновить рабочую область для использования нового ключа, используйте следующую команду. Замените
myworkspace
именем рабочей области Машинного обучения Azure и заменитеmyresourcegroup
именем группы ресурсов Azure, содержащей рабочую область.az ml workspace sync-keys -n myworkspace -g myresourcegroup
Эта команда автоматически синхронизирует новые ключи для учетной записи хранения Azure, используемой рабочей областью.
Вы можете повторно зарегистрировать хранилища данных, использующие эту учетную запись хранения, с помощью пакета SDK или Студией машинного обучения Azure.
Чтобы повторно зарегистрировать хранилища данных с помощью пакета SDK для Python, используйте значения из раздела что необходимо обновить и ключ из шага 1 в следующем коде.
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)
Так как
overwrite=True
указан, этот код перезаписывает существующую регистрацию и обновляет ее для использования нового ключа.# 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)
Повторная регистрация хранилищ данных через студию
В студии выберите "Данные " на левой панели в разделе "Ресурсы".
В верхней части выберите хранилища данных.
Выберите хранилище данных, которое необходимо обновить.
Нажмите кнопку обновить учетные данные в левом верхнем углу.
Используйте новый ключ доступа из шага 1, чтобы заполнить форму, и нажмите кнопку сохранить.
Если вы обновляете учетные данные для хранилища данных по умолчанию, выполните этот шаг и повторите шаг 2b для повторной синхронизации нового ключа с хранилищем данных по умолчанию рабочей области.
Следующие шаги
Дополнительные сведения об использовании хранилищ данных см. в разделе "Использование хранилищ данных".
Дополнительные сведения о регистрации хранилищ данных см в справочнике по классам Datastore
.