チュートリアル: Azure Resource Manager テンプレートのデプロイ時に成果物をセキュリティで保護するTutorial: Secure artifacts in Azure Resource Manager template deployments

Azure Resource Manager テンプレート内で使用される成果物を Azure Storage アカウントの Shared Access Signature (SAS) を使用してセキュリティで保護する方法について説明します。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. たとえば「チュートリアル: Azure Resource Manager テンプレートを使用して SQL BACPAC ファイルをインポートする」では、Azure SQL Database がメイン テンプレートによって作成されます。テーブルを作成してデータを挿入するために 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 を使用して、ご自分の Azure Storage アカウント内の BACPAC ファイルへの制限付きアクセスを許可します。In this tutorial, you use SAS to grant limited access to the BACPAC file in your own Azure Storage account. SAS の詳細については、「Shared Access Signatures (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 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。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

このセクションでは、Resource Manager テンプレートをデプロイするときに、セキュリティで保護された方法で BACPAC ファイルにアクセスできるようにそのファイルを準備します。In this section, you prepare the BACPAC file so the file is accessible securely when you deploy the Resource Manager template. このセクションには、5 つの手順があります。There are five procedures in this section:

  • BACPAC ファイルをダウンロードします。Download the BACPAC file.
  • Azure ストレージ アカウントを作成します。Create an Azure Storage account.
  • ストレージ アカウントに BLOB コンテナーを作成します。Create a Storage account Blob container.
  • BACPAC ファイルをコンテナーにアップロードします。Upload the BACPAC file to the container.
  • BACPAC ファイルの SAS トークンを取得します。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. 次の画像を選択して、Azure portal で Resource Manager テンプレートを開きます。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. このチュートリアルでは、ストレージ アカウントと Azure SQL Database で同じリソース グループを使用できます。In this tutorial, you can use the same resource group for the storage account and the Azure SQL Database. このリソース グループ名を書き留めておいてください。このチュートリアルの中で、後で Azure SQL Database を作成するときに必要です。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: (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.

BLOB コンテナーを作成するCreate a Blob container

ファイルをアップロードする前に、BLOB コンテナーが必要です。A Blob container is needed before you can upload any files.

  1. ストレージ アカウントを選択して開きます。Select the storage account to open it. リソース グループにストレージ アカウントが 1 つだけ表示されていることを確認できます。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. [BLOB] タイルを選択します。Select the Blobs tile.

    Resource Manager チュートリアルの BLOB

  3. 上部の [+ コンテナー] を選択して、新しいコンテナーを作成します。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. [OK] を選択します。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.

SAS トークンを生成するGenerate 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 トークンは 8 時間使用できます。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. [BLOB SAS トークンおよび URL を生成] を選択します。Select Generate blob SAS token and URL.

  4. BLOB SAS URL のコピーを作成します。Make a copy of Blob SAS URL. このURL の中央に、ファイル名 SQLDatabaseExtension.bacpac があります。In the middle of the URL is the file name SQLDatabaseExtension.bacpac. URL は、このファイル名によって 3 つの部分に分割されます。The file name divides the URL into three parts:

既存のテンプレートを開くOpen an existing template

このセッションでは、「チュートリアル: Azure Resource Manager テンプレートを使用して SQL BACPAC ファイルをインポートする」で作成したテンプレートを変更し、SAS トークンを使用して BACPAC ファイルを呼び出します。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.

    テンプレート内に定義されているリソースは 5 つあります。There are five resources defined in the template:

  4. [ファイル] > [Save As](名前を付けて保存) を選択し、このファイルのコピーを 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 チュートリアルの成果物をセキュリティで保護するためのパラメーター

次の 2 つの要素の値を更新します。Update the value of the following two elements:

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

テンプレートのデプロイDeploy the template

注意

この記事は、新しい 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.

デプロイ手順については、「テンプレートのデプロイ」セクションを参照してください。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. データベースにインポートされた 2 つのテーブルが表示されます。You shall see two tables imported into the database:

Azure Resource Manager による SQL 拡張機能 BACPAC のデプロイ

リソースのクリーンアップ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 portal で、左側のメニューから [リソース グループ] を選択します。From the Azure portal, select Resource group from the left menu.
  2. [名前でフィルター] フィールドに、リソース グループ名を入力します。Enter the resource group name in the Filter by name field.
  3. リソース グループ名を選択します。Select the resource group name. リソース グループ内の合計 6 つのリソースが表示されます。You shall see a total of six resources in the resource group.
  4. トップ メニューから [リソース グループの削除] を選択します。Select Delete resource group from the top menu.

次の手順Next steps

このチュートリアルでは、SQL サーバーと SQL データベースをデプロイし、SAS トークンを使用して BACPAC ファイルをインポートしました。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