Руководство. Защита артефактов в развертываниях шаблонов Azure Resource ManagerTutorial: Secure artifacts in Azure Resource Manager template deployments

Узнайте, как защитить артефакты, которые используются в шаблонах Azure Resource Manager, с помощью подписанных URL-адресов (SAS) учетной записи хранения Azure.Learn how to secure the artifacts used in your Azure Resource Manager templates using Azure Storage account with shared access signatures (SAS). Артефакты развертывания — это все файлы, помимо файла основного шаблона, которые необходимы для выполнения развертывания.Deployment artifacts are any files, in addition to the main template file, that are needed to complete a deployment. Например, в руководстве по импорту BACPAC-файлов SQL с помощью шаблонов Azure Resource Manager основной шаблон создает базу данных SQL Azure, а также вызывает BACPAC-файл для создания таблиц и добавления данных.For example, in Tutorial: Import SQL BACPAC files with Azure Resource Manager templates, the main template creates an Azure SQL Database; it also calls a BACPAC file to create tables and insert data. BACPAC-файл является артефактом.The BACPAC file is an artifact. Артефакт хранится в учетной записи хранения Azure с публичным доступом.The artifact is stored in an Azure storage account with public access. В этом руководстве используется SAS для предоставления ограниченного доступа к BACPAC-файлу в учетной записи хранения Azure.In this tutorial, you use SAS to grant limited access to the BACPAC file in your own Azure Storage account. Дополнительные сведения о подписанных URL-адресах см. в статье Использование подписанных URL-адресов (SAS).For more information about SAS, see Using shared access signatures (SAS).

Чтобы узнать, как защитить связанные шаблоны, ознакомьтесь со статьей Руководство. Создание связанных шаблонов Azure Resource Manager.To learn how to secure linked template, see Tutorial: Create linked Azure Resource Manager templates.

В рамках этого руководства рассматриваются следующие задачи:This tutorial covers the following tasks:

  • Подготовка BACPAC-файлаPrepare a BACPAC file
  • Открытие имеющегося шаблонаOpen an existing template
  • Изменение шаблонаEdit the template
  • Развертывание шаблонаDeploy the template
  • Проверка развертыванияVerify the deployment

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don't have an Azure subscription, create a free account before you begin.

Предварительные требованияPrerequisites

Для работы с этой статьей необходимо иметь следующее.To complete this article, you need:

Подготовка BACPAC-файлаPrepare a BACPAC file

В этом разделе описано, как подготовить BACPAC-файл, чтобы он стал безопасным и доступным при развертывании шаблона Resource Manager.In this section, you prepare the BACPAC file so the file is accessible securely when you deploy the Resource Manager template. В этом разделе описаны пять процедур.There are five procedures in this section:

  • Скачивание BACPAC-файла.Download the BACPAC file.
  • Создание учетной записи хранения Azure.Create an Azure Storage account.
  • Создание контейнера больших двоичных объектов в учетной записи хранения.Create a Storage account Blob container.
  • Передача BACPAC-файла в этот контейнер.Upload the BACPAC file to the container.
  • Получение маркера SAS из BACPAC-файла.Retrieve the SAS token of the BACPAC file.

Чтобы автоматизировать эти шаги с помощью скрипта PowerShell, ознакомьтесь со скриптом из раздела Передача связанного шаблона.To automate these steps using a PowerShell script, see the script from Upload the linked template.

Скачивание BACPAC-файлаDownload the BACPAC file

Скачайте BACPAC-файл и сохраните его на локальный компьютер с таким именем — SQLDatabaseExtension.bacpac.Download the BACPAC file, and save the file to your local computer with the same name, SQLDatabaseExtension.bacpac.

Создание учетной записи храненияCreate a storage account

  1. Выберите следующее изображение, чтобы открыть шаблон Resource Manager на портале Azure.Select the following image to open a Resource Manager template in the Azure portal.

    Deploy to Azure

  2. Введите следующие свойства.Enter the following properties:

    • Подписка: Выберите подписку Azure.Subscription: Select your Azure subscription.
    • Группа ресурсов. Выберите Создать и назначьте ей имя.Resource Group: Select Create new and give it a name. Группа ресурсов служит контейнером для ресурсов Azure для управления.A resource group is a container for Azure resources for the management purpose. В этом руководстве можно использовать ту же группу ресурсов для учетной записи хранения и базы данных SQL Azure.In this tutorial, you can use the same resource group for the storage account and the Azure SQL Database. Запишите имя этой группы ресурсов. Оно понадобится при создании базы данных SQL Azure далее в руководстве.Make a note of this resource group name, you need it when you create the Azure SQL Database later in the tutorials.
    • Расположение. Выберите регион.Location: Select a region. Например, центральная часть США.For example, Central US.
    • Тип учетной записи хранения. Используйте значение по умолчанию Standard_LRS.Storage Account Type: use the default value, which is Standard_LRS.
    • Расположение. Используйте значение по умолчанию [resourceGroup().location] .Location: Use the default value, which is [resourceGroup().location]. Это означает, что для учетной записи хранения используется расположение группы ресурсов.That means you use the resource group location for the storage account.
    • Выберите I agree to the terms and conditions started above (Я принимаю указанные выше условия).I agree to the terms and conditions started above: (selected)
  3. Щелкните Приобрести.Select Purchase.

  4. Выберите значок уведомления (колокольчик) в правом верхнем углу портала, чтобы узнать состояние развертывания.Select the notification icon (the bell icon) on the upper right corner of the portal to see the deployment status.

    Руководство: панель уведомлений Resource Manager на портале

  5. После успешного развертывания учетной записи хранения выберите Перейти к группе ресурсов в области уведомлений, чтобы открыть группу ресурсов.After the storage account is deployed successfully, select Go to resource group from the notification pane to open the resource group.

Создание контейнера больших двоичных объектовCreate a Blob container

Чтобы файлы можно было передать, необходим контейнер больших двоичных объектов.A Blob container is needed before you can upload any files.

  1. Выберите учетную запись хранения, чтобы открыть ее.Select the storage account to open it. В группе ресурсов должна быть только одна учетная запись хранения.You shall see only one storage account listed in the resource group. Имя учетной записи хранения отличается от того, которое отображено на следующем снимке экрана.Your storage account name is different from the one shown in the following screenshot.

    Учетная запись хранения учебника Resource Manager

  2. Выберите элемент Большие двоичные объекты.Select the Blobs tile.

    Большие двоичные объекты учебника Resource Manager

  3. Выберите + Container (+ Контейнер) в верхней части экрана, чтобы создать контейнер.Select + Container from the top to create a new container.

  4. Введите следующие значения.Enter the following values:

    • Имя. Введите sqlbacpac.Name: enter sqlbacpac.
    • Уровень общего доступа. Используйте значение по умолчанию Закрытый (отсутствие анонимного доступа) .Public access level: use the default value, Private (no anonymous access).
  5. Нажмите кнопку ОК.Select OK.

  6. Выберите sqlbacpac, чтобы открыть созданный контейнер.Select sqlbacpac to open the newly created container.

Передача BACPAC-файла в контейнерUpload the BACPAC file to the container

  1. Щелкните Отправить.Select Upload.

  2. Введите следующие значения.Enter the following values:

    • Файлы. Следуйте инструкциям для выбора скачанного ранее BACPAC-файла.Files: Following the instructions to select the BACPAC file you downloaded earlier. Имя по умолчанию — SQLDatabaseExtension.bacpac.The default name is SQLDatabaseExtension.bacpac.
    • Тип проверки подлинности. Выберите SAS.Authentication type: Select SAS. SAS — это значение по умолчанию.SAS is the default value.
  3. Щелкните Отправить.Select Upload. После успешной отправки файла его имя должно быть указано в контейнере.Once the file is uploaded successfully, the file name shall be listed in the container.

Создание маркера SASGenerate a SAS token

  1. Щелкните правой кнопкой мыши SQLDatabaseExtension.bacpac в контейнере, а затем выберите Создать SAS.Right-click SQLDatabaseExtension.bacpac from the container, and then select Generate SAS.

  2. Введите следующие значения.Enter the following values:

    • Разрешение. Конфигурация по умолчанию — Чтение.Permission: Use the default, Read.
    • Дата и время начала и завершения. Значение по умолчанию позволяет использовать маркер SAS в течение восьми часов.Start and expiry date/time: The default value gives you eight hours to use the SAS token. Если для работы с этим руководством необходимо больше времени, обновите срок действия.If you need more time to complete this tutorial, update Expiry.
    • Разрешенные IP-адреса. Оставьте это поле пустым.Allowed IP addresses: Leave this field blank.
    • Разрешенные протоколы. Используйте значение по умолчанию — HTTPS.Allowed protocols: use the default value: HTTPS.
    • Ключ подписывания. Используйте значение по умолчанию — Ключ 1.Signing key: use the default value: Key 1.
  3. Щелкните Создать токен SAS BLOB-объекта и URL-адрес.Select Generate blob SAS token and URL.

  4. Скопируйте URL-адрес SAS BLOB-объекта.Make a copy of Blob SAS URL. Имя файла SQLDatabaseExtension.bacpac находится в середине URL-адреса.In the middle of the URL is the file name SQLDatabaseExtension.bacpac. Имя файла разделяет URL-адрес на три части:The file name divides the URL into three parts:

Открытие имеющегося шаблонаOpen an existing template

В этом сеансе будет изменен шаблон, созданный в руководстве по импорту BACPAC-файлов SQL с помощью шаблонов Azure Resource Manager, чтобы вызвать BACPAC-файл с помощью маркера SAS.In this session, you modify the template you created in Tutorial: Import SQL BACPAC files with Azure Resource Manager templates to call the BACPAC file with a SAS token. Шаблон, разработанный в руководстве по расширению SQL, опубликован по адресу https://armtutorials.blob.core.windows.net/sqlextensionbacpac/azuredeploy.json.The template developed in the SQL extension tutorial is shared at https://armtutorials.blob.core.windows.net/sqlextensionbacpac/azuredeploy.json.

  1. В Visual Studio Code выберите Файл>Открыть файл.From Visual Studio Code, select File>Open File.

  2. Скопируйте приведенный ниже URL-адрес и вставьте его в поле Имя файла.In File name, paste the following URL:

    https://armtutorials.blob.core.windows.net/sqlextensionbacpac/azuredeploy.json
    
  3. Чтобы открыть файл, выберите Открыть.Select Open to open the file.

    В шаблоне определено пять ресурсов:There are five resources defined in the template:

  4. Выберите Файл>Сохранить как, чтобы сохранить файл на локальный компьютер с именем azuredeploy.json.Select File>Save As to save a copy of the file to your local computer with the name azuredeploy.json.

Изменение шаблонаEdit the template

Добавьте следующие дополнительные параметры:Add the following additional parameters:

"_artifactsLocation": {
    "type": "string",
    "metadata": {
        "description": "The base URI where artifacts required by this template are located."
    }
},
"_artifactsLocationSasToken": {
    "type": "securestring",
    "metadata": {
        "description": "The sasToken required to access _artifactsLocation."
    },
    "defaultValue": ""
},
"bacpacFileName": {
    "type": "string",
    "defaultValue": "SQLDatabaseExtension.bacpac",
    "metadata": {
        "description": "The bacpac for configure the database and tables."
    }
}

Руководство: параметры защиты артефактов Resource Manager

Обновите значение двух следующих элементов:Update the value of the following two elements:

"storageKey": "[parameters('_artifactsLocationSasToken')]",
"storageUri": "[uri(parameters('_artifactsLocation'), parameters('bacpacFileName'))]",

Развертывание шаблонаDeploy the template

Примечание

Эта статья была изменена и теперь содержит сведения о новом модуле Az для Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Вы по-прежнему можете использовать модуль AzureRM, исправления ошибок для которого будут продолжать выпускаться как минимум до декабря 2020 г.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 (Знакомство с новым модулем Az для Azure PowerShell).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.

Дополнительные сведения о процедуре развертывания шаблона см. в этом разделе.Refer to the Deploy the template section for the deployment procedure. Вместо этого используйте следующий сценарий развертывания PowerShell:Use the following PowerShell deployment script instead:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"
$adminUsername = Read-Host -Prompt "Enter the virtual machine admin username"
$adminPassword = Read-Host -Prompt "Enter the admin password" -AsSecureString
$artifactsLocation = Read-Host -Prompt "Enter the artifacts location"
$artifactsLocationSasToken = Read-Host -Prompt "Enter the artifacts location SAS token" -AsSecureString
$bacpacFileName = Read-Host -Prompt "Enter the BACPAC file name"

New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment `
    -ResourceGroupName $resourceGroupName `
    -adminUser $adminUsername `
    -adminPassword $adminPassword `
    -_artifactsLocation $artifactsLocation `
    -_artifactsLocationSasToken $artifactsLocationSasToken `
    -bacpacFileName $bacpacFileName `
    -TemplateFile "$HOME/azuredeploy.json"

Используйте сгенерированный пароль.Use a generated password. См. раздел Предварительные требования.See Prerequisites. Значения _artifactsLocation, _artifactsLocationSasToken и bacpacFileName см. в разделе Generate a SAS token (Создание маркера SAS).For the values of _artifactsLocation, _artifactsLocationSasToken and bacpacFileName, see Generate a SAS token.

Проверка развертыванияVerify the deployment

На портале выберите Базу данных SQL из только что развернутой группы ресурсов.In the portal, select the SQL database from the newly deployed resource group. Выберите Редактор запросов (предварительная версия) , а затем введите учетные данные администратора.Select Query editor (preview), and then enter the administrator credentials. Должны отобразиться две таблицы, импортированные в базу данных:You shall see two tables imported into the database:

Развертывание BACPAC-файла в расширении SQL с помощью Azure Resource Manager

Очистка ресурсовClean up resources

Если ресурсы Azure больше не нужны, их можно удалить. Для этого необходимо удалить группу ресурсов.When the Azure resources are no longer needed, clean up the resources you deployed by deleting the resource group.

  1. На портале Azure в меню слева выберите Группа ресурсов.From the Azure portal, select Resource group from the left menu.
  2. В поле Filter by name (Фильтровать по имени) введите имя группы ресурсов.Enter the resource group name in the Filter by name field.
  3. Выберите имя группы ресурсов.Select the resource group name. В группе ресурсов должно появится шесть ресурсов.You shall see a total of six resources in the resource group.
  4. В главном меню выберите Удалить группу ресурсов.Select Delete resource group from the top menu.

Дополнительная информацияNext steps

В этом руководстве вы развернули SQL Server, Базу данных SQL и импортированный BACPAC-файл с помощью маркера SAS.In this tutorial, you deployed a SQL Server, a SQL Database, and imported a BACPAC file using SAS token. Чтобы узнать, как создать конвейер Azure для непрерывной разработки и развертывания шаблонов Resource Manager, см. следующую статью.To learn how to create an Azure Pipeline to continuously develop and deploy Resource Manager templates, see

Tutorial: Continuous integration of Azure Resource Manager templates with Azure Pipelines (Учебник: непрерывная интеграция шаблонов Azure Resource Manager с Azure Pipelines)Continuous integration with Azure Pipeline