Blob 软删除会在系统中将已删除的数据保留指定的一段时间,以保护单个 Blob 及其版本、快照和元数据免遭意外删除或覆盖。 在保留期内,可以将 Blob 还原到它在删除时的状态。 在指定的保留期已过后,Blob 将永久被删除。 有关 Blob 软删除的详细信息,请参阅 Blob 的软删除。
Blob 软删除是针对 Blob 数据的综合性数据保护策略的一部分。 若要详细了解 Azure 的数据保护建议,请参阅数据保护概述。
启用 blob 软删除
您可以通过使用 Azure 内置策略、Azure 门户、PowerShell 或 Azure CLI 随时启用或禁用存储账户的软删除功能。
要通过 Azure 内置策略大规模实现 blob 和容器软删除,请参考“配置存储账户上的 blob 和容器软删除”。
使用 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。
保存该模板。
指定帐户的资源组,然后选择“查看 + 创建”按钮来部署模板并启用容器软删除。
后续步骤