Distribuire un modello di Resource Manager privato con un token di firma di accesso condiviso e l'interfaccia della riga di comando di AzureDeploy private Resource Manager template with SAS token and Azure CLI

Quando il modello si trova in un account di archiviazione, è possibile limitare l'accesso al modello e fornire un token di firma di accesso condiviso in fase di distribuzione.When your template resides in a storage account, you can restrict access to the template and provide a shared access signature (SAS) token during deployment. Questo articolo illustra come usare Azure PowerShell con modelli di Resource Manager per fornire un token di firma di accesso condiviso durante la distribuzione.This topic explains how to use Azure PowerShell with Resource Manager templates to provide a SAS token during deployment.

Aggiungere un modello privato all'account di archiviazioneAdd private template to storage account

È possibile aggiungere i modelli a un account di archiviazione e collegarli durante la distribuzione con un token SAS.You can add your templates to a storage account and link to them during deployment with a SAS token.

Importante

Attenendosi alla seguente procedura, il BLOB contenente il modello sarà accessibile solo da parte del proprietario dell'account.By following the steps below, the blob containing the template is accessible to only the account owner. Tuttavia, quando si crea un token di firma di accesso condiviso per il BLOB, quest'ultimo sarà accessibile a tutti gli utenti con quell'URI.However, when you create a SAS token for the blob, the blob is accessible to anyone with that URI. Se l'URI viene intercettato da un altro utente, quest'ultimo sarà in grado di accedere al modello.If another user intercepts the URI, that user is able to access the template. Utilizzare un token di firma di accesso condiviso è un buon metodo per limitare l'accesso ai modelli, ma è necessario non includere direttamente nel modello dati sensibili come le password.Using a SAS token is a good way of limiting access to your templates, but you should not include sensitive data like passwords directly in the template.

L'esempio seguente configura un contenitore dell'account di archiviazione privato e carica un modello:The following example sets up a private storage account container and uploads a template:

az group create --name "ManageGroup" --location "South Central US"
az storage account create \
    --resource-group ManageGroup \
    --location "South Central US" \
    --sku Standard_LRS \
    --kind Storage \
    --name {your-unique-name}
connection=$(az storage account show-connection-string \
    --resource-group ManageGroup \
    --name {your-unique-name} \
    --query connectionString)
az storage container create \
    --name templates \
    --public-access Off \
    --connection-string $connection
az storage blob upload \
    --container-name templates \
    --file vmlinux.json \
    --name vmlinux.json \
    --connection-string $connection

Fornire il token SAS in fase di distribuzioneProvide SAS token during deployment

Per distribuire un modello privato in un account di archiviazione, generare un token di firma di accesso condiviso e includerlo nell'URI del modello.To deploy a private template in a storage account, generate a SAS token and include it in the URI for the template. Impostare l'ora di scadenza in modo da garantire un tempo sufficiente per completare la distribuzione.Set the expiry time to allow enough time to complete the deployment.

expiretime=$(date -u -d '30 minutes' +%Y-%m-%dT%H:%MZ)
connection=$(az storage account show-connection-string \
    --resource-group ManageGroup \
    --name {your-unique-name} \
    --query connectionString)
token=$(az storage blob generate-sas \
    --container-name templates \
    --name vmlinux.json \
    --expiry $expiretime \
    --permissions r \
    --output tsv \
    --connection-string $connection)
url=$(az storage blob url \
    --container-name templates \
    --name vmlinux.json \
    --output tsv \
    --connection-string $connection)
az group deployment create --resource-group ExampleGroup --template-uri $url?$token

Per un esempio sull'uso di un token di firma di accesso condiviso con modelli collegati, vedere Uso di modelli collegati con Azure Resource Manager.For an example of using a SAS token with linked templates, see Using linked templates with Azure Resource Manager.

Passaggi successiviNext steps