説明
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 日は復旧可能な期間であり、無期限の保存ではありません。