如何部署具有 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 使用連結的範本

下一步