Så här distribuerar du en privat ARM-mall med SAS-token

När din Azure Resource Manager-mall (ARM-mall) finns i ett lagringskonto kan du begränsa åtkomsten till mallen för att undvika att exponera den offentligt. Du kommer åt en skyddad mall genom att skapa en SAS-token (signatur för delad åtkomst) för mallen och tillhandahålla den token under distributionen. Den här artikeln beskriver hur du använder Azure PowerShell eller Azure CLI för att distribuera en ARM-mall på ett säkert sätt med en SAS-token.

Du hittar information om hur du skyddar och hanterar åtkomst till dina privata ARM-mallar med anvisningar om hur du gör följande:

  • Skapa ett lagringskonto med en skyddad container
  • Ladda upp mallen till lagringskontot
  • Ange SAS-token under distributionen

Viktigt

I stället för att skydda din privata mall med en SAS-token bör du överväga att använda mallspecifikationer. Med mallspecifikationer kan du dela dina mallar med andra användare i din organisation och hantera åtkomst till mallarna via Azure RBAC.

Skapa ett lagringskonto med en skyddad container

Följande skript skapar ett lagringskonto och en container med offentlig åtkomst inaktiverad för mallsäkerhet.

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

Ladda upp en privat mall till lagringskontot

Nu är du redo att ladda upp mallen till lagringskontot. Ange sökvägen till den mall som du vill använda.

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

Ange SAS-token under distributionen

Om du vill distribuera en privat mall i ett lagringskonto genererar du en SAS-token och inkluderar den i mallens URI. Ange förfallotiden för att ge tillräckligt med tid för att slutföra distributionen.

Viktigt

Bloben som innehåller den privata mallen är endast tillgänglig för kontoägaren. Men när du skapar en SAS-token för bloben är bloben tillgänglig för alla med den URI:n. Om en annan användare fångar upp URI:n kan användaren komma åt mallen. En SAS-token är ett bra sätt att begränsa åtkomsten till dina mallar, men du bör inte inkludera känsliga data som lösenord direkt i mallen.

# 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

Ett exempel på hur du använder en SAS-token med länkade mallar finns i Använda länkade mallar med Azure Resource Manager.

Nästa steg