如何部署具有 SAS 權杖的私人 ARM 範本
若您的 Azure Resource Manager 範本 (ARM 範本) 位於儲存體帳戶,您可以限制範本的存取權,以避免公開該範本。 您可以為範本建立共用存取簽章 (SAS) 權杖,並在部署期間提供該權杖,藉此存取受保護的範本。 本文說明如何使用 Azure PowerShell 或 Azure CLI 安全部署具有 SAS 權杖的 ARM 範本。
以下資訊說明如何保護及管理私人 ARM 範本的存取權,並提供如何執行下列動作的指示:
- 建立具有安全容器的儲存體帳戶
- 將範本上傳至儲存體帳戶
- 在部署期間提供 SAS Token
重要
請考慮使用範本規格,而不是使用 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 Token
若要在儲存體帳戶中部署私人範本,請產生 SAS Token 並將它包含在範本的 URI 中。 設定到期時間,以允許足夠的時間來完成部署。
重要
只有帳戶擁有者可以存取含有範本的 Blob。 不過,當您建立 Blob 的 SAS Token 時,具備該 URI 的任何人都可以存取該 Blob。 如果另一位使用者攔截了 URI,該使用者也能存取範本。 SAS Token 是限制存取範本的好方法,但您不應該將機密資料 (如密碼) 直接包含在範本中。
# 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 Token 範例,請參閱 透過 Azure Resource Manager 使用連結的範本。
下一步
- 如需部署範本的簡介,請參閱使用 ARM 範本與 Azure PowerShell 來部署資源。
- 若要在範本中定義參數,請參閱 編寫範本。