SAS トークンと Azure PowerShell を使用してプライベートの Resource Manager テンプレートをデプロイするDeploy private Resource Manager template with SAS token and Azure PowerShell

テンプレートがストレージ アカウントに存在する場合は、テンプレートへのアクセスを制限し、デプロイ時に Shared Access Signature (SAS) トークンを設定できます。When your template resides in a storage account, you can restrict access to the template and provide a shared access signature (SAS) token during deployment. このトピックでは、Azure PowerShell と Resource Manager テンプレートを使用して、デプロイ時に SAS トークンを設定する方法について説明します。This topic explains how to use Azure PowerShell with Resource Manager templates to provide a SAS token during deployment.


この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. AzureRM モジュールはまだ使用でき、少なくとも 2020 年 12 月までは引き続きバグ修正が行われます。You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。For Az module installation instructions, see Install Azure PowerShell.

ストレージ アカウントにプライベートのテンプレートを追加するAdd private template to storage account

SAS トークンを使用したデプロイの際に、テンプレートをストレージ アカウントに追加し、リンクできます。You can add your templates to a storage account and link to them during deployment with a SAS token.


次の手順に従うことにより、テンプレートを含む BLOB はアカウントの所有者だけがアクセスできるようになります。By following the steps below, the blob containing the template is accessible to only the account owner. ただし、BLOB の SAS トークンを作成すると、その URI を持つ誰もが BLOB にアクセスできるようになります。However, when you create a SAS token for the blob, the blob is accessible to anyone with that URI. もし別のユーザーが URI を傍受した場合、そのユーザーは、テンプレートにアクセスできます。If another user intercepts the URI, that user is able to access the template. SAS トークンの使用はテンプレートへのアクセスを制限する有効な方法ですが、パスワードのような機密データをテンプレートに直接含めないでください。Using a SAS token is a good way of limiting access to your templates, but you should not include sensitive data like passwords directly in the template.

次の例では、プライベート ストレージ アカウントのコンテナーを設定し、テンプレートをアップロードします。The following example sets up a private storage account container and uploads a template:

# create a storage account for templates
New-AzResourceGroup -Name ManageGroup -Location "South Central US"
New-AzStorageAccount -ResourceGroupName ManageGroup -Name {your-unique-name} -Type Standard_LRS -Location "West US"
Set-AzCurrentStorageAccount -ResourceGroupName ManageGroup -Name {your-unique-name}

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

デプロイ時に SAS トークンを指定するProvide SAS token during deployment

ストレージ アカウントにプライベートのテンプレートをデプロイするため、SAS トークンを生成してテンプレートの URI に含めます。To deploy a private template in a storage account, generate a SAS token and include it in the URI for the template. デプロイの完了に必要な時間を確保できるように有効期限を設定します。Set the expiry time to allow enough time to complete the deployment.

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

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

# provide URI with SAS token during deployment
New-AzResourceGroup -Name ExampleGroup -Location "South Central US"
New-AzResourceGroupDeployment -ResourceGroupName ExampleGroup -TemplateUri $templateuri

リンクされたテンプレートでの SAS トークン使用例については、「 Azure Resource Manager でのリンクされたテンプレートの使用」を参照してください。For an example of using a SAS token with linked templates, see Using linked templates with Azure Resource Manager.

次の手順Next steps