Jak wdrożyć prywatny szablon usługi ARM przy użyciu tokenu SAS

Gdy szablon usługi Azure Resource Manager (szablon usługi ARM) znajduje się na koncie magazynu, możesz ograniczyć dostęp do szablonu, aby uniknąć publicznego ujawnienia go. Uzyskujesz dostęp do zabezpieczonego szablonu, tworząc token sygnatury dostępu współdzielonego (SAS) dla szablonu i podając ten token podczas wdrażania. W tym artykule wyjaśniono, jak używać Azure PowerShell lub interfejsu wiersza polecenia platformy Azure do bezpiecznego wdrażania szablonu usługi ARM przy użyciu tokenu SAS.

Informacje o sposobie ochrony dostępu do prywatnych szablonów usługi ARM i zarządzaniu nimi można znaleźć z instrukcjami dotyczącymi wykonywania następujących czynności:

  • Tworzenie konta magazynu z zabezpieczonym kontenerem
  • Przekazywanie szablonu do konta magazynu
  • Zapewnianie tokenu SYGNATURy dostępu współdzielonego podczas wdrażania

Ważne

Zamiast zabezpieczać szablon prywatny przy użyciu tokenu SAS, rozważ użycie specyfikacji szablonu. Dzięki specyfikacjom szablonu możesz udostępniać szablony innym użytkownikom w organizacji i zarządzać dostępem do szablonów za pośrednictwem kontroli dostępu opartej na rolach platformy Azure.

Tworzenie konta magazynu z zabezpieczonym kontenerem

Poniższy skrypt tworzy konto magazynu i kontener z wyłączonym dostępem publicznym dla zabezpieczeń szablonu.

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

Przekazywanie szablonu prywatnego do konta magazynu

Teraz możesz przekazać szablon do konta magazynu. Podaj ścieżkę do szablonu, którego chcesz użyć.

Set-AzStorageBlobContent `
  -Container templates `
  -File c:\Templates\azuredeploy.json

Zapewnianie tokenu SYGNATURy dostępu współdzielonego podczas wdrażania

Aby wdrożyć szablon prywatny na koncie magazynu, wygeneruj token sygnatury dostępu współdzielonego i dołącz go do identyfikatora URI szablonu. Ustaw czas wygaśnięcia, aby umożliwić wystarczającą ilość czasu na ukończenie wdrożenia.

Ważne

Obiekt blob zawierający szablon prywatny jest dostępny tylko dla właściciela konta. Jednak podczas tworzenia tokenu SAS dla obiektu blob obiekt blob jest dostępny dla każdego, kto ma ten identyfikator URI. Jeśli inny użytkownik przechwytuje identyfikator URI, ten użytkownik może uzyskać dostęp do szablonu. Token SAS jest dobrym sposobem ograniczania dostępu do szablonów, ale nie należy uwzględniać poufnych danych, takich jak hasła bezpośrednio w szablonie.

# 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

Przykład użycia tokenu SAS z połączonymi szablonami można znaleźć w temacie Using linked templates with Azure Resource Manager (Używanie połączonych szablonów z usługą Azure Resource Manager).

Następne kroki