Blob 软删除会在系统中将已删除的数据保留指定的一段时间,可以在意外删除或覆盖单个 Blob 及其版本、快照和元数据时提供保护。 在保留期内,可以将 Blob 还原到它在删除时的状态。 在指定的保留期已过后,Blob 将永久被删除。 有关 Blob 软删除的详细信息,请参阅 Blob 的软删除。
Blob 软删除是针对 Blob 数据的综合性数据保护策略的一部分。 若要详细了解 Azure 的数据保护建议,请参阅数据保护概述。
启用 blob 软删除
你可以使用 Azure 门户、PowerShell 或 Azure CLI 随时启用或禁用存储帐户的软删除。
使用 Azure 门户创建新存储帐户时会默认启用 Blob 软删除。 创建新存储帐户时启用或禁用 blob 软删除的设置位于“数据保护”选项卡上。有关创建存储帐户的详细信息,请参阅创建存储帐户。
若要使用 Azure 门户为现有的存储帐户启用 blob 软删除,请执行以下步骤:
- 在 Azure 门户中导航到存储帐户。
- 在“数据管理”下找到“数据保护”选项。
- 在“恢复”部分,选择“启用 blob 软删除” 。
- 指定一个 1 到 365 天的保持期。 建议最短保持期为七天。
- 保存所做更改。
 
使用 PowerShell 创建新存储帐户时不会启用 Blob 软删除。 可以在新帐户创建之后启用 blob 软删除。
若要使用 PowerShell 为现有存储帐户启用 blob 软删除,请调用 Enable-AzStorageBlobDeleteRetentionPolicy 命令,并指定保持期(天)。
以下示例启用 blob 软删除并将保持期设置为七天。 请记得将括号中的占位符值替换为你自己的值:
Enable-AzStorageBlobDeleteRetentionPolicy -ResourceGroupName <resource-group> `
    -StorageAccountName <storage-account> `
    -RetentionDays 7
若要检查 blob 软删除的当前设置,请调用 Get-AzStorageBlobServiceProperty 命令:
$properties = Get-AzStorageBlobServiceProperty -ResourceGroupName <resource-group> `
    -StorageAccountName <storage-account>
$properties.DeleteRetentionPolicy.Enabled
$properties.DeleteRetentionPolicy.Days
使用 Azure CLI 创建新存储帐户时不会启用 Blob 软删除。 可以在新帐户创建之后启用 blob 软删除。
若要使用 Azure CLI 为现有存储帐户启用 blob 软删除,请调用 az storage account blob-service-properties update 命令,并指定保持期(天)。
以下示例启用 blob 软删除并将保持期设置为七天。 请记得将括号中的占位符值替换为你自己的值:
az storage account blob-service-properties update --account-name <storage-account> \
    --resource-group <resource-group> \
    --enable-delete-retention true \
    --delete-retention-days 7
若要检查 blob 软删除的当前设置,请调用 az storage account blob-service-properties show 命令:
az storage account blob-service-properties show --account-name <storage-account> \
    --resource-group <resource-group>
要使用 Azure 资源管理器模板启用 blob 软删除,请创建一个设置 deleteRetentionPolicy 属性的模板。 以下步骤说明了如何在 Azure 门户中创建模板。
- 在 Azure 门户中,选择“创建资源”。 
- 在“搜索市场”中,键入“部署自定义模板”,然后按 ENTER。 
- 选择“在编辑器中生成自己的模板”。 
- 在模板编辑器中粘贴以下 JSON。 将 - <account-name>占位符替换为存储帐户的名称。
 -   {
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [
        {
           "type": "Microsoft.Storage/storageAccounts/blobServices",
           "apiVersion": "2023-04-01",
           "name": "<account-name>/default",
           "properties": {
                 "deleteRetentionPolicy": {
                    "enabled": true,
                    "days": 7
              }
           }
        }
  ]
  }
 
- 指定保持期。 默认值为 7。 
- 保存模板。 
- 指定帐户的资源组,然后选择“查看 + 创建”按钮来部署模板并启用容器软删除。 
 
启用 blob 软删除(分层命名空间)
blob 软删除还可以保护已启用分层命名空间功能的帐户中的 blob 和目录。
若要使用 Azure 门户为存储帐户启用 blob 软删除,请执行以下步骤:
- 在 Azure 门户中导航到存储帐户。
- 在“数据管理”下找到“数据保护”选项。
- 在“恢复”部分中,选择“启用 blob 软删除”。
- 指定 1 到 365 天的保持期。 Azure 建议使用 7 天的最短保持期。
- 保存所做更改。
- 安装最新的 PowershellGet 模块。 然后关闭 PowerShell 控制台,接着重新将其打开。 - Install-Module PowerShellGet -Repository PSGallery -Force
 
- 安装 Az.Storage 预览版模块。 - Install-Module Az.Storage -Repository PsGallery -RequiredVersion 3.7.1-preview -AllowClobber -AllowPrerelease -Force
 - 有关如何安装 PowerShell 模块的详细信息,请参阅安装 Azure PowerShell 模块 
- 使用存储帐户密钥、连接字符串或 Microsoft Entra ID 获取存储帐户授权。 有关详细信息,请参阅连接到帐户。 - 以下示例使用存储帐户密钥获取授权。 - $ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'
 
- 若要使用 PowerShell 启用 blob 软删除,请使用 Enable-AzStorageDeleteRetentionPolicy 命令,并指定保持期(以天为单位)。 - 下面的示例启用了帐户的软删除功能,并将保持期设置为 4 天。 - Enable-AzStorageDeleteRetentionPolicy -RetentionDays 4  -Context $ctx
 
- 若要检查 blob 软删除的当前设置,请使用 - Get-AzStorageServiceProperty命令:
 -  Get-AzStorageServiceProperty -ServiceType Blob -Context $ctx
 
- 如果在本地安装了 Azure CLI,请打开命令控制台应用程序,例如 Windows PowerShell。 
- 安装 - storage-preview扩展。
 - az extension add -n storage-preview
 
- 连接到你的存储帐户。 有关详细信息,请参阅连接到帐户。 
- 若要在 Azure CLI 中启用软删除,请调用 - az storage fs service-properties update命令,并指定保持期(以天为单位)。
 - 下面的示例启用了 blob 和目录软删除,并将保持期设置为 5 天。 - az storage fs service-properties update --delete-retention --delete-retention-period 5 --auth-mode login
 
- 若要检查 blob 软删除的当前设置,请调用 - az storage fs service-properties update命令:
 - az storage fs service-properties update --delete-retention false --connection-string $con
 
要使用 Azure 资源管理器模板启用 blob 软删除,请创建一个设置 deleteRetentionPolicy 属性的模板。 以下步骤说明了如何在 Azure 门户中创建模板。
- 在 Azure 门户中,选择“创建资源”。 
- 在“搜索市场”中,键入“部署自定义模板”,然后按 ENTER。 
- 选择“在编辑器中生成自己的模板”。 
- 在模板编辑器中粘贴以下 JSON。 将 - <account-name>占位符替换为存储帐户的名称。
 -   {
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [
        {
           "type": "Microsoft.Storage/storageAccounts/blobServices",
           "apiVersion": "2023-04-01",
           "name": "<account-name>/default",
           "properties": {
                 "deleteRetentionPolicy": {
                    "enabled": true,
                    "days": 7
              }
           }
        }
  ]
  }
 
- 指定保持期。 默认值为 7。 
- 保存模板。 
- 指定帐户的资源组,然后选择“查看 + 创建”按钮来部署模板并启用容器软删除。 
 
后续步骤