リソース タグとリソース ロック
コスト配分や検索のためにリソースへメタデータ タグを付け、読み取り専用ロックまたは削除ロックで誤った削除や変更を防ぎます。
「リソース タグとリソース ロック」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
Azure リソース タグとは
リソース タグは、Azure のリソース、リソース グループ、サブスクリプションに付加する名前と値の組み合わせによるメタデータです。フォルダー構造とは異なり、タグを使用すると、1 つのリソースを複数の観点で同時に分類できます。たとえば、VM に Environment=Production、Team=Backend、CostCentre=CC-042、Project=Phoenix のタグをすべて付けることで、これらの各観点を個別に使ってフィルターできます。
一般的なタグ戦略
組織では通常、複数の観点を対象とする標準のタグ分類体系を定義します。財務タグ(CostCentre、BudgetOwner)は、コストの割り当てに役立ちます。運用タグ(Environment、Criticality、Owner)は、フィルター処理やアラートに役立ちます。ライフサイクル タグ(AutoShutdown、ExpiryDate)は、自動化を可能にします。セキュリティ タグ(DataClassification、Compliance)は、セキュリティ ツールの利用を支援します。リソースをデプロイする前に分類体系を定義しておくと、不統一でクエリに利用できないタグ環境になるのを防げます。
CLI とポリシーによるタグの適用
タグは Azure portal、CLI、ARM テンプレート、Bicep、Terraform を使用して適用できます。az tag コマンドはリソースのタグを管理し、az group update はリソース グループのタグを管理します。Azure Policy で Modify または Append 効果を使用すると、リソースの作成時にタグを自動的に追加したり、タグの設定を必須にしたりできます。これにより、開発者が手動でタグを追加することを忘れても、すべての新しいリソースに CostCentre タグを確実に設定できます。
# Apply tags to a resource
az resource tag \
--resource-group myRG \
--name myVM \
--resource-type Microsoft.Compute/virtualMachines \
--tags Environment=Production Team=Backend CostCentre=CC-042
# Apply tags to a resource group (does NOT apply to resources inside)
az group update \
--name myRG \
--set tags.Environment=Production tags.CostCentre=CC-042タグ継承の制限
リソース グループに設定したタグが、その中のリソースに自動的に伝播されるというのは、よくある誤解です。実際には伝播されません。Azure のリソース タグは、親スコープから継承されません。リソース グループに Environment=Production のタグを設定しても、そのグループ内の VM やデータベースにそのタグが自動的に設定されることはありません。一貫したタグ付けを適用するには、Inherit a tag from the resource group 組み込み定義の Azure Policy を使用します。これにより、リソース グループのタグが、その中のすべてのリソースに自動的にコピーされます。
# Assign the 'Inherit a tag from the resource group' policy
az policy assignment create \
--name 'inherit-environment-tag' \
--policy 'cd3aa116-8754-49c9-a813-ad46512ece54' \
--params '{"tagName": {"value": "Environment"}}' \
--scope /subscriptions/<sub-id>コスト管理でのタグの使用
タグは Azure Cost Management と組み合わせることで、最大限の効果を発揮します。コスト分析ビューでは、任意のタグ キーで支出をグループ化できます。たとえば、CostCentre ごとの月間総支出を表示して、どの部署がクラウドを最も多く利用しているかを確認できます。また、Environment=Production でフィルターして、運用環境の予算から開発環境の支出を除外することもできます。Azure Cost Management でコスト データにタグを表示するには、請求期間が始まる前にそのタグが適用されている必要があります。
# Export cost data grouped by tag
# (Azure CLI cost export with tag grouping)
az consumption usage list \
--start-date 2026-06-01 \
--end-date 2026-06-30 \
--query '[].{Cost:pretaxCost, Service:instanceName, CostCentre:tags.CostCentre}' \
--output tableリソース ロックとは
リソース ロックは、ユーザーがどのような RBAC 権限を持っているかにかかわらず、Azure リソースを誤った削除や変更から保護します。Owner または Contributor の権限を持つユーザーでも、ロックされたリソースの削除や変更をブロックされることがあります。ロックはリソース、リソース グループ、またはサブスクリプションのレベルで適用でき、下位にカスケードされます。つまり、リソース グループに設定したロックは、その中のすべてのリソースを保護します。
ロックの種類: CanNotDelete と ReadOnly
Azure では 2 種類のロックがサポートされています。CanNotDelete(削除ロック)では、ユーザーはリソースの読み取りと変更を行えますが、削除はできません。これは最も一般的なロックであり、誤った削除を防ぐために、運用環境のデータベース、ストレージ アカウント、VNet などに適用されます。ReadOnly は、書き込み操作と削除操作をすべて禁止します。そのため、全員に Reader ロールだけが割り当てられている場合と同じように動作します。ReadOnly はより制限が厳しく、リソースのプロパティを更新する自動化プロセスに支障をきたす可能性があります。
# Apply a CanNotDelete lock to a resource group
az lock create \
--name 'prevent-delete' \
--resource-group myRG \
--lock-type CanNotDelete \
--notes 'Protect production resources from accidental deletion'
# Apply a ReadOnly lock to a specific storage account
az lock create \
--name 'storage-readonly' \
--resource-group myRG \
--resource-name mystorageaccount \
--resource-type Microsoft.Storage/storageAccounts \
--lock-type ReadOnlyリソース ロックの削除
ロックされたリソースを削除または変更するには、まずロックを削除する必要があります。そのためには Microsoft.Authorization/locks/delete 権限が必要です。この権限は、既定では Owner ロールと User Access Administrator ロールで使用できます。ロックの削除、リソースの変更、必要に応じたロックの再適用は、変更管理ワークフローにスクリプトとして組み込むことができます。これにより、保護されたリソースでも、監査証跡を残しながら、管理されたプロセスで変更できるようになります。
# List all locks in a resource group
az lock list \
--resource-group myRG \
--output table
# Remove a lock
az lock delete \
--name 'prevent-delete' \
--resource-group myRGロックの継承と上書き
親スコープ(サブスクリプションまたはリソース グループ)に適用されたロックは、すべての子リソースに継承されます。下位スコープでロックを上書きすることはできません。リソース グループに CanNotDelete ロックがある場合、その中の個々のリソースに直接ロックが設定されていなくても削除できません。親ロックに加えてリソース レベルで CanNotDelete ロックを追加しても、動作は変わりません。親ロックによってすでに保護されているためです。
ReadOnly ロックの副作用
ReadOnly ロックは、自動化プロセスで予期しない失敗を引き起こす可能性があります。表面上は読み取り専用に見える Azure の操作でも、実際には内部でリソース プロパティへの書き込みアクセスが必要な場合があります。たとえば、ストレージ アカウントのアクセス キー一覧の取得は、キー一覧表示の操作によってアカウントの監査証跡が変更されるため、ReadOnly ロックによってブロックされます。VM のスケール変更、App Service の再起動、実行中の VM へのディスクの接続もブロックされます。重要なリソースに適用する前に、非運用環境で ReadOnly ロックをテストしてください。
タグとロックの併用
タグとロックを組み合わせると、強力なガバナンス パターンを構築できます。Protected=true のようなタグを使用して CanNotDelete ロックが必要なリソースを示し、Azure Automation Runbook を実行して、このタグが付いたリソースを検索し、ロックがない場合に作成できます。この自己修復型ガバナンス パターンにより、管理者が誤ってロックを削除しても、Runbook のスケジュールに従って自動的に再適用されます。
確認テスト
このレッスンで扱った Microsoft Azure Fundamentals(AZ-900)の概念について、理解度を確認します。
レッスンのまとめ
このレッスンでは、リソース タグは名前と値のメタデータのペアであり、任意の単位でのコスト配分、フィルター処理、自動化を可能にすること、タグは親リソース グループから継承されないため、Azure Policy を使用して適用する必要があること、そしてリソース ロック(CanNotDelete と ReadOnly)は、RBAC 権限にかかわらず、リソースを誤った変更から保護することを学びました。次は、ガバナンス成果物をまとめてパッケージ化する Azure Blueprints について学習します。
よくある質問
「リソース タグとリソース ロック」レッスンは無料ですか?
はい。「リソース タグとリソース ロック」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「リソース タグとリソース ロック」で何を学びますか?
コスト配分や検索のためにリソースへメタデータ タグを付け、読み取り専用ロックまたは削除ロックで誤った削除や変更を防ぎます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「リソース タグとリソース ロック」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 管理グループとサブスクリプション
- Azure Policy
- リソース タグとリソース ロック
- Azure Blueprints とコンプライアンス