Azure Key Vaultの復旧保護の見直し

Azure Key Vaultの論理削除と消去保護を確認し、削除されたキー、シークレット、証明書を保持期間中に復旧できるようにしてください。

説明

Key Vaultの論理削除(soft delete)は、削除したVaultとオブジェクトを保持期間中に復旧できるようにします。新規Vaultでは既定で有効になり、有効化後は無効にできません。消去保護(purge protection)は別の設定であり、保持期間が終わる前の完全削除を防ぎます。

論理削除だけでは、消去権限を持つ主体が保持期間中に完全削除できます。消去保護は有効化後に解除できないため、保持ポリシーと復旧要件を併せて確認してください。

想定される影響

  • キー、シークレット、証明書の完全削除によって、依存するサービスが停止したり、暗号化データにアクセスできなくなったりする可能性があります。
  • 復旧手順が未整備だと、削除後のサービス復旧が遅れる可能性があります。

対処方法

  • 実際の論理削除の状態を確認し、enablePurgeProtection: trueを設定してください。保持期間は作成時に7~90日で選択し、その後は変更できません。
  • 削除、消去、復旧の権限を必要な主体に限定し、復旧手順をテストしてください。消去保護はバックアップやアクセス制御の代わりにはなりません。
  • Vaultの復旧後はRBACロール割り当てやEvent Gridサブスクリプションなどの連携設定も確認し、必要に応じて再作成してください。

例

一意のvaultNameを指定してください。例はAzure RBACを使うため、必要なデータロールの割り当ては別途設定してください。デプロイ、ディスク暗号化、ネットワークアクセスの設定も実際の用途に合わせて確認してください。

変更前

bicep
param vaultName string

resource keyVaultInstance 'Microsoft.KeyVault/vaults@2019-09-01' = {
  name: vaultName
  location: resourceGroup().location
  tags: {}
  properties: {
    tenantId: subscription().tenantId
    sku: {
      family: 'A'
      name: 'standard'
    }
    accessPolicies: []
    enabledForDeployment: true
    enabledForDiskEncryption: true
    enabledForTemplateDeployment: true
    enableSoftDelete: true
    softDeleteRetentionInDays: 80
    enableRbacAuthorization: true
  }
}

論理削除は有効ですが、消去保護は指定されていません。新規Vaultでは消去保護は既定で有効になりません。

変更後

bicep
param vaultName string

resource keyVaultInstance 'Microsoft.KeyVault/vaults@2019-09-01' = {
  name: vaultName
  location: resourceGroup().location
  tags: {}
  properties: {
    tenantId: subscription().tenantId
    sku: {
      family: 'A'
      name: 'standard'
    }
    accessPolicies: []
    enabledForDeployment: true
    enabledForDiskEncryption: true
    enabledForTemplateDeployment: true
    enableSoftDelete: true
    softDeleteRetentionInDays: 80
    enableRbacAuthorization: true
    enablePurgeProtection: true
  }
}

消去保護によって、80日の保持期間が終わる前に削除済みオブジェクトを完全削除できなくなります。最初の削除操作自体を防ぐ設定ではありません。

参考資料