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