SAS 토큰으로 개인 ARM 템플릿을 배포하는 방법

ARM 템플릿(Azure Resource Manager 템플릿)이 스토리지 계정에 있는 경우 공개적으로 노출되지 않도록 템플릿에 대한 액세스를 제한할 수 있습니다. 템플릿의 SAS(공유 액세스 서명) 토큰을 만들고 배포 중에 해당 토큰을 제공하여 보호된 템플릿에 액세스합니다. 이 문서에서는 Azure PowerShell 또는 Azure CLI를 사용하여 SAS 토큰으로 ARM 템플릿을 안전하게 배포하는 방법을 설명합니다.

다음 작업을 수행하는 방법에 대한 지시를 통해 개인 ARM 템플릿에 대한 액세스를 보호하고 관리하는 방법에 대한 정보를 찾을 수 있습니다.

  • 스토리지 계정 및 보호된 컨테이너 만들기
  • 스토리지 계정에 템플릿 업로드
  • 배포하는 동안 SAS 토큰 제공

Important

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에 포함합니다. 배포를 완료할 만큼 충분한 여유를 두고 만료 기간을 설정합니다.

Important

개인 템플릿이 포함된 Blob은 계정 소유자만 액세스할 수 있습니다. 그러나 blob용 SAS 토큰을 생성하면 해당 blob은 해당 URI를 가진 사람이면 누구나 액세스할 수 있습니다. 다른 사용자가 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 Resource Manager에서 연결된 템플릿 사용을 참조하세요.

다음 단계