Tutorial: como criar um espaço de trabalho seguro usando o modelo

Os modelos fornecem uma maneira conveniente de criar implantações de serviço reproduzíveis. O modelo define o que será criado, com algumas informações fornecidas por você ao usar o modelo. Por exemplo, especificar um nome exclusivo para o workspace do Azure Machine Learning.

Neste tutorial, você aprenderá a usar um modelo Microsoft Bicep e Hashicorp Terraform para criar os seguintes recursos do Azure:

  • Rede Virtual do Azure. Os seguintes recursos são protegidos por trás dessa VNet:
    • Workspace do Azure Machine Learning
      • Instância de computação do Azure Machine Learning
      • Cluster de computação do Azure Machine Learning
    • Conta de Armazenamento do Azure
    • Cofre de Chave do Azure
    • Azure Application Insights
    • Registro de Contêiner do Azure
    • Host do Azure Bastion
    • Máquina virtual do Azure Machine Learning (Máquina Virtual de Ciência de Dados)
    • O modelo Bicep também cria um cluster Serviço de Kubernetes do Azure e um grupo de recursos separado para ele.

Dica

A Microsoft recomenda usar redes virtuais gerenciadas do Azure Machine Learning em vez das etapas neste artigo. Com uma rede virtual gerenciada, o Azure Machine Learning lida com o trabalho de isolamento da rede para seu workspace e computação gerenciada. Você também pode adicionar pontos de extremidade privados para os recursos necessários para o workspace, como uma Conta de Armazenamento do Azure. Para obter mais informações, confira Isolamento da rede gerenciada no workspace.

Pré-requisitos

Antes de usar as etapas neste artigo, você deve ter uma assinatura do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.

Você também deve ter uma linha de comando Bash ou Azure Powershell.

Dica

Ao ler este artigo, use as guias em cada seção para selecionar se é preciso exibir informações sobre como usar modelos Bicep ou Terraform.

  1. Para instalar as ferramentas de linha de comando, consulte Configurar ambientes de desenvolvimento e implantação do Bicep.

  2. O modelo Bicep usado neste artigo está localizado em https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure. Use os seguintes comandos para clonar o GitHub para seu ambiente de desenvolvimento:

    Dica

    Se você não tiver o comando git em seu ambiente de desenvolvimento, poderá instalá-lo do https://git-scm.com/.

    git clone https://github.com/Azure/azure-quickstart-templates
    cd azure-quickstart-templates/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure
    

Noções básicas sobre o modelo

O modelo Bicep é feito do main.bicep e dos arquivos no subdiretório modules. A tabela a seguir descreve por que cada arquivo é responsável:

Arquivo Descrição
main.bicep Parâmetros e variáveis. Passando parâmetros e variáveis para outros módulos no subdiretório modules.
vnet.bicep Define a Rede Virtual do Azure e sub-redes.
nsg.bicep Define as regras do grupo de segurança de rede para a VNet.
bastion.bicep Define o host Azure Bastion e a sub-rede. Azure Bastion permite que você acesse facilmente uma VM dentro da VNet usando seu navegador da Web.
dsvmjumpbox.bicep Define DSVM (Máquina Virtual de Ciência de Dados). Azure Bastion é usado para acessar essa VM por meio do navegador da Web.
storage.bicep Define a conta de Armazenamento do Azure usada pelo workspace para armazenamento padrão.
keyvault.bicep Define o Azure Key Vault usado pelo workspace.
containerregistry.bicep Define a Registro de Contêiner do Azure usada pelo workspace.
applicationinsights.bicep Define a Aplicativo Azure Insights usada pelo workspace.
machinelearningnetworking.bicep Define os pontos de extremidade privados e as zonas DNS para o workspace do Azure Machine Learning.
Machinelearning.bicep Define o workspace do Azure Machine Learning.
machinelearningcompute.bicep Define um cluster de computação do Azure Machine Learning e uma instância de computação.
privateaks.bicep Define uma instância de cluster dos Serviços de Kubernetes do Azure.

Importante

Os modelos de exemplo podem nem sempre usar a versão mais recente da API para o Azure Machine Learning. Antes de usar o modelo, recomendamos modificá-lo para usar as versões mais recentes da API. Para obter informações sobre as versões mais recentes da API do Azure Machine Learning, confira API REST do Azure Machine Learning.

Cada serviço do Azure tem um conjunto próprio de versões de API. Para obter informações sobre a API de um serviço específico, verifique as informações de serviço na referência da API REST do Azure.

Para atualizar a versão da API, localize a entrada Microsoft.MachineLearningServices/<resource> para o tipo de recurso e atualize-a para a versão mais recente. O seguinte exemplo é uma entrada para o workspace do Azure Machine Learning que usa uma versão da API de 2022-05-01:

resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-05-01' = {

Importante

O DSVM e o Azure Bastion são usados como uma maneira fácil de se conectar ao espaço de trabalho protegido para este tutorial. Em um ambiente de produção, é recomendável usar um Gateway de VPN do Azure ou o Azure ExpressRoute para acessar os recursos dentro da VNet diretamente da sua rede local.

Configurar o modelo

Para executar o modelo Bicep, use os seguintes comandos no local machine-learning-end-to-end-secure onde o arquivo main.bicep é:

  1. Para criar um grupo de recursos, use o comando a seguir. Substitua exampleRG pelo nome do grupo de recursos e eastus pela região do Azure que você deseja usar:

    az group create --name exampleRG --location eastus
    
  2. Para executar o modelo, use o comando a seguir. Substitua o prefix por um prefixo exclusivo. O prefixo será usado ao criar recursos do Azure necessários para o Azure Machine Learning. Substitua o securepassword por uma senha segura para a jump box. A senha é para a conta de logon da jump box (azureadmin nos exemplos abaixo):

    Dica

    O prefix deve ter cinco caracteres ou menos. Ela não pode ser totalmente numérica ou conter os seguintes caracteres: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

    az deployment group create \
        --resource-group exampleRG \
        --template-file main.bicep \
        --parameters \
        prefix=prefix \
        dsvmJumpboxUsername=azureadmin \
        dsvmJumpboxPassword=securepassword
    

Conectar-se ao workspace

Após a conclusão do modelo, use as seguintes etapas para se conectar ao DSVM:

  1. No portal do Azure, selecione o grupo de recursos do Azure que você usou com o modelo. Em seguida, selecione o Máquina Virtual de Ciência de Dados que foi criado pelo modelo. Se você tiver problemas para encontrá-lo, use a seção filtros para filtrar o tipo para máquina virtual.

    Screenshot of filtering and selecting the vm.

  2. Na seção visão geral da Máquina Virtual, selecione Conexãoe, em seguida, selecione Bastion na lista suspensa.

    Screenshot of selecting to connect using Bastion.

  3. Quando solicitado, forneça o nome de usuário e a senha que você especificou ao configurar o modelo e, em seguida, selecione Conexão.

    Importante

    Na primeira vez que você se conectar à área de trabalho do DSVM, uma janela do PowerShell será aberta e começará a executar um script. Permita que isso seja concluído antes de continuar com a próxima etapa.

  4. Na área de trabalho do DSVM, inicie Microsoft Edge e insira https://ml.azure.com como o endereço. Entre em sua assinatura do Azure e selecione o espaço de trabalho criado pelo modelo. O estúdio para seu workspace é exibido.

Solução de problemas

Erro: o nome de computador do Windows não pode ter mais de 15 caracteres, só conter números ou conter os seguintes caracteres

Esse erro pode ocorrer quando o nome da jump box DSVM tiver mais de 15 caracteres ou incluir um dos seguintes caracteres: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

Ao usar o modelo Bicep, o nome da jump box é gerado programaticamente usando o valor do prefixo fornecido ao modelo. Para garantir que o nome não exceda 15 caracteres ou contenha caracteres inválidos, use um prefixo de 5 caracteres ou menos e não use nenhum dos seguintes caracteres no prefixo: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

Ao usar o modelo do Terraform, o nome da jump box é passado usando o parâmetro dsvm_name. Para evitar esse erro, use um nome que não tenha mais de 15 caracteres e não use nenhum dos seguintes caracteres como parte do nome: ~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?.

Próximas etapas

Importante

O DSVM (Máquina Virtual de Ciência de Dados) e quaisquer recursos de instância de computação cobram por cada hora em que estão em execução. Para evitar encargos em excesso, você deve interromper esses recursos quando eles não estiverem em uso. Para obter mais informações, confira os seguintes artigos:

Para continuar aprendendo a usar o workspace protegido do DSVM, confira Tutorial: Azure Machine Learning em um dia.

Para saber mais sobre as configurações comuns do espaço de trabalho seguro e os requisitos de entrada/saída, confira Azure Machine Learning fluxo de tráfego de espaço de trabalho seguro.