Развертывание частного шаблона ARM с маркером SAS

Доступ к шаблону Azure Resource Manager (шаблон ARM), который находится в учетной записи хранения, можно ограничить, чтобы не предоставлять его открыто. Чтобы обеспечить доступ к защищенному шаблону, для него создается маркер подписанного URL-адреса (SAS), который предоставляется во время развертывания. В этой статье описывается, как с помощью Azure PowerShell или Azure CLI развернуть шаблон ARM с маркером SAS.

Вы найдете здесь сведения о том, как защищать доступ к личным шаблонам ARM и управлять им, а также инструкции по следующим действиям:

  • Создание учетной записи хранения с защищенным контейнером
  • Отправка шаблона в учетную запись хранения
  • Предоставление маркера SAS во время развертывания

Важно!

Вместо защиты шаблона с помощью маркера SAS попробуйте применить спецификации шаблона. Спецификации шаблонов позволяют предоставлять общий доступ к шаблонам другим пользователям организации и управлять этим доступом с помощью Azure RBAC.

Создание учетной записи хранения с защищенным контейнером

Следующий скрипт создает учетную запись хранения и контейнер с отключенным общим доступом для защиты шаблона.

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

Отправка частного шаблона в учетную запись хранения

Теперь вы готовы отправить шаблон в учетную запись хранения. Укажите путь к шаблону, который нужно использовать.

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

Предоставление маркера SAS во время развертывания

Чтобы развернуть частный шаблон в учетной записи хранения, создайте маркер SAS и добавьте его в универсальный код ресурса (URI) для шаблона. Задайте срок действия, достаточный для выполнения развертывания.

Важно!

Большой двоичный объект, содержащий частный шаблон, будет доступен только владельцу учетной записи. Тем не менее, если создать маркер SAS для этого большого двоичного объекта, то он будет доступен любому пользователю, обладающему этим универсальным кодом ресурса (URI). Если другой пользователь перехватит этот универсальный код ресурса (URI), то сможет получить доступ к шаблону. Маркер SAS — хороший способ ограничить доступ к своим шаблонам, но не следует указывать конфиденциальные данные, например пароли, непосредственно в шаблоне.

# 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

Пример использования маркера SAS со связанными шаблонами см. в статье Использование связанных шаблонов в Azure Resource Manager.

Дальнейшие действия