다음을 통해 공유


SAS 토큰을 사용하여 프라이빗 ARM 템플릿을 배포하는 방법

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

프라이빗 ARM 템플릿에 대한 액세스를 보호하고 관리하는 방법에 대한 정보와 다음을 수행하는 방법에 대한 지침을 찾을 수 있습니다.

  • 보안 컨테이너가 있는 스토리지 계정 만들기Create storage account with secured container
  • 스토리지 계정에 템플릿 업로드
  • 배포 중 SAS 토큰 제공

중요합니다

SAS 토큰으로 프라이빗 템플릿을 보호하는 대신 템플릿 사양을 사용하는 것이 좋습니다. 템플릿 사양을 사용하면 조직의 다른 사용자와 템플릿을 공유하고 Azure RBAC를 통해 템플릿에 대한 액세스를 관리할 수 있습니다.

보안 컨테이너가 있는 스토리지 계정 만들기Create storage account with secured container

다음 스크립트는 템플릿 보안을 위해 공용 액세스가 꺼진 스토리지 계정 및 컨테이너를 만듭니다.

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 Resource Manager에서 연결된 템플릿 사용을 참조하세요.

다음 단계