Como implantar modelo ARM privado com token SAS

Quando seu modelo do Azure Resource Manager (modelo ARM) está localizado em uma conta de armazenamento, você pode restringir o acesso ao modelo para evitar expô-lo publicamente. Você acessa um modelo seguro criando um token de assinatura de acesso compartilhado (SAS) para o modelo e fornecendo esse token durante a implantação. Este artigo explica como usar o Azure PowerShell ou a CLI do Azure para implantar com segurança um modelo ARM com um token SAS.

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

  • Criar conta de armazenamento com contêiner seguro
  • Carregar modelo para a conta de armazenamento
  • Fornecer token SAS durante a implantação

Importante

Em vez de proteger seu modelo privado com um token SAS, considere usar especificações de modelo. Com as especificações de modelo, você pode compartilhar seus 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 seguro

O script a seguir cria uma conta de armazenamento e um contêiner com o acesso público desativado para 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 modelo privado para a conta de armazenamento

Agora, você está pronto para carregar seu modelo para a conta de armazenamento. Forneça o caminho para o modelo que você deseja usar.

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

Fornecer 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 do modelo. Defina o tempo de expiração para permitir tempo suficiente para concluir a implantação.

Importante

O blob que contém o modelo privado é acessível apenas ao proprietário da conta. No entanto, quando você cria um token SAS para o blob, o blob é acessível a qualquer pessoa com esse URI. Se outro usuário intercetar o URI, esse usuário poderá 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 obter um exemplo de como usar um token SAS com modelos vinculados, consulte Usando modelos vinculados com o Azure Resource Manager.

Próximos passos