Déployer un modèle privé ARM avec un jeton SAS

Lorsque votre modèle Azure Resource Manager (modèle ARM) se trouve dans un compte de stockage, vous pouvez restreindre l’accès au modèle pour éviter de l’exposer publiquement. Vous accédez à un modèle sécurisé en créant un jeton de signature d’accès partagé (SAS) pour le modèle et en fournissant ce jeton pendant le déploiement. Cet article explique comment utiliser Azure PowerShell ou l’interface CLI Azure pour déployer un modèle avec un jeton SAS.

Vous y trouverez des informations sur la façon de protéger et de gérer l’accès à vos modèles ARM privés avec des instructions sur la façon d’effectuer les opérations suivantes :

  • Créer un compte de stockage avec un conteneur sécurisé
  • Charger le modèle dans le compte de stockage
  • Fournir un jeton SAP au cours du déploiement

Important

Plutôt que de sécuriser votre modèle avec un jeton SAS, envisagez d’utiliser les spécifications de modèle. Les spécifications de modèle vous permettent de partager vos modèles avec d’autres utilisateurs de votre organisation et de gérer l’accès aux modèles par le biais d’Azure RBAC.

Créer un compte de stockage avec un conteneur sécurisé

Le script suivant crée un compte et un conteneur de stockage avec l’accès public désactivé pour la sécurité du modèle.

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

Charger un modèle privé dans le compte de stockage

Maintenant, vous pouvez charger votre modèle dans le compte de stockage. Indiquez le chemin d’accès au modèle que vous souhaitez utiliser.

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

Fournir un jeton SAP au cours du déploiement

Pour déployer un modèle dans un compte de stockage privé, générez un jeton SAP et incluez-le dans l’URI du modèle. Définissez le délai d’expiration de façon à laisser suffisamment de temps pour terminer le déploiement.

Important

L’objet blob contenant le modèle privé n’est accessible qu’au propriétaire du compte. Toutefois, lorsque vous créez un jeton SAP pour l’objet blob, celui-ci est accessible à toute personne ayant cet URI. Si un autre utilisateur intercepte l’URI, il pourra accéder au modèle. Un jeton SAP est un bon moyen de limiter l’accès à vos modèles, mais vous ne devez pas inclure de données sensibles comme des mots de passe directement dans le modèle.

# 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

Pour accéder à un exemple d’utilisation d’un jeton SAP avec des modèles liés, consultez Utilisation de modèles liés avec Azure Resource Manager.

Étapes suivantes