Condividi tramite


Come distribuire un modello ARM privato con un token SAS

Quando il modello di Azure Resource Manager si trova in un account di archiviazione, è possibile limitare l'accesso al modello per evitare di esporlo pubblicamente. È possibile accedere a un modello protetto creando un token di firma di accesso condiviso per il modello e fornendo tale token durante la distribuzione. Questo articolo illustra come usare Azure PowerShell o Azure CLI per distribuire in modo sicuro un modello di Resource Manager con un token SAS.

Sono disponibili informazioni su come proteggere e gestire l'accesso ai modelli di Resource Manager privati con istruzioni su come eseguire le operazioni seguenti:

  • Creare un account di archiviazione con un contenitore protetto
  • Caricare il modello nell'account di archiviazione
  • Fornire il token SAS durante la distribuzione

Importante

Invece di proteggere il modello privato con un token SAS, considera di usare le specifiche del modello. Con le specifiche del modello, è possibile condividere i modelli con altri utenti dell'organizzazione e gestire l'accesso ai modelli tramite Azure RBAC.

Creare un account di archiviazione con un contenitore protetto

Lo script seguente crea un account di archiviazione e un contenitore con accesso pubblico disattivato per la sicurezza dei modelli.

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

Caricare un modello privato nell'account di archiviazione

A questo momento, si è pronti per caricare il modello nell'account di archiviazione. Specificare il percorso del modello da usare.

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

Fornire il token SAS durante la distribuzione

Per distribuire un modello privato in un account di archiviazione, generare un token SAS e includerlo nell'URI del modello. Impostare l'ora di scadenza in modo da garantire un tempo sufficiente per completare la distribuzione.

Importante

Il BLOB contenente il modello privato è accessibile solo al proprietario dell'account. Tuttavia, quando si crea un token SAS per il blob, il blob è accessibile a chiunque disponga di tale URI. Se un altro utente intercetta l'URI, tale utente è in grado di accedere al modello. Un SAS token è un buon modo per limitare l'accesso ai template, ma non includere dati sensibili come le password direttamente nel template.

# 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

Per un esempio di uso di un token SAS con modelli collegati, vedere Uso di modelli collegati con Azure Resource Manager.

Passaggi successivi