创建和管理备份保险柜

概览

本页将介绍如何在Google Cloud 控制台中创建和管理备份保险库。

准备工作

如需获得创建和管理备份保险库所需的权限,请让您的管理员为您授予要在其中创建备份保险库的项目的 Backup and DR Backup Vault Admin (roles/backupdr.backupvaultAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含创建和管理备份保险库所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需创建和管理备份保险库,需要具备以下权限:

  • backupdr.backupVaults.create
  • backupdr.backupVaults.list
  • backupdr.backupVaults.get
  • backupdr.backupVaults.update
  • backupdr.backupVaults.delete

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建备份保险柜

按照以下说明创建备份保险库。

控制台

  1. 在 Google Cloud 控制台中,前往备份保险库页面。

    前往“备份保险柜”

  2. 点击创建备份保险柜

  3. 创建备份保险柜页面上,输入备份保险柜信息。

    1. 为备份保险库命名字段中,输入符合备份保险库名称要求的名称。
    2. 点击继续
    3. 选择存储数据的位置列表中,选择将永久存储备份数据的位置
    4. 点击继续
    5. 防止删除备份字段中,输入最短强制保留期限,以定义备份受保护免遭删除的时长。最短为 1 天,最长为 99 年。
    6. 如果您想锁定最短强制保留期限的值,请选中锁定强制保留期限复选框,点击 图标,然后从日历中选择日期。
    7. 定义对备份保险柜的访问权限部分,选择一个选项来定义备份保险柜的访问权限限制。 如果您未选择任何选项,系统会创建具有限制对当前组织的访问权限限制的备份保险柜。
  4. 点击创建

gcloud

  1. 在以下开发环境之一中,设置 gcloud CLI:
  2. Cloud Shell:如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。 Cloud Shell 会话会在页面底部启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。
  3. 本地 shell:如需使用本地开发环境,请安装初始化 gcloud CLI。

  4. 创建备份保险柜。

      gcloud backup-dr backup-vaults create BACKUPVAULT_NAME \
      --project=PROJECT_ID \
      --location=LOCATION \
      --backup-min-enforced-retention=RETENTION_PERIOD_IN_DAYS
      --access-restriction=ACCESS_RESTRICTION
    

    替换以下内容:

    • BACKUPVAULT_NAME:备份保险库的名称。
    • PROJECT_ID:您要在其中创建备份保险库的项目的名称。
    • LOCATION:您要在其中创建备份保险库的位置。
    • RETENTION_PERIOD_IN_DAYS:备份保险柜中每个备份无法删除的时间段。最短为 1 天,最长为 99 年。例如,2w1d 表示两周零一天。如需了解详情,请参阅备份保险柜最短强制保留期限
    • ACCESS_RESTRICTION:指定备份保险柜的访问权限限制。允许的值包括 within-projectwithin-orgunrestrictedwithin-org-but-unrestricted-for-ba。 如果您未指定值,则创建的备份保管库具有 within-org 限制。
  5. 检查操作的状态。

      gcloud backup-dr operations describe FULL_OPERATION_ID
    

    替换以下内容:

    • FULL_OPERATION_ID 备份保险库中显示的操作 ID。其格式如下: projects/test-project/locations/us-central1/operations/operationID

    输出如下所示:

    
        Create in progress for backup vault [projects/test-project/locations/us-central1/operations/operation-1721893921568-41e0dab8938a1-f1dc6ad2-3051b3ce]. Run the [gcloud backup-dr operations describe] command to check the status of this operation.
    

Terraform

您可以使用 Terraform 资源创建备份保险库


resource "google_backup_dr_backup_vault" "default" {
  provider                                   = google-beta
  location                                   = "us-central1"
  backup_vault_id                            = "my-vault"
  description                                = "This vault is created usingTerraform."
  backup_minimum_enforced_retention_duration = "100000s"
  force_update                               = "true"
  ignore_inactive_datasources                = "true"
  allow_missing                              = "true"
}

列出项目中的备份保险柜

按照以下说明列出项目中的备份保险柜。

控制台

  1. 在 Google Cloud 控制台中,前往备份保险库页面。

    前往“备份保险柜”

    属于所选项目的备份保险库会显示在列表中。

gcloud

  1. 列出备份保险柜。

      gcloud backup-dr backup-vaults list \
      --project=PROJECT_ID \
      --location=LOCATION
    

    替换以下内容:

    • PROJECT_ID:创建备份保险库的项目的名称。
    • LOCATION:创建备份保险库的位置。

查看备份保险柜详情

备份保险库详细信息页面会显示配置信息,并允许您更新可修改的项目。

备份保险库详情页面中的锁定状态字段可以具有以下值之一:

  • 未锁定:备份保险柜未应用锁定,也没有待处理的锁定。
  • 锁定生效日期和时间:已设置锁定,将在指定日期生效。
  • 锁定:备份保险柜的最低强制保留期限值已锁定,无法减少或移除。

按照以下说明查看备份保险柜详情。

控制台

  1. 在 Google Cloud 控制台中,前往备份保险库页面。

    前往“备份保险柜”

    此页面上列出了属于所选项目的备份保险柜。

  2. 点击要查看的备份保险库。

    备份保险柜详情页面会显示配置信息,包括最短强制保留期限的值及其锁定状态。

gcloud

  1. 查看备份保险柜详情。

      gcloud backup-dr backup-vaults describe BACKUPVAULT_NAME \
      --location=LOCATION \
      --project=PROJECT_ID
    

    替换以下内容:

    • BACKUPVAULT_NAME:备份保险库的名称。
    • LOCATION:备份保险库的位置。
    • PROJECT_ID:创建备份保险库的项目名称。

更新现有备份保险柜的最短强制保留期限

您可以根据锁定状态更新最短强制保留期限。

  • 已解锁:您可以延长或缩短最短强制保留期限。
  • 已锁定:您只能延长最短强制保留期限。

如果已到生效日期,则无法移除锁定。不过,如果尚未达到生效日期,您可以移除锁定,这样系统会清除最初指定的生效日期。

对强制执行的最短保留期限值的更改仅适用于更新后创建的备份。更改最短强制保留期限的值不会影响备份保险柜中已有的备份的剩余强制保留期限。

增加备份保险柜的强制保留期限时,备份保险柜的强制保留期限不应超过您将存储在备份保险柜中的任何备份的备份方案保留期限。如果更改后的值长于备份保留期限,Backup and DR Service 会根据备份方案类型以不同的方式处理这些更改。

  • 基于Google Cloud 控制台的方案:系统会阻止对备份保险库价值进行更改。

  • 基于管理控制台的方案:允许更改备份保险库价值,但您应立即更新相关备份方案,以指定等于或长于更新后的备份保险库强制执行的最短保留期限的保留期限。

    如果备份方案的保留期限短于备份保险柜的最短强制保留期限,则生成的备份的强制保留期限将设置为备份保险柜的最短强制保留期限。 此外,备份的过期时间设置为在强制保留期限结束后。

按照以下说明更新现有备份保险库的最短强制保留期限。

控制台

  1. 在 Google Cloud 控制台中,前往备份保险库页面。

    前往“备份保险柜”

  2. 在备份保险库列表中,点击要更新的备份保险库的名称。

  3. 点击 图标。

  4. 修改最短强制保留期限对话框中,输入新的最短强制保留期限值。这是备份保险柜中每个备份的保留期限,在此期限内,备份无法删除。最短期限为 1 天,最长期限为 99 年。

  5. 如果您想锁定最短强制保留期限,请选中锁定强制保留期限复选框,然后从日历中选择锁定生效日期。

  6. 点击保存

gcloud

  1. 更新现有备份保险柜的最短强制保留期限。

      gcloud backup-dr backup-vaults update BACKUPVAULT_NAME\
      --project=PROJECT_ID \
      --location=LOCATION \
      --backup-min-enforced-retention=RETENTION_PERIOD_IN_DAYS
    

    替换以下内容:

    • BACKUPVAULT_NAME:备份保险库的名称。
    • PROJECT_ID:创建备份保险库的项目的名称。
    • LOCATION:备份保险库的位置。
    • RETENTION_PERIOD_IN_DAYS:备份保险柜中每个备份无法删除的时间段。最短为 1 天,最长为 99 年。

删除备份保险柜

只有当备份库不包含备份时,才能将其删除。 如需删除备份保险库,请先删除该保险库中符合删除条件的所有备份。

按照以下说明删除备份保险库。

控制台

  1. 在 Google Cloud 控制台中,前往备份保险库页面。

    前往“备份保险柜”

  2. 点击要删除的备份保险库。

  3. 点击删除

  4. 在出现的叠加窗口中,确认要删除备份保险库及其内容。

  5. 点击删除

gcloud

  1. 删除备份保险柜。

      gcloud backup-dr backup-vaults delete BACKUPVAULT_NAME \
      --project=PROJECT_ID \
      --location=LOCATION
    

    替换以下内容:

    • BACKUPVAULT_NAME:备份保险库的名称。
    • PROJECT_ID:创建备份保险库的项目名称。
    • LOCATION:备份保险库的位置。

向备份保险柜服务代理和备份/恢复设备授予访问权限

创建的每个备份保险库都有一个与之关联的唯一服务代理。 对于某些资源类型,系统会利用服务代理代表 Backup and DR Service 执行操作,因此需要向备份保险柜服务代理需要访问的项目授予适当的权限。服务代理是由 Google 代管式服务账号;如需了解详情,请参阅服务代理

对于某些资源类型(例如 Google Cloud VMware Engine、Oracle 数据库和 SQL Server 数据库),Backup and DR 备份/恢复设备必须对备份保险库执行操作。在这种情况下,备份/恢复设备需要对备份保险柜拥有适当的权限。此外,目标备份保险库必须设置 UNRESTRICTED 或 WITHIN_ORG_BUT_UNRESTRICTED_FOR_BA 访问限制

为服务代理授予角色

找到服务代理的电子邮件地址后,您可以向备份保险库服务代理授予角色,就像向任何其他主账号授予角色一样。

如需备份某个项目中的 Compute Engine 虚拟机实例(该项目与创建备份保险柜的项目不同),您必须向 Compute Engine 项目中的备份保险柜服务代理授予 Backup and DR Compute Engine Operator (roles/backupdr.computeEngineOperator) IAM 角色。不过,如需备份与创建备份保险柜的项目相同的项目中的 Compute Engine 虚拟机实例,则无需授予任何角色。

如需恢复 Compute Engine 实例,您需要向备份保险柜服务代理授予恢复项目中的 Backup and DR Compute Engine Operator (roles/backupdr.computeEngineOperator) IAM 角色。

按照以下说明向服务代理授予角色。

控制台

  1. 在 Google Cloud 控制台中,前往备份保险库页面。

    前往“备份保险柜”

  2. 点击备份保险柜名称,然后复制服务代理的电子邮件地址。

  3. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  4. 新主账号字段中,输入服务代理的电子邮件地址。

  5. 选择角色列表中,根据资源类型选择适当的角色。例如,如需备份某个项目中的 Compute Engine 实例(该项目与创建备份保险柜的项目不同),请选择“Backup and DR Compute Engine Operator”(roles/backupdr.computeEngineOperator) IAM 角色。

  6. 点击保存

gcloud

  1. 为服务代理授予角色。

      gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:SERVICE_ACCOUNT \
      --role=ROLE
    

    替换以下内容:

    • PROJECT_ID:项目的名称。
    • SERVICE_ACCOUNT:备份保险库服务代理的电子邮件地址。例如:my-service-account@my-project.iam.gserviceaccount.com
    • ROLE:需要在资源项目上授予的角色。 例如,如需备份某个 Compute Engine 实例(该实例所在的项目的不同于备份保险柜的创建项目),请选择 Backup and DR Compute Engine Operator (roles/backupdr.computeEngineOperator) IAM 角色。

向备份/恢复设备服务账号授予角色

只有在备份保险柜项目中向设备服务账号授予 Backup and DR Backup Vault Accessor (roles/backupdr.backupvaultAccessor) IAM 角色后,您才能从备份/恢复设备项目访问备份保险柜。如果没有此角色,您将无法访问备份保险柜,也就无法完成设置来启用备份创建功能。

向备份/恢复设备服务账号授予角色后,您可以使用管理控制台将 Google Cloud VMware Engine、Oracle 数据库和 SQL Server 数据库备份和恢复到备份保险库。

按照以下说明向备份/恢复设备服务账号授予角色:

  1. 在 Google Cloud 控制台中,前往创建设备虚拟机的虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击要获取服务账号的 Compute Engine 实例。

  3. API 和身份管理部分中,从服务账号字段复制服务账号的电子邮件地址。

  4. 在 Google Cloud 控制台中,前往备份保险库项目的 IAM 角色。

    转到 IAM

  5. 点击授予访问权限

  6. 服务账号字段中,输入设备的电子邮件地址。

  7. 选择角色列表中,选择 Backup and DR Backup Vault Accessor 角色。

  8. 可选:如需限制备份/恢复设备只能访问特定的备份保险库,请点击 添加 IAM 条件,然后选择 Backup and DR Backup Vault Accessor 角色。

    1. 名称字段中,输入条件的名称。
    2. 点击条件编辑器标签页。

      • Expression CEL editor 字段中,输入以下表达式。

        resource.name.extract("projects/PROJECT_ID/locations/LOCATION/backupVaults
        /{name}/") == ("BACKUPVAULT_NAME") || resource.name.extract("projects/PROJECT_ID/locations/LOCATION/backupVaults
        /{name}") == ("BACKUPVAULT_NAME") || resource.name.extract("operations/{op}") != ""
        

      替换以下内容:

      • BACKUPVAULT_NAME:备份保险库的名称。
      • PROJECT_ID:创建备份保险库的项目名称。
      • LOCATION:备份保险库的位置。

        如需为其他备份保险库添加访问权限,请根据需要附加其他“resource.name.startsWith”语句(使用“||”OR 逻辑运算符)。

        例如,以下语句授权了名为“bv-test”和“user-bv1”的备份保险库,这两个保险库都位于名为“testproject”的项目和“us-central1”位置。

        resource.name.extract("projects/testproject/locations/us-central1/backupVaults
        /{name}/") == ("bv-test") || resource.name.extract("projects/testproject/locations/us-central1/backupVaults
        /{name}") == ("bv-test") || resource.name.extract("projects/testproject/locations/us-central1/backupVaults
        /{name}/") == ("user-bv1") || resource.name.extract("projects/testproject/locations/us-central1/backupVaults
        /{name}") == ("user-bv1") || resource.name.extract("operations/{op}") != ""
        
    3. 点击保存

  9. 点击保存

后续步骤