Como implantar um modelo do ARM privado com um token SAS

Quando o modelo do ARM (Azure Resource Manager) está em uma conta de armazenamento, você pode restringir o acesso ao modelo para evitar expô-lo publicamente. Para acessar o modelo protegido, você cria um token SAS (Assinatura de Acesso Compartilhado) para o modelo e o usa na implantação. Este artigo explica como usar o Azure PowerShell ou a CLI do Azure para implantar com segurança um modelo do ARM com um token SAS.

Você encontrará informações sobre como proteger e gerenciar o acesso aos modelos do ARM privados com instruções sobre como fazer o seguinte:

  • Criar conta de armazenamento com contêiner protegido
  • Fazer upload do modelo na conta de armazenamento
  • Forneça um token SAS durante a implantação

Importante

Em vez de proteger o modelo privado com um token SAS, considere o uso de especificações de modelo. Com as especificações de modelo, você pode compartilhar modelos com outros usuários em sua organização e gerenciar o acesso aos modelos por meio do RBAC do Azure.

Criar conta de armazenamento com contêiner protegido

O script a seguir cria uma conta de armazenamento e um contêiner com o acesso público desativado para a segurança do modelo.

New-AzResourceGroup `
  -Name ExampleGroup `
  -Location "Central US"
New-AzStorageAccount `
  -ResourceGroupName ExampleGroup `
  -Name {your-unique-name} `
  -Type Standard_LRS `
  -Location "Central US"
Set-AzCurrentStorageAccount `
  -ResourceGroupName ExampleGroup `
  -Name {your-unique-name}
New-AzStorageContainer `
  -Name templates `
  -Permission Off

Carregar um modelo privado na conta de armazenamento

Agora, você está pronto para carregar seu modelo na conta de armazenamento. Informe o caminho do modelo que você deseja usar.

Set-AzStorageBlobContent `
  -Container templates `
  -File c:\Templates\azuredeploy.json

Forneça um token SAS durante a implantação

Para implantar um modelo privado em uma conta de armazenamento, gere um token SAS e inclua-o no URI para o modelo. Defina a hora de vencimento de forma a permitir que haja tempo suficiente para concluir a implantação.

Importante

O blob que contém o modelo privado só fica acessível para o proprietário da conta. No entanto, quando você cria um token SAS para o blob, o blob fica acessível para qualquer pessoa com o URI. Se outro usuário interceptar o URI, esse usuário será capaz de acessar o modelo. Um token SAS é uma boa maneira de limitar o acesso aos seus modelos, mas você não deve incluir dados confidenciais como senhas diretamente no modelo.

# get the URI with the SAS token
$templateuri = New-AzStorageBlobSASToken `
  -Container templates `
  -Blob azuredeploy.json `
  -Permission r `
  -ExpiryTime (Get-Date).AddHours(2.0) -FullUri

# provide URI with SAS token during deployment
New-AzResourceGroupDeployment `
  -ResourceGroupName ExampleGroup `
  -TemplateUri $templateuri

Para ver um exemplo de como usar um token SAS com modelos vinculados, consulte Usando modelos vinculados com o Azure Resource Manager.

Próximas etapas