你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
当 Azure 资源管理器模板(ARM 模板)位于存储帐户中时,可以限制对模板的访问,以避免公开它。 可以通过为模板创建共享访问签名(SAS)令牌并在部署期间提供该令牌来访问受保护的模板。 本文介绍如何使用 Azure PowerShell 或 Azure CLI 通过 SAS 令牌安全地部署 ARM 模板。
你将了解到如何保护和管理对私人 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。 但是,为 Blob 创建 SAS 令牌时,具有该 URI 的任何人都可以访问该 Blob。 如果其他用户截获 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 资源管理器配合使用。
后续步骤
- 有关部署模板的简介,请参阅 使用 ARM 模板和 Azure PowerShell 部署资源。
- 若要在模板中定义参数,请参阅 创作模板。