リソース ロックを使用してリソースを保護する
上司との最近の話し合いで、重要な Azure リソースが間違って削除された実例を指摘されました。 Azure 環境が整理されていなかったため、良かれと思って不要なリソースを消去したところ、他のシステムにとって重要なリソースが誤って削除されました。 あなたは Azure にリソース ロックという機能があることを耳にします。 今後、この種の問題は防げると考えているとあなたは上司に伝えます。 リソース ロックを使用してこの問題を解決する方法を見てみましょう。
リソース ロックとは何か。
リソース ロックは、変更または削除を阻止する目的であらゆるリソースに適用できる設定です。 リソース ロックは [削除] か [読み取り専用] に設定できます。 [削除] の場合、削除は禁止されますが、リソースに対するその他の操作は許可されます。 [読み取り専用] の場合、リソースを読み取る行為のみ許可され、リソースの変更や削除が禁止されます。 リソース ロックは、サブスクリプション、リソースグループ、または個々のリソースに適用できます。 リソース ロックは、より高いレベルで適用されると継承されます。
Note
[読み取り専用] を適用すると、読み取り操作のように見えるいくつかの操作には実際に追加のアクションが必要となるため、予期しない結果を招く可能性があります。 たとえば、[読み取り専用] ロックをストレージ アカウントに設定すると、すべてのユーザーがキーを一覧表示できなくなります。 返されるキーは書き込み操作に使用できるため、キーの一覧表示操作は POST 要求を介して処理されます。
リソース ロックが適用されているとき、その操作を実行するには、最初にロックを解除する必要があります。 リソースに対するアクションを許可する前にさらに手順を行うことで、不注意なアクションからリソースを保護でき、管理者が意図しない行為を行うことを回避できます。 リソース ロックは RBAC アクセス許可に関係なく適用されます。 自分がリソース所有者であっても、実際に禁止行為を実行するにはロックを解除する必要があります。
リソース ロックの実際の動作を確認しましょう。
リソース ロックの作成
msftlearn-core-infrastructure-rg リソース グループを覚えていますか。 これには 2 つの仮想ネットワークと 1 つのストレージ アカウントが入っています。 これらを Azure 環境の重要なリソースであると見なし、間違って削除されないようにする必要があります。 リソース グループとそれに含まれるリソースが削除されないようにするには、そのリソース グループにリソース ロックを適用します。
まだ行っていない場合は、Web ブラウザーで Azure portal に移動します。 上部のナビゲーション バーにある検索ボックスで「msftlearn-core-infrastructure-rg」を検索し、このリソース グループを選択します。
左側のメニューの [設定] セクションで [ロック] を選択します。 現在、このリソースにはロックが適用されていないはずです。 1 つ追加します。
[+ 追加] を選択します。 ロックに BlockDeletion という名前を付け、[ロックの種類] に [削除] を選択します。 [OK] を選択します。
これで、リソース グループにロックが適用され、グループが削除されなくなります。 このロックは、リソース グループ内のすべてのリソースに継承されます。 仮想ネットワークの 1 つを削除し、何が起こるか確認します。
[概要] に戻り、[msftlearn-vnet1] を選択します。
[msftlearn-vnet1] の [概要] ペインの上部にある [削除] を選択します。 リソースの削除を禁止するロックが適用されていることを示す、エラーが表示されます。
左側のメニューの [設定] セクションで [ロック] を選択します。 msftlearn-vnet1 には、リソース グループから継承されたロックが適用されています。
msftlearn-core-infrastructure-rg リソース グループに戻り、[ロック] に移動します。 クリーンアップできるようにロックを解除します。 [BlockDeletion] ロックの [削除] を選択します。
演習でリソース ロックを使用する
リソース ロックで偶発的な削除を防止する方法について学習しました。 仮想ネットワークを削除するには、ロックを解除する必要がありました。 このようにアクションの手順を整えることで、本当に削除したいリソースだけを削除し、変更したいリソースだけを変更できます。
削除または変更された場合、大きな影響が出るような Azure の重要なリソースはリソース ロックを使用して保護します。 いくつか例を挙げると、ExpressRoute 回線、仮想ネットワーク、クリティカル データベース、ドメイン コントローラーがあります。 リソースを評価し、偶発的なアクションから保護する追加の防御層を配置したい場所にロックを適用します。
リソースのクリーンアップ
作成したリソースをクリーンアップしてみましょう。 作成したリソース グループとともに、ポリシーの割り当てとポリシーの定義を削除する必要があります。
Web ブラウザーで Azure portal に移動します。
上部のメニュー バーにある検索ボックスで「msftlearn-core-infrastructure-rg」を検索し、このリソース グループを選択します。
[概要] ペインで、[リソース グループの削除] を選択します。 「msftlearn-core-infrastructure-rg」というリソース グループ名を入力して確定し、[削除] を選択します。 [削除] をもう一度選択し、削除を確定します。
Note
割り当てられたリソースを、含まれるリソース グループと共に削除したため、このポリシーには割り当てが残りません。 通常、リソースにポリシーを割り当てる場合は、ここで基になるリソースを削除せずに割り当てを削除できます。 これを行うには、[割り当て] を選び、割り当ての省略記号 (
...
) を選び、[割り当ての削除] を選びます。検索ボックスでポリシーを検索し、[ポリシー] サービスを選択します。
[割り当て] を選び、作成した割り当てを削除します。
[定義] を選択し、作成したポリシー "Enforce tag on resource" (リソースにタグを適用する) を検索します。
対象の定義の [
...
] を選択し、[定義の削除] を選びます。 [はい] を選択して、削除を確認します。