チュートリアル:Azure Blueprints のリソース ロックを使用して新しいリソースを保護する

重要

2026 年 7 月 11 日に、Blueprints (プレビュー) は非推奨になります。 既存のブループリントの定義と割り当てを Template Specsデプロイ スタックに移行します。 ブループリント アーティファクトは、デプロイ スタックの定義に使用される ARM JSON テンプレートまたは Bicep ファイルに変換されます。 アーティファクトを ARM リソースとして作成する方法については、次を参照してください。

Azure Blueprints のリソース ロックを使用すると、新しくデプロイされたリソースが改ざんされること (それが "所有者" ロールのアカウントによるものであっても) から保護することができます。 この保護は、Azure Resource Manager テンプレート (ARM テンプレート) 成果物によって作成されたリソースのブループリント定義に追加することができます。 ブループリント リソース ロックは、ブループリントの割り当て中に設定されます。

このチュートリアルでは、以下の手順を完了します。

  • ブループリント定義を作成する
  • ブループリント定義を発行済みとしてマークする
  • ブループリント定義を既存のサブスクリプションに割り当てる (リソース ロックを設定する)
  • 新しいリソース グループを調べる
  • ブループリントの割り当てを解除してロックを削除する

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

ブループリント定義を作成する

最初に、ブループリント定義を作成します。

  1. 左側のウィンドウにある [すべてのサービス] を選択します。 [ブループリント] を探して選択します。

  2. 左側の [はじめに] ページで、 [ブループリントの作成] の下にある [作成] を選択します。

  3. ページの上部にある [空白のブループリント] ブループリント サンプルを見つけます。 [空白のブループリントで始める] を選択します。

  4. [基本] タブに次の情報を入力します。

    • [ブループリントの名前] : ブループリント サンプルのコピーの名前を指定します。 このチュートリアルでは、locked-storageaccount という名前を使用します。
    • [ブループリントの説明] : ブルー プリント定義の説明を追加します。 「デプロイされたリソースでのブループリント リソース ロックのテスト用」を使用します。
    • [定義の場所] :省略記号ボタン (...) を選択し、次にブループリント定義を保存する管理グループまたはサブスクリプションを選択します。
  5. ページの上部にある [成果物] タブを選択するか、ページの下部にある [次へ: アーティファクト] を選択します。

  6. サブスクリプション レベルでリソース グループを追加します。

    1. [サブスクリプション] の下で [成果物の追加] 行を選択します。
    2. [成果物の種類] の下で [リソース グループ] を選択します。
    3. [成果物の表示名]RGtoLock に設定します。
    4. [リソース グループ名][場所] のボックスは空白のままにしておきますが、各プロパティのチェックボックスは選択されているようにして、それらを動的パラメーターにします。
    5. [追加] を選択して、成果物をブループリントに追加します。
  7. リソース グループにテンプレートを追加します。

    1. [RGtoLock] エントリの下で [成果物の追加] 行を選択します。

    2. [成果物の種類] の下で [Azure Resource Manager テンプレート] を選択し、 [成果物の表示名]StorageAccount に設定し、 [説明] は空白のままにします。

    3. [テンプレート] タブで、次の ARM テンプレートをエディター ボックスに貼り付けます。 テンプレートを貼り付けた後、 [追加] を選択してこの成果物をブループリントに追加します。

      Note

      この手順では、デプロイされ、ブループリント リソース ロックによってロックされるリソースを定義します。これには、ブループリント リソース ロックは含まれません。 ブループリント リソース ロックは、ブループリント割り当てのパラメーターとして設定します。

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "storageAccountType": {
                "type": "string",
                "defaultValue": "Standard_LRS",
                "allowedValues": [
                    "Standard_LRS",
                    "Standard_GRS",
                    "Standard_ZRS",
                    "Premium_LRS"
                ],
                "metadata": {
                    "description": "Storage Account type"
                }
            }
        },
        "variables": {
            "storageAccountName": "[concat('store', uniquestring(resourceGroup().id))]"
        },
        "resources": [{
            "type": "Microsoft.Storage/storageAccounts",
            "name": "[variables('storageAccountName')]",
            "location": "[resourceGroup().location]",
            "apiVersion": "2018-07-01",
            "sku": {
                "name": "[parameters('storageAccountType')]"
            },
            "kind": "StorageV2",
            "properties": {}
        }],
        "outputs": {
            "storageAccountName": {
                "type": "string",
                "value": "[variables('storageAccountName')]"
            }
        }
    }
    
  8. ページの下部にある [下書きの保存] を選択します。

この手順では、選択した管理グループまたはサブスクリプションにブループリントの定義を作成します。

"ブループリント定義の保存に成功しました" というポータルの通知が表示されたら、次の手順に進みます。

ブループリントの定義を発行する

環境にブループリントの定義が作成されました。 これは下書きモードで作成されており、割り当ておよびデプロイの前に発行する必要があります。

  1. 左側のウィンドウにある [すべてのサービス] を選択します。 [ブループリント] を探して選択します。

  2. 左側の [ブループリントの定義] ページを選択します。 フィルターを使用してブループリント定義 locked-storageaccount を見つけて、選択します。

  3. ページの上部にある [ブループリントを発行する] を選択します。 右側の新しいウィンドウで、バージョンとして「1.0」を入力します。 このプロパティは、後で変更を加える場合に便利です。 [変更に関するメモ] (例: "ブループリントでデプロイされたリソースをロックするために発行する最初のバージョン") を入力します。 次に、ページの下部にある [発行] を選択します。

この手順では、ブループリントをサブスクリプションに割り当てることができます。 ブループリント定義を発行した後も、変更を行うことができます。 変更を行う場合は、同じブループリント定義のバージョン間の違いを追跡するために、新しいバージョン値で定義を発行する必要があります。

"ブループリント定義が正常に発行されました" というポータルの通知が表示されたら、次の手順に進みます。

ブループリントの定義を割り当てる

ブルー プリント定義が発行された後は、それを保存した管理グループ内のサブスクリプションに割り当てることができます。 この手順では、ブループリント定義の各デプロイを一意にするためにパラメーターを指定します。

  1. 左側のウィンドウにある [すべてのサービス] を選択します。 [ブループリント] を探して選択します。

  2. 左側の [ブループリントの定義] ページを選択します。 フィルターを使用してブループリント定義 locked-storageaccount を見つけて、選択します。

  3. ブループリント定義ページの上部にある [ブループリントの割り当て] を選択します。

  4. ブループリント割り当て用のパラメーター値を指定します。

    • 基本操作

      • サブスクリプション:ブループリント定義を保存した管理グループ内の 1 つ以上のサブスクリプションを選択します。 複数のサブスクリプションを選択すると、入力されたパラメーターを使用してサブスクリプションごとに割り当てが作成されます。
      • 割り当て名:この名前は、ブループリント定義の名前に基づいて事前に入力されています。 この割り当てでは、新しいリソース グループのロックを表したいので、割り当て名を assignment-locked-storageaccount-TestingBPLocks に変更します。
      • [場所] :マネージド ID を作成するリージョンを選択します。 Azure Blueprints では、このマネージド ID を使用して、割り当てられたブループリントにすべての成果物をデプロイします。 詳細については、Azure リソースの管理対象 ID の概要に関するページをご覧ください。 このチュートリアルでは、 [米国東部 2] を選択します。
      • ブループリント定義ラベル:ブループリント定義の発行済みバージョン [1.0] を選択します。
    • ロックの割り当て

      [読み取り専用] のブループリントのロック モードを選択します。 詳細については、ブループリント リソースのロックに関するページを参照してください。

      Note

      この手順では、新しくデプロイされたリソースのブループリント リソース ロックを構成します。

    • Managed Identity

      既定のオプションである [システム割り当て済み] を使用します。 詳細については、マネージド ID に関するページを参照してください。

    • 成果物のパラメーター

      このセクションで定義するパラメーターは、それが定義される成果物に適用されます。 これらのパラメーターはブループリントの割り当て時に定義されるので、動的パラメーターです。 各成果物に対して、パラメーター値を [値] 列に表示されている内容に設定してください。

      アーティファクト名 アーティファクトの種類 パラメーター名 説明
      RGtoLock リソース グループ Resource group 名前 TestingBPLocks ブループリントのロックを適用する新しいリソース グループの名前を定義します。
      RGtoLock リソース グループ Resource group 場所 米国西部 2 ブループリントのロックを適用する新しいリソース グループの場所を定義します。
      StorageAccount Resource Manager テンプレート storageAccountType (StorageAccount) Standard_GRS ストレージの SKU。 既定値は "Standard_LRS" です。
  5. すべてのパラメーターを入力したら、ページの下部にある [割り当て] を選択します。

この手順では、定義されたリソースをデプロイし、選択したロックの割り当てを構成します。 ブループリントのロックの適用には最長 30 分かかる場合があります。

"ブループリント定義の割り当て完了" というポータルの通知が表示されたら、次の手順に進みます。

割り当てによってデプロイされたリソースを調べる

割り当てによって、リソース グループ TestingBPLocks と、ARM テンプレート成果物によってデプロイされるストレージ アカウントが作成されます。 新しいリソース グループと、選択したロックの状態が、割り当ての詳細ページに表示されます。

  1. 左側のウィンドウにある [すべてのサービス] を選択します。 [ブループリント] を探して選択します。

  2. 左側の [割り当てられたブループリント] ページを選択します。 フィルターを使用して、ブループリントの割り当て assignment-locked-storageaccount-TestingBPLocks を見つけて、選択します。

    このページから、割り当てが成功したこと、および新しいブループリント ロック状態でリソースがデプロイされたことがわかります。 割り当てが更新された場合は、各定義のバージョンのデプロイに関する詳細が [割り当ての操作] ドロップダウン リストに表示されます。 プロパティ ページを開くリソース グループを選択することができます。

  3. TestingBPLocks リソース グループを選択します。

  4. 左側の [アクセス制御 (IAM)] ページを選択します。 次に、 [ロールの割り当て] タブを選択します。

    ここでは、assignment-locked-storageaccount-TestingBPLocks ブループリント割り当てが "所有者" ロールを持つことがわかります。 このロールを持つ理由は、リソース グループをデプロイおよびロックするためにこのロールが使用されたためです。

  5. [拒否割り当て] タブを選択します。

    ブループリントの割り当てでは、デプロイされたリソース グループに対して拒否割り当てが作成され、 [読み取り専用] のブループリントのロック モードが適用されました。 拒否割り当てにより、 [ロール割り当て] タブに表示されている適切な権限を持つユーザーが特定のアクションを実行できなくなります。 拒否割り当ては "すべてのプリンシパル" に適用されます。

    プリンシパルを拒否割り当てから除外する方法については、ブループリント リソースのロックに関するページを参照してください。

  6. 拒否割り当てを選択し、次に左側の [拒否されたアクセス許可] ページを選択します。

    拒否割り当てでは、*Action 構成を使用してすべての操作を禁止しますが、NotActions を使用して */read を除外することで読み取りアクセスを許可します。

  7. Azure portal の階層リンクで、 [TestingBPLocks - アクセス制御 (IAM)] を選択します。 次に、左側の [概要] ページを選択し、 [リソース グループの削除] ボタンをクリックします。 「TestingBPLocks」という名前を入力して削除を確定し、次にウィンドウの下部にある [削除] を選択します。

    "リソース グループ TestingBPLocks の削除に失敗しました" というポータルの通知が表示されます。 このエラーは、ご使用のアカウントにはリソース グループを削除するアクセス許可はあるが、ブループリントの割り当てによってアクセスが拒否されていることを示しています。 ブループリントの割り当て時にブループリントのロック モードとして [読み取り専用] を選択したことを思い出してください。 ブループリントのロックにより、アクセス許可を持つアカウントは (所有者 であっても) リソースを削除できなくなります。 詳細については、ブループリント リソースのロックに関するページを参照してください。

これらの手順は、デプロイされたリソースが、望ましくない削除 (リソースを削除するアクセス許可を持つアカウントが行ったものであっても) を禁止するブループリントのロックで保護されるようになったことを示しています。

ブループリントの割り当てを解除する

最後の手順では、ブループリントの定義の割り当てを削除します。 割り当てを削除しても、関連付けられた成果物は削除されません。

  1. 左側のウィンドウにある [すべてのサービス] を選択します。 [ブループリント] を探して選択します。

  2. 左側の [割り当てられたブループリント] ページを選択します。 フィルターを使用して、ブループリントの割り当て assignment-locked-storageaccount-TestingBPLocks を見つけて、選択します。

  3. ページの上部にある [ブループリントの割り当て解除] を選択します。 確認ダイアログ ボックスの警告を読んでから、 [OK] を選択します。

    ブループリントの割り当てを削除すると、ブループリントのロックも削除されます。 リソースは、適切なアクセス許可を持つアカウントによって再度削除できます。

  4. Azure メニューから [リソース グループ] を選択し、次に [TestingBPLocks] を選択します。

  5. 左側の [アクセス制御 (IAM)] ページを選択し、次に [ロール割り当て] タブを選択します。

リソース グループのセキュリティでは、ブループリントの割り当てに "所有者" アクセス権がなくなったことが示されています。

"ブループリント割り当ての削除完了" というポータルの通知が表示されたら、次の手順に進みます。

リソースをクリーンアップする

このチュートリアルを完了したら、次のリソースを削除してください。

  • リソース グループ TestingBPLocks
  • ブループリント定義 locked-storageaccount

次のステップ

このチュートリアルでは、Azure Blueprints を使用して、デプロイされた新しいリソースを保護する方法について学習しました。 Azure Blueprints の詳細については、ブループリントのライフサイクルに関する記事に進んでください。