建立及管理備份保險庫

總覽

本頁面說明如何在Google Cloud 控制台中建立及管理備份保存庫。

事前準備

如要取得建立及管理備份儲存空間所需的權限,請要求管理員在您要建立備份儲存空間的專案中,授予您 Backup and DR Backup Vault Admin (roles/backupdr.backupvaultAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備建立及管理備份保存庫所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要建立及管理備份儲存空間,必須具備下列權限:

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

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

建立 backup vault

請按照下列操作說明建立備份保存庫。

控制台

  1. 前往 Google Cloud 控制台的「備份保存庫」頁面。

    前往備份保存庫

  2. 按一下「建立備份保存庫」

  3. 在「建立備份保存庫」頁面中,輸入備份保存庫資訊。

    1. 在「Name your backup vault」(為備份保存庫命名) 欄位中,輸入符合備份保存庫名稱規定的名稱。
    2. 按一下「繼續」
    3. 在「選擇資料的儲存位置」清單中,選取要永久儲存備份資料的位置
    4. 按一下「繼續」
    5. 在「Prevent backup deletion」(防止備份遭到刪除) 欄位中,輸入最短強制保留期限,定義備份受到刪除保護的時間長度。最短 1 天,最長 99 年。

      如要鎖定最短強制保留期限的值,請選取「鎖定強制保留期限」,然後按一下 圖示,並從日曆中選取日期。

      • 在備份規則指定的時間範圍內禁止刪除:您可以將保存庫設為沿用備份方案中設定的「在以下時間後刪除備份」值。您無法手動刪除備份,系統會根據相關聯備份方案中的值刪除備份。

      • 鎖定強制執行的保留期限:如要鎖定強制執行的最短保留期限值,請勾選這個選項,然後按一下 圖示,並從日曆中選取日期。

    6. 如要使用自己的加密金鑰,請在「Encryption」(加密) 下選取「Cloud KMS Key」(Cloud KMS 金鑰),然後從下拉式選單中選取要使用的金鑰。系統只會顯示與備份保存庫位於相同位置的金鑰。

    只有收到邀請的單位才能使用永久磁碟的 CMEK。如要為專案中的 Persistent Disk 申請 CMEK 存取權,請與業務代表聯絡。 Google Cloud
    1. 在「定義 backup vault 的存取權」部分,選取選項來定義 backup vault 的存取限制。如未選取任何選項,系統會建立備份保存庫,並套用「Restrict access to current organization」(限制存取目前機構) 限制。
  4. 點選「建立」

gcloud

  1. 在下列其中一種開發環境中設定 gcloud CLI:
  2. Cloud Shell:如要使用已設定 gcloud CLI 的線上終端機,請啟用 Cloud Shell。 頁面底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。工作階段可能要幾秒鐘的時間才能初始化。
  3. 本機殼層:如要使用本機開發環境,請安裝初始化 gcloud CLI。

  4. 建立備份保存庫。

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

    更改下列內容:

    • BACKUPVAULT_NAME:備份儲存空間的名稱。
    • PROJECT_ID:您要在當中建立備份保存庫的專案名稱。
    • LOCATION:要建立備份保存庫的位置。
    • RETENTION_PERIOD_INHERITANCE:這個備份保存庫中備份的強制保留期限結束時間的繼承模式。設定後即無法變更繼承模式。預設值為 inherit-vault-retention

      • 如果設為 inherit-vault-retention,備份保留期限會從 backup vault 繼承。
      • 如果設為「match-backup-expire-time」,備份保留期限會與備份到期時間相同。
    • RETENTION_PERIOD_IN_DAYS:backup vault 中每個備份都無法刪除的時間長度。最短為 1 天,最長為 99 年。舉例來說,2w1d 是兩週又一天。詳情請參閱備份保存庫最短強制保留期限

    • KMS_KEY:在 Cloud Key Management Service 中定義的金鑰名稱

    • ACCESS_RESTRICTION:指定 backup vault 的存取限制。允許的值為 within-projectwithin-orgunrestrictedwithin-org-but-unrestricted-for-ba。如未指定值,備份保存庫會以 within-org 限制建立。

    只有收到邀請的單位才能使用永久磁碟的 CMEK。如要為專案中的 Persistent Disk 申請 CMEK 存取權,請與業務代表聯絡。 Google Cloud
  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. 列出 backup vault。

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

    更改下列內容:

    • PROJECT_ID:備份保存庫建立所在的專案名稱。
    • LOCATION:建立備份保存庫的位置。

查看 backup vault 詳細資料

備份保存庫詳細資料頁面會顯示設定資訊,並允許您更新可編輯的項目。

備份保存庫詳細資料頁面的「鎖定狀態」欄位可能顯示下列其中一個值:

  • 已解鎖:備份保管箱未套用鎖定,也沒有待處理的鎖定作業。
  • 鎖定將於 datetime 生效:已設定鎖定,將於指定日期對備份保存庫生效。
  • 已鎖定:備份保存庫的最短強制保留期限值已鎖定,無法減少或移除。

請按照下列指示查看備份保存庫詳細資料。

控制台

  1. 前往 Google Cloud 控制台的「備份保存庫」頁面。

    前往備份保存庫

    這個頁面會列出所選專案中的 backup vault。

  2. 按一下要查看的備份保存庫。

    備份保存庫詳細資料頁面會顯示設定資訊,包括最短強制保留期限值和鎖定狀態。

gcloud

  1. 查看 backup vault 詳細資料。

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

    更改下列內容:

    • BACKUPVAULT_NAME:備份保存庫的名稱。
    • LOCATION:備份保存庫的位置。
    • PROJECT_ID:建立備份保存庫的專案名稱。

更新現有 backup vault 的最短強制保留期限

您可以根據鎖定狀態更新最短強制保留期限。

  • 已解鎖:您可以延長或縮短最短強制保留期限。
  • 已鎖定:最短強制保留期限只能延長。

生效日當天,這項鎖定設定就會永久生效,無法移除。不過,如果尚未到期,您可以移除鎖定,這樣系統就會清除原先指定的生效日期。

最低強制保留期限值的變更只會套用至更新後建立的備份。變更最短強制保留期限的值,不會影響 backup vault 中現有備份的強制保留期限。

增加 backup vault 的強制保留期限時,backup vault 的強制保留期限不得超過您將儲存在 backup vault 的任何備份,在備份方案中的保留期限。如果變更後的值超過備份保留期限,備份和災難復原服務會根據備份方案類型,以不同方式處理這些變更。

  • Google Cloud 主機方案:無法變更備份保存庫值。

  • 管理控制台方案:允許變更備份保存庫值,但您應立即更新相關備份方案,指定的保留期限必須等於或長於更新後的備份保存庫強制保留期限下限。

    如果方案保留期限短於 backup vault 最短強制保留期限,系統會以 backup vault 的最短強制保留期限為準,建立備份並強制套用該期限。此外,備份的到期時間會設在強制保留期限屆滿之後。

請按照下列操作說明,更新現有 backup vault 的最短強制保留期限。

控制台

  1. 前往 Google Cloud 控制台的「備份保存庫」頁面。

    前往備份保存庫

  2. 在備份儲存庫清單中,按一下要更新的備份儲存庫名稱。

  3. 按一下 圖示。

  4. 在「編輯最短強制保留期限」對話方塊中,輸入「新的最短強制保留期限」值。這是指備份保存庫中每個備份都無法刪除的時間範圍。最短為 1 天,最長為 99 年。

  5. 如要鎖定最短強制保留期限,請選取「鎖定強制保留期限」核取方塊,然後從日曆中選取鎖定生效日期。

  6. 按一下 [儲存]

gcloud

  1. 更新現有 backup vault 的最短強制保留期限。

      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:backup vault 中每個備份都無法刪除的時間長度。最短 1 天,最長 99 年。

強制保留期限的資源限制

將某些資源類型備份到 backup vault 時,會受到與 backup vault 最短強制保留期限設定相容性的限制。

資源類型 最短強制保留期限 (備份) 最短強制保留期限 (記錄) 禁止手動刪除
AlloyDB for PostgreSQL 1 到 365 天 1 到 35 天 必填
Cloud SQL 1 天至 99 年 不適用 選用
Compute Engine 執行個體 1 天至 99 年 不適用 選用
Compute Engine 磁碟 1 天至 99 年 不適用 選用
Filestore 1 天至 99 年 不適用 選用

PostgreSQL 適用的 AlloyDB 和 Cloud SQL 記錄會儲存在 backup vault 以外的地方。

刪除備份保存庫

只有在 backup vault 不含備份時,才能刪除。如要刪除備份保存庫,請先刪除保存庫中所有符合刪除資格的備份。

請按照下列操作說明刪除備份保管庫。

控制台

  1. 前往 Google Cloud 控制台的「備份保存庫」頁面。

    前往備份保存庫

  2. 按一下要刪除的備份保存庫。

  3. 按一下「Delete」(刪除)

  4. 在出現的重疊視窗中,確認要刪除備份保存庫及其內容。

  5. 按一下「Delete」(刪除)

gcloud

  1. 刪除備份保存庫。

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

    更改下列內容:

    • BACKUPVAULT_NAME:備份保存庫的名稱。
    • PROJECT_ID:建立備份保存庫的專案名稱。
    • LOCATION:備份保存庫的位置。

授予備份儲存空間服務代理和備份/復原設備的存取權

每個備份保存庫都會連結至專屬的服務代理程式。 對於某些資源類型,系統會利用服務代理代表備份和災難復原服務執行動作,因此必須在備份保存庫服務代理需要存取的專案中,授予適當的權限。服務代理是 Google 代管的服務帳戶,詳情請參閱「服務代理」。

對於某些資源類型 (例如 Google Cloud VMware Engine、Oracle 資料庫和 SQL Server 資料庫),Backup and DR 備份/復原設備必須對備份保存庫執行動作。在這種情況下,備份/復原設備必須具備備份保存庫的適當權限。此外,目標備份保存庫必須設為 UNRESTRICTED 或 WITHIN_ORG_BUT_UNRESTRICTED_FOR_BA 存取限制

將角色授予服務代理

找到服務代理的電子郵件地址後,即可將角色授予備份保管箱服務代理,就像授予任何其他主體角色一樣。

如要備份備份儲存庫所在專案以外的 Compute Engine VM 執行個體,您必須在 Compute Engine 專案中,將 Backup and DR Compute Engine 運算子 (roles/backupdr.computeEngineOperator) 身分與存取權管理角色授予備份儲存庫服務代理。不過,如要備份與 backup vault 位於相同專案的 Compute Engine VM 執行個體,則無須授予任何角色。

如要還原 Compute Engine 執行個體,您必須在還原專案中,將備份和災難復原 Compute Engine 操作者 (roles/backupdr.computeEngineOperator) IAM 角色授予 backup vault 服務代理。

請按照下列操作說明,將角色授予服務代理程式。

控制台

  1. 前往 Google Cloud 控制台的「備份保存庫」頁面。

    前往備份保存庫

  2. 按一下備份儲存空間名稱,然後複製服務代理的電子郵件地址。

  3. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。

    前往「IAM」(身分與存取權管理) 頁面

  4. 在「New principles」(新增主體) 欄位中,輸入服務專員的電子郵件地址。

  5. 在「Select a role」(選取角色) 清單中,根據資源類型選取適當的角色。舉例來說,如要備份備份保存庫所在專案以外的 Compute Engine 執行個體,請選取「備份和災難復原 Compute Engine 操作者」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 執行個體,請選取「備份和災難復原 Compute Engine 操作者」(roles/backupdr.computeEngineOperator) IAM 角色。

將角色授予備份/復原設備服務帳戶

只有在設備服務帳戶取得 backup vault 專案的備份和災難復原 Backup Vault Accessor (roles/backupdr.backupvaultAccessor) 身分與存取權管理角色後,您才能從備份/復原設備專案存取 backup vault。如未獲派這個角色,您就無法存取備份保管箱,因此無法完成設定來啟用備份建立作業。

將角色授予備份/復原設備服務帳戶後,您可以使用管理控制台,將 Google Cloud VMware Engine、Oracle 資料庫和 SQL Server 資料庫備份及還原至備份保存庫。

請按照下列操作說明,將角色授予備份/復原設備服務帳戶:

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面,找到建立設備的執行個體。

    前往 VM 執行個體頁面

  2. 按一下要取得服務帳戶的 Compute Engine 執行個體。

  3. 在「API and identity management」(API 和身分管理) 部分,從「Service account」(服務帳戶) 欄位複製服務帳戶的電子郵件地址。

  4. 前往 Google Cloud 控制台,在備份保存庫專案中查看「IAM」角色。

    前往「IAM」(身分與存取權管理) 頁面

  5. 按一下「授予存取權」

  6. 在「新增主體」欄位中,輸入設備的服務帳戶電子郵件地址。

  7. 在「選取角色」清單中,選取「備份和災難復原備份儲存空間存取者」角色。

  8. 選用:如要限制備份/復原裝置只能存取特定備份儲存空間,請按一下「Backup and DR Backup Vault Accessor」(備份和災難復原備份儲存空間存取者) 角色旁邊的「Add IAM condition」(新增 IAM 條件)

    1. 在「Title」(標題) 欄位中,輸入條件名稱。
    2. 按一下「條件編輯器」分頁標籤。

      • 在「運算式 CEL 編輯器」欄位中,輸入下列運算式。

        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. 按一下 [儲存]

後續步驟