Azure Key Vault の完全削除保護の確認

Key Vault の完全削除保護と復旧可能な保持期間を確認してください。

説明

Key Vault の purge protection は、論理削除されたシークレットやキーが保持期間の終了前に完全削除されることを防ぎます。この保護がないと、完全削除権限の悪用で復旧できなくなるおそれがあります。

Purge protection は最初の削除や、それに伴うサービス停止を防ぎません。保持期間内に復元できるよう、権限と復旧手順も管理してください。

想定される影響

  • キー、シークレット、証明書を永久に失い、依存するサービスが停止するおそれがあります。
  • 暗号化キーを失うと、そのキーで暗号化したデータを復旧できない場合があります。新しいキーを作るだけでは代用できません。

対処方法

purge_protection_enabled = true を設定してください。一度有効にすると無効化できないため、変更の影響を確認してください。論理削除の保持期間は作成時に 7~90 日から選択し、後から変更できません。削除権限、バックアップ、期間内の復旧手順を併せて確認してください。

例

同じ Key Vault の purge protection 設定を比較します。

変更前

hcl
resource "azurerm_key_vault" "app_key_vault" {
  name                       = "examplekeyvault"
  location                   = azurerm_resource_group.example.location
  resource_group_name        = azurerm_resource_group.example.name
  tenant_id                  = data.azurerm_client_config.current.tenant_id
  sku_name                   = "standard"
  soft_delete_retention_days = 7
  purge_protection_enabled   = false
}

Purge protection が無効なため、権限を持つ主体は、論理削除された項目を保持期間の終了前に完全削除できます。

変更後

hcl
resource "azurerm_key_vault" "app_key_vault" {
  name                       = "examplekeyvault"
  location                   = azurerm_resource_group.example.location
  resource_group_name        = azurerm_resource_group.example.name
  tenant_id                  = data.azurerm_client_config.current.tenant_id
  sku_name                   = "standard"
  soft_delete_retention_days = 7
  purge_protection_enabled   = true
}

保持期間が終わるまで完全削除を防ぎます。例の 7 日は復旧可能な期間であり、無期限の保存ではありません。

参考資料