リソース ロックを使用してリソースを保護する

上司との最近の話し合いで、重要な Azure リソースが間違って削除された実例を指摘されました。 Azure 環境が整理されていなかったため、良かれと思って不要なリソースを消去したところ、他のシステムにとって重要なリソースが誤って削除されました。 あなたは Azure にリソース ロックという機能があることを耳にします。 今後、この種の問題は防げると考えているとあなたは上司に伝えます。 リソース ロックを使用してこの問題を解決する方法を見てみましょう。

リソース ロックとは何か。

リソース ロックは、変更または削除を阻止する目的であらゆるリソースに適用できる設定です。 リソース ロックには [削除][読み取り専用] を設定できます。 [削除] の場合、削除は禁止されますが、リソースに対するその他の操作は許可されます。 [読み取り専用] の場合、リソースを読み取る行為のみ許可され、リソースの変更や削除が禁止されます。 リソース ロックはサブスクリプション、リソース グループ、個別リソースに適用できます。上位で適用されている場合、下位に継承されます。

注意

[読み取り専用] を適用すると、読み取り操作のように見えるいくつかの操作には実際に追加のアクションが必要となるため、予期しない結果を招く可能性があります。 たとえば、[読み取り専用] ロックをストレージ アカウントに設定すると、すべてのユーザーがキーを一覧表示できなくなります。 返されるキーは書き込み操作に使用できるため、キーの一覧表示操作は POST 要求を介して処理されます。

リソース ロックが適用されているとき、その操作を実行するには、最初にロックを解除する必要があります。 リソースでアクションを許可する前に付加的な手順を置くことで、不注意によるアクションからリソースを保護できます。管理者は意図しない行為を回避できます。 リソース ロックは RBAC アクセス許可に関係なく適用されます。 自分がリソースの所有者であっても、禁止行為を実行するにはロックを解除する必要があります。

リソース ロックの実際の動作を確認します。

リソース ロックの作成

msftlearn-core-infrastructure-rg リソース グループを覚えていますか。 このグループには 2 つの仮想ネットワークと 1 つのストレージ アカウントが入っています。 これらを Azure 環境の重要なリソースであると見なし、間違って削除されないように手配します。 それでは、このリソース グループにリソース ロックを適用し、リソース グループとそれに含まれるリソースが削除されないようにします。

  1. まだ行っていない場合は、Web ブラウザーで Azure portal に移動します。 上部のナビゲーション バーにある検索ボックスで「msftlearn-core-infrastructure-rg」を検索し、このリソース グループをクリックします。

  2. 左側のメニューにある [設定] セクションで [ロック] を選択します。 現在、このリソースにはロックが適用されていないはずです。 1 つ追加します。

  3. [+ 追加] をクリックします。 ロックに BlockDeletion という名前を付け、[ロックの種類] として [削除] を選択します。 [OK] をクリックします。

    新しい削除リソース ロックが構成されていることを示す Azure portal のスクリーンショット。

    これで、リソース グループの削除を禁止するロックがリソース グループに適用されました。 このロックは、リソース グループ内のすべてのリソースに継承されます。 仮想ネットワークの 1 つを削除し、何が起こるか確認します。

  4. [概要] に戻り、msftlearn-vnet1 をクリックしてリソースを表示します。

  5. msftlearn-vnet1[概要] ウィンドウで上部にある [削除] をクリックし、[はい] をクリックして確定します。 リソースの削除を禁止するロックが適用されていることを示す、エラーが表示されます。

    リソースの削除が禁止されていることを示す Azure portal のエラーのスクリーンショット。

  6. 左側のメニューにある [設定] セクションで [ロック] を選択します。 ここで、リソース グループから継承されたロックが msftlearn-vnet1 に適用されていることを確認できるはずです。

  7. msftlearn-core-infrastructure-rg リソース グループに戻り、[ロック] ウィンドウを表示します。 クリーンアップできるようにロックを解除します。 BlockDeletion ロックの [...] をクリックし、[削除] を選択します。

演習でリソース ロックを使用する

リソース ロックで偶発的な削除を防止する方法を確認しました。 仮想ネットワークを削除するには、ロックを解除する必要がありました。 このようにアクションの手順を整えることで、本当に削除したいリソースだけを削除し、変更したいリソースだけを変更できます。

削除または変更された場合、大きな影響が出るような Azure の重要なリソースはリソース ロックを使用して保護します。 ExpressRoute 回線、仮想ネットワーク、クリティカル データベース、ドメイン コントローラーは重要なリソースの例です。 リソースを評価し、偶発的なアクションから保護する追加の防御層を配置したい場所にロックを適用します。