チュートリアル:Azure Blueprints のリソース ロックを使用して新しいリソースを保護するTutorial: Protect new resources with Azure Blueprints resource locks

Azure Blueprints の リソース ロックを使用すると、新しくデプロイされたリソースが改ざんされること (それが "所有者" ロールのアカウントによるものであっても) から保護することができます。With Azure Blueprints resource locks, you can protect newly deployed resources from being tampered with, even by an account with the Owner role. この保護は、Azure Resource Manager テンプレート (ARM テンプレート) 成果物によって作成されたリソースのブループリント定義に追加することができます。You can add this protection in the blueprint definitions of resources created by an Azure Resource Manager template (ARM template) artifact. ブループリント リソース ロックは、ブループリントの割り当て中に設定されます。The Blueprint resource lock is set during blueprint assignment.

このチュートリアルでは、以下の手順を完了します。In this tutorial, you'll complete these steps:

  • ブループリント定義を作成するCreate a blueprint definition
  • ブループリント定義を 発行済み としてマークするMark your blueprint definition as Published
  • ブループリント定義を既存のサブスクリプションに割り当てる (リソース ロックを設定する)Assign your blueprint definition to an existing subscription (set resource locks)
  • 新しいリソース グループを調べるInspect the new resource group
  • ブループリントの割り当てを解除してロックを削除するUnassign the blueprint to remove the locks

前提条件Prerequisites

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

ブループリント定義を作成するCreate a blueprint definition

最初に、ブループリント定義を作成します。First, create the blueprint definition.

  1. 左側のウィンドウにある [すべてのサービス] を選択します。Select All services in the left pane. [ブループリント] を探して選択します。Search for and select Blueprints.

  2. 左側の [はじめに] ページで、 [ブループリントの作成] の下にある [作成] を選択します。On the Getting started page on the left, select Create under Create a blueprint.

  3. ページの上部にある [空白のブループリント] ブループリント サンプルを見つけます。Find the Blank Blueprint blueprint sample at the top of the page. [空白のブループリントで始める] を選択します。Select Start with blank blueprint.

  4. [基本] タブに次の情報を入力します。Enter this information on the Basics tab:

    • [ブループリントの名前] : ブループリント サンプルのコピーの名前を指定します。Blueprint name: Provide a name for your copy of the blueprint sample. このチュートリアルでは、locked-storageaccount という名前を使用します。For this tutorial, we'll use the name locked-storageaccount.
    • [ブループリントの説明] : ブルー プリント定義の説明を追加します。Blueprint description: Add a description for the blueprint definition. デプロイされたリソースでのブループリント リソース ロックのテスト用」を使用します。Use For testing blueprint resource locking on deployed resources.
    • [定義の場所] :省略記号ボタン (...) を選択し、次にブループリント定義を保存する管理グループまたはサブスクリプションを選択します。Definition location: Select the ellipsis button (...) and then select the management group or subscription to save your blueprint definition to.
  5. ページの上部にある [成果物] タブを選択するか、ページの下部にある [次へ: アーティファクト] を選択します。Select the Artifacts tab at the top of the page, or select Next: Artifacts at the bottom of the page.

  6. サブスクリプション レベルでリソース グループを追加します。Add a resource group at the subscription level:

    1. [サブスクリプション] の下で [成果物の追加] 行を選択します。Select the Add artifact row under Subscription.
    2. [成果物の種類] の下で [リソース グループ] を選択します。Select Resource Group under Artifact type.
    3. [成果物の表示名]RGtoLock に設定します。Set the Artifact display name to RGtoLock.
    4. [リソース グループ名][場所] のボックスは空白のままにしておきますが、各プロパティのチェックボックスは選択されているようにして、それらを 動的パラメーター にします。Leave the Resource Group Name and Location boxes blank, but make sure the check box is selected on each property to make them dynamic parameters.
    5. [追加] を選択して、成果物をブループリントに追加します。Select Add to add the artifact to the blueprint.
  7. リソース グループにテンプレートを追加します。Add a template under the resource group:

    1. [RGtoLock] エントリの下で [成果物の追加] 行を選択します。Select the Add artifact row under the RGtoLock entry.

    2. [成果物の種類] の下で [Azure Resource Manager テンプレート] を選択し、 [成果物の表示名]StorageAccount に設定し、 [説明] は空白のままにします。Select Azure Resource Manager template under Artifact type, set Artifact display name to StorageAccount, and leave Description blank.

    3. [テンプレート] タブで、次の ARM テンプレートをエディター ボックスに貼り付けます。On the Template tab, paste the following ARM template into the editor box. テンプレートを貼り付けた後、 [追加] を選択してこの成果物をブループリントに追加します。After you paste in the template, select Add to add the artifact to the blueprint.

      注意

      この手順では、デプロイされ、ブループリント リソース ロックによってロックされるリソースを定義します。これには、ブループリント リソース ロックは含まれません。This step defines the resources to be deployed that get locked by the Blueprint resource lock, but doesn't include the Blueprint resource locks. ブループリント リソース ロックは、ブループリント割り当てのパラメーターとして設定します。Blueprint resource locks are set as a parameter of the blueprint assignment.

    {
        "$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. ページの下部にある [下書きの保存] を選択します。Select Save Draft at the bottom of the page.

この手順では、選択した管理グループまたはサブスクリプションにブループリントの定義を作成します。This step creates the blueprint definition in the selected management group or subscription.

"ブループリント定義の保存に成功しました" というポータルの通知が表示されたら、次の手順に進みます。After the Saving blueprint definition succeeded portal notification appears, go to the next step.

ブループリントの定義を発行するPublish the blueprint definition

環境にブループリントの定義が作成されました。Your blueprint definition has now been created in your environment. これは 下書き モードで作成されており、割り当ておよびデプロイの前に発行する必要があります。It's created in Draft mode and must be published before it can be assigned and deployed.

  1. 左側のウィンドウにある [すべてのサービス] を選択します。Select All services in the left pane. [ブループリント] を探して選択します。Search for and select Blueprints.

  2. 左側の [ブループリントの定義] ページを選択します。Select the Blueprint definitions page on the left. フィルターを使用してブループリント定義 locked-storageaccount を見つけて、選択します。Use the filters to find the locked-storageaccount blueprint definition, and then select it.

  3. ページの上部にある [ブループリントを発行する] を選択します。Select Publish blueprint at the top of the page. 右側の新しいウィンドウで、バージョン として「1.0」を入力します。In the new pane on the right, enter 1.0 as the Version. このプロパティは、後で変更を加える場合に便利です。This property is useful if you make a change later. [変更に関するメモ] (例: "ブループリントでデプロイされたリソースをロックするために発行する最初のバージョン") を入力します。Enter Change notes, such as First version published for locking blueprint deployed resources. 次に、ページの下部にある [発行] を選択します。Then select Publish at the bottom of the page.

この手順では、ブループリントをサブスクリプションに割り当てることができます。This step makes it possible to assign the blueprint to a subscription. ブループリント定義を発行した後も、変更を行うことができます。After the blueprint definition is published, you can still make changes. 変更を行う場合は、同じブループリント定義のバージョン間の違いを追跡するために、新しいバージョン値で定義を発行する必要があります。If you make changes, you need to publish the definition with a new version value to track differences between versions of the same blueprint definition.

"ブループリント定義が正常に発行されました" というポータルの通知が表示されたら、次の手順に進みます。After the Publishing blueprint definition succeeded portal notification appears, go to the next step.

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

ブルー プリント定義が発行された後は、それを保存した管理グループ内のサブスクリプションに割り当てることができます。After the blueprint definition is published, you can assign it to a subscription within the management group where you saved it. この手順では、ブループリント定義の各デプロイを一意にするためにパラメーターを指定します。In this step, you provide parameters to make each deployment of the blueprint definition unique.

  1. 左側のウィンドウにある [すべてのサービス] を選択します。Select All services in the left pane. [ブループリント] を探して選択します。Search for and select Blueprints.

  2. 左側の [ブループリントの定義] ページを選択します。Select the Blueprint definitions page on the left. フィルターを使用してブループリント定義 locked-storageaccount を見つけて、選択します。Use the filters to find the locked-storageaccount blueprint definition, and then select it.

  3. ブループリント定義ページの上部にある [ブループリントの割り当て] を選択します。Select Assign blueprint at the top of the blueprint definition page.

  4. ブループリント割り当て用のパラメーター値を指定します。Provide the parameter values for the blueprint assignment:

    • 基本操作Basics

      • サブスクリプション:ブループリント定義を保存した管理グループ内の 1 つ以上のサブスクリプションを選択します。Subscriptions: Select one or more of the subscriptions that are in the management group where you saved your blueprint definition. 複数のサブスクリプションを選択すると、入力されたパラメーターを使用してサブスクリプションごとに割り当てが作成されます。If you select more than one subscription, an assignment will be created for each subscription, using the parameters you enter.
      • 割り当て名:この名前は、ブループリント定義の名前に基づいて事前に入力されています。Assignment name: The name is pre-populated based on the name of the blueprint definition. この割り当てでは、新しいリソース グループのロックを表したいので、割り当て名を assignment-locked-storageaccount-TestingBPLocks に変更します。We want this assignment to represent locking the new resource group, so change the assignment name to assignment-locked-storageaccount-TestingBPLocks.
      • [場所] :マネージド ID を作成するリージョンを選択します。Location: Select a region in which to create the managed identity. Azure Blueprint は、この管理対象 ID を使用して、割り当てられたブループリント内にすべての成果物をデプロイします。Azure Blueprint uses this managed identity to deploy all artifacts in the assigned blueprint. 詳細については、Azure リソースの管理対象 ID の概要に関するページをご覧ください。To learn more, see managed identities for Azure resources. このチュートリアルでは、 [米国東部 2] を選択します。For this tutorial, select East US 2.
      • ブループリント定義ラベル:ブループリント定義の発行済みバージョン [1.0] を選択します。Blueprint definition version: Select the published version 1.0 of the blueprint definition.
    • ロックの割り当てLock Assignment

      [読み取り専用] のブループリントのロック モードを選択します。Select the Read Only blueprint lock mode. 詳細については、ブループリント リソースのロックに関するページを参照してください。For more information, see blueprints resource locking.

      注意

      この手順では、新しくデプロイされたリソースのブループリント リソース ロックを構成します。This step configures the Blueprint resource lock on the newly deployed resources.

    • Managed IdentityManaged Identity

      既定のオプションである [システム割り当て済み] を使用します。Use the default option: System assigned. 詳細については、マネージド ID に関するページを参照してください。For more information, see managed identities.

    • 成果物のパラメーターArtifact parameters

      このセクションで定義するパラメーターは、それが定義される成果物に適用されます。The parameters defined in this section apply to the artifact under which they're defined. これらのパラメーターはブループリントの割り当て時に定義されるので、動的パラメーターです。These parameters are dynamic parameters because they're defined during the assignment of the blueprint. 各成果物に対して、パラメーター値を [値] 列に表示されている内容に設定してください。For each artifact, set the parameter value to what you see in the Value column.

      アーティファクト名Artifact name アーティファクトの種類Artifact type パラメーター名Parameter name Value 説明Description
      RGtoLock リソース グループRGtoLock resource group Resource groupResource group 名前Name TestingBPLocksTestingBPLocks ブループリントのロックを適用する新しいリソース グループの名前を定義します。Defines the name of the new resource group to apply blueprint locks to.
      RGtoLock リソース グループRGtoLock resource group Resource groupResource group 場所Location 米国西部 2West US 2 ブループリントのロックを適用する新しいリソース グループの場所を定義します。Defines the location of the new resource group to apply blueprint locks to.
      StorageAccountStorageAccount Resource Manager テンプレートResource Manager template storageAccountType (StorageAccount)storageAccountType (StorageAccount) Standard_GRSStandard_GRS ストレージの SKU。The storage SKU. 既定値は "Standard_LRS" です。The default value is Standard_LRS.
  5. すべてのパラメーターを入力したら、ページの下部にある [割り当て] を選択します。After you've entered all parameters, select Assign at the bottom of the page.

この手順では、定義されたリソースをデプロイし、選択した ロックの割り当て を構成します。This step deploys the defined resources and configures the selected Lock Assignment. ブループリントのロックの適用には最長 30 分かかる場合があります。It can take up to 30 minutes to apply blueprint locks.

"ブループリント定義の割り当て完了" というポータルの通知が表示されたら、次の手順に進みます。After the Assigning blueprint definition succeeded portal notification appears, go to the next step.

割り当てによってデプロイされたリソースを調べるInspect resources deployed by the assignment

割り当てによって、リソース グループ TestingBPLocks と、ARM テンプレート成果物によってデプロイされるストレージ アカウントが作成されます。The assignment creates the resource group TestingBPLocks and the storage account deployed by the ARM template artifact. 新しいリソース グループと、選択したロックの状態が、割り当ての詳細ページに表示されます。The new resource group and the selected lock state are shown on the assignment details page.

  1. 左側のウィンドウにある [すべてのサービス] を選択します。Select All services in the left pane. [ブループリント] を探して選択します。Search for and select Blueprints.

  2. 左側の [割り当てられたブループリント] ページを選択します。Select the Assigned blueprints page on the left. フィルターを使用して、ブループリントの割り当て assignment-locked-storageaccount-TestingBPLocks を見つけて、選択します。Use the filters to find the assignment-locked-storageaccount-TestingBPLocks blueprint assignment, and then select it.

    このページから、割り当てが成功したこと、および新しいブループリント ロック状態でリソースがデプロイされたことがわかります。From this page, we can see that the assignment succeeded and that the resources were deployed with the new blueprint lock state. 割り当てが更新された場合は、各定義のバージョンのデプロイに関する詳細が [割り当ての操作] ドロップダウンに表示されます。If the assignment is updated, the Assignment operation drop-down shows details about the deployment of each definition version. プロパティ ページを開くリソース グループを選択することができます。You can select the resource group to open the property page.

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

  4. 左側の [アクセス制御 (IAM)] ページを選択します。Select the Access control (IAM) page on the left. 次に、 [ロールの割り当て] タブを選択します。Then select the Role assignments tab.

    ここでは、assignment-locked-storageaccount-TestingBPLocks ブループリント割り当てが "所有者" ロールを持つことがわかります。Here we see that the assignment-locked-storageaccount-TestingBPLocks blueprint assignment has the Owner role. このロールを持つ理由は、リソース グループをデプロイおよびロックするためにこのロールが使用されたためです。It has this role because this role was used to deploy and lock the resource group.

  5. [拒否割り当て] タブを選択します。Select the Deny assignments tab.

    ブループリントの割り当てでは、デプロイされたリソース グループに対して 拒否割り当てが作成され、 [読み取り専用] のブループリントのロック モードが適用されました。The blueprint assignment created a deny assignment on the deployed resource group to enforce the Read Only blueprint lock mode. 拒否割り当てにより、 [ロール割り当て] タブに表示されている適切な権限を持つユーザーが特定のアクションを実行できなくなります。The deny assignment prevents someone with appropriate rights on the Role assignments tab from taking specific actions. 拒否割り当ては "すべてのプリンシパル" に適用されます。The deny assignment affects All principals.

    プリンシパルを拒否割り当てから除外する方法については、ブループリント リソースのロックに関するページを参照してください。For information about excluding a principal from a deny assignment, see blueprints resource locking.

  6. 拒否割り当てを選択し、次に左側の [拒否されたアクセス許可] ページを選択します。Select the deny assignment, and then select the Denied Permissions page on the left.

    拒否割り当てでは、 * _ と _ Action 構成を使用してすべての操作を禁止しますが、NotActions を使用して */read を除外することで読み取りアクセスを許可します。The deny assignment is preventing all operations with the ***_ and _* Action* configuration, but it allows read access by excluding */read via NotActions.

  7. Azure portal の階層リンクで、 [TestingBPLocks - アクセス制御 (IAM)] を選択します。In the Azure portal breadcrumb, select TestingBPLocks - Access control (IAM). 次に、左側の [概要] ページを選択し、 [リソース グループの削除] ボタンをクリックします。Then select the Overview page on the left and then the Delete resource group button. TestingBPLocks」という名前を入力して削除を確定し、次にウィンドウの下部にある [削除] を選択します。Enter the name TestingBPLocks to confirm the delete and then select Delete at the bottom of the pane.

    "リソース グループ TestingBPLocks の削除に失敗しました" というポータルの通知が表示されます。The portal notification Delete resource group TestingBPLocks failed appears. このエラーは、ご使用のアカウントにはリソース グループを削除するアクセス許可はあるが、ブループリントの割り当てによってアクセスが拒否されていることを示しています。The error states that although your account has permission to delete the resource group, access is denied by the blueprint assignment. ブループリントの割り当て時にブループリントのロック モードとして [読み取り専用] を選択したことを思い出してください。Remember that we selected the Read Only blueprint lock mode during blueprint assignment. ブループリントのロックにより、アクセス許可を持つアカウントは (所有者 であっても) リソースを削除できなくなります。The blueprint lock prevents an account with permission, even Owner, from deleting the resource. 詳細については、ブループリント リソースのロックに関するページを参照してください。For more information, see blueprints resource locking.

これらの手順は、デプロイされたリソースが、望ましくない削除 (リソースを削除するアクセス許可を持つアカウントが行ったものであっても) を禁止するブループリントのロックで保護されるようになったことを示しています。These steps show that our deployed resources are now protected with blueprint locks that prevent unwanted deletion, even from an account that has permission to delete the resources.

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

最後の手順では、ブループリントの定義の割り当てを削除します。The last step is to remove the assignment of the blueprint definition. 割り当てを削除しても、関連付けられた成果物は削除されません。Removing the assignment doesn't remove the associated artifacts.

  1. 左側のウィンドウにある [すべてのサービス] を選択します。Select All services in the left pane. [ブループリント] を探して選択します。Search for and select Blueprints.

  2. 左側の [割り当てられたブループリント] ページを選択します。Select the Assigned blueprints page on the left. フィルターを使用して、ブループリントの割り当て assignment-locked-storageaccount-TestingBPLocks を見つけて、選択します。Use the filters to find the assignment-locked-storageaccount-TestingBPLocks blueprint assignment, and then select it.

  3. ページの上部にある [ブループリントの割り当て解除] を選択します。Select Unassign blueprint at the top of the page. 確認ダイアログ ボックスの警告を読んでから、 [OK] を選択します。Read the warning in the confirmation dialog box, and then select OK.

    ブループリントの割り当てを削除すると、ブループリントのロックも削除されます。When the blueprint assignment is removed, the blueprint locks are also removed. リソースは、適切なアクセス許可を持つアカウントによって再度削除できます。The resources can once again be deleted by an account with appropriate permissions.

  4. Azure メニューから [リソース グループ] を選択し、次に [TestingBPLocks] を選択します。Select Resource groups from the Azure menu, and then select TestingBPLocks.

  5. 左側の [アクセス制御 (IAM)] ページを選択し、次に [ロール割り当て] タブを選択します。Select the Access control (IAM) page on the left and then select the Role assignments tab.

リソース グループのセキュリティでは、ブループリントの割り当てに "所有者" アクセス権がなくなったことが示されています。The security for the resource group shows that the blueprint assignment no longer has Owner access.

"ブループリント割り当ての削除完了" というポータルの通知が表示されたら、次の手順に進みます。After the Removing blueprint assignment succeeded portal notification appears, go to the next step.

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

このチュートリアルを完了したら、次のリソースを削除してください。When you're finished with this tutorial, delete these resources:

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

次のステップNext steps

このチュートリアルでは、Azure Blueprints を使用して、デプロイされた新しいリソースを保護する方法について学習しました。In this tutorial, you've learned how to protect new resources deployed with Azure Blueprints. Azure Blueprints の詳細については、ブループリントのライフサイクルに関する記事に進んでください。To learn more about Azure Blueprints, continue to the blueprint lifecycle article.