Azure Container Registry の削除防止ロックの確認

重要な Azure Container Registry の削除保護を確認してください。

説明

誤操作や権限の悪用でコンテナーレジストリが削除されると、イメージのデプロイやサービス復旧が中断するおそれがあります。管理ロックは、アクセス権限とは別にリソースの削除を防ぐ仕組みです。

CanNotDelete ロックは管理プレーンでのレジストリ削除を防ぎますが、イメージやタグへのデータ操作は保護しません。リソースグループやサブスクリプションから継承するロックも確認してください。

想定される影響

  • 必要なイメージを取得できず、新しいデプロイや復旧が遅れるおそれがあります。
  • レジストリの再構成やイメージの復元に時間と費用がかかる可能性があります。

対処方法

重要なレジストリに azurerm_management_lock の CanNotDelete を適用するか、有効な継承ロックを確認してください。ロックを解除する権限を制限し、変更手順を整えてください。イメージの削除権限と復旧手段は別途管理してください。

例

同じレジストリに削除防止ロックを追加する例です。

変更前

hcl
resource "azurerm_container_registry" "acr" {
  name                = "containerRegistry1"
  resource_group_name = azurerm_resource_group.rg.name
  location            = azurerm_resource_group.rg.location
  sku                 = "Standard"
  admin_enabled       = false
}

この抜粋には個別のロックがありません。上位スコープから保護を継承しているか確認してください。

変更後

hcl
resource "azurerm_container_registry" "acr" {
  name                = "containerRegistry1"
  resource_group_name = azurerm_resource_group.rg.name
  location            = azurerm_resource_group.rg.location
  sku                 = "Standard"
  admin_enabled       = false
}

resource "azurerm_management_lock" "acr_lock" {
  name       = "acr-lock"
  scope      = azurerm_container_registry.acr.id
  lock_level = "CanNotDelete"
  notes      = "Protect registry from accidental deletion"
}

レジストリの削除を防ぐロックを追加します。ロックを解除できる主体は保護を無効にできるため、権限管理も必要です。

参考資料