Como implementar um modelo do ARM privado com o token de SAS

Quando o modelo do Azure Resource Manager (modelo arm) está localizado numa conta de armazenamento, pode restringir o acesso ao modelo para evitar expô-lo publicamente. Pode aceder a um modelo seguro ao criar um token de assinatura de acesso partilhado (SAS) para o modelo e ao fornecer esse token durante a implementação. Este artigo explica como utilizar Azure PowerShell ou a CLI do Azure para implementar em segurança um modelo do ARM com um token DE SAS.

Encontrará informações sobre como proteger e gerir o acesso aos seus modelos privados do ARM com instruções sobre como fazer o seguinte:

  • Criar uma conta de armazenamento com um contentor seguro
  • Carregar o modelo para a conta de armazenamento
  • Fornecer token de SAS durante a implementação

Importante

Em vez de proteger o modelo privado com um token de SAS, considere utilizar especificações de modelo. Com as especificações de modelo, pode partilhar os seus modelos com outros utilizadores na sua organização e gerir o acesso aos modelos através do RBAC do Azure.

Criar uma conta de armazenamento com um contentor seguro

O script seguinte cria uma conta de armazenamento e um contentor com 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 o modelo privado para a conta de armazenamento

Agora, está pronto para carregar o modelo para a conta de armazenamento. Indique o caminho para o modelo que pretende utilizar.

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

Fornecer token de SAS durante a implementação

Para implementar um modelo privado numa conta de armazenamento, gere um token de SAS e inclua-o no URI do modelo. Defina o tempo de expiração para permitir tempo suficiente para concluir a implementação.

Importante

O blob que contém o modelo privado está acessível apenas ao proprietário da conta. No entanto, quando cria um token de SAS para o blob, o blob é acessível a qualquer pessoa com esse URI. Se outro utilizador intercetar o URI, esse utilizador poderá aceder ao modelo. Um token de SAS é uma boa forma de limitar o acesso aos seus modelos, mas não deve incluir dados confidenciais como palavras-passe 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 utilização de um token DE SAS com modelos ligados, veja Utilizar modelos ligados com o Azure Resource Manager.

Passos seguintes