Поделиться через


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

Если шаблон Azure Resource Manager (шаблон ARM) находится в учетной записи хранения, вы можете ограничить доступ к шаблону, чтобы избежать его общедоступного предоставления. Вы получаете доступ к защищенному шаблону, создавая токен подписи общего доступа (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 шаблона. Установите срок действия таким образом, чтобы было достаточно времени для завершения развертывания.

Это важно

Объект-blob, содержащий приватный шаблон, доступен только владельцу учетной записи. Однако, при создании маркера SAS для объекта BLOB, он становится доступен любому пользователю с этим унифицированным указателем ресурса (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".

Дальнейшие шаги