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
- Para obter uma introdução à implementação de modelos, veja Implementar recursos com modelos arm e Azure PowerShell.
- Para definir parâmetros no modelo, veja Criação de modelos.