使用 SAS 令牌和 Azure PowerShell 部署专用 Resource Manager 模板

如果模板驻留在存储帐户中,你可以限制对该模板的访问,并在部署过程中提供共享访问签名 (SAS) 令牌。 本主题介绍如何将 Azure PowerShell 与 Resource Manager 模板配合使用在部署过程中提供 SAS 令牌。

将专用模板添加到存储帐户

可以将模板添加到存储帐户,并在部署过程中使用 SAS 令牌链接到这些模板。

Important

通过执行以下步骤,只有帐户所有者可以访问包含模板的 blob。 但是,如果为 blob 创建 SAS 令牌,则拥有该 URI 的任何人都可以访问 blob。 如果其他用户截获了该 URI,则此用户可以访问该模板。 使用 SAS 令牌是限制对模板的访问的好方法,但不应直接在模板中包括密码等敏感数据。

以下示例设置专用存储帐户容器并上传模板:

# create a storage account for templates
New-AzureRmResourceGroup -Name ManageGroup -Location "China East"
New-AzureRmStorageAccount -ResourceGroupName ManageGroup -Name {your-unique-name} -Type Standard_LRS -Location "China North"
Set-AzureRmCurrentStorageAccount -ResourceGroupName ManageGroup -Name {your-unique-name}

# create a container and upload template
New-AzureStorageContainer -Name templates -Permission Off
Set-AzureStorageBlobContent -Container templates -File c:\MyTemplates\storage.json

在部署期间提供 SAS 令牌

若要在存储帐户中部署专用模板,请生成 SAS 令牌,并将其包括在模板的 URI 中。 设置到期时间以允许足够的时间来完成部署。

Set-AzureRmCurrentStorageAccount -ResourceGroupName ManageGroup -Name {your-unique-name}

# get the URI with the SAS token
$templateuri = New-AzureStorageBlobSASToken -Container templates -Blob storage.json -Permission r `
  -ExpiryTime (Get-Date).AddHours(2.0) -FullUri

# provide URI with SAS token during deployment
New-AzureRmResourceGroup -Name ExampleGroup -Location "China East"
New-AzureRmResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateUri $templateuri

有关将 SAS 令牌与链接模板配合使用的示例,请参阅将已链接的模版与 Azure Resource Manager 配合使用

后续步骤