如要存取即時快照中擷取的資料,您必須從即時快照還原或建立新磁碟。
本頁說明如何從即時快照建立磁碟。建立磁碟後,您可以將磁碟連接至虛擬機器 (VM) 來使用。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1
) -
如要連線至可做為服務帳戶執行的 VM:
服務帳戶使用者 (v1) (
roles/iam.serviceAccountUser
) -
如何建立磁碟:
-
新磁碟目的地專案的
compute.disks.create
-
來源即時快照的
compute.instantSnapshots.useReadOnly
權限
-
新磁碟目的地專案的
從即時快照建立磁碟時,新磁碟一律會採用與快照來源磁碟相同的類型、儲存位置和加密方式。
您無法直接透過即時快照建立 VM,您必須從即時快照建立磁碟,然後使用新磁碟建立 VM。
如果即時快照的來源磁碟使用客戶自行管理或提供的加密金鑰,您必須在透過即時快照建立新磁碟時,提供相同的加密金鑰。
請參考以下範例。假設您有一個磁碟
DISK-1
,並使用客戶提供的加密金鑰 (CSEK) 進行加密KEY-1
。您也從DISK-1
建立了即時快照IS-1
。 如要從IS-1
建立新磁碟,您必須在建立新磁碟時提供相同的金鑰KEY-1
。如果磁碟是以客戶自行管理的加密金鑰 (CMEK) 加密,只有在使用 REST 或 gcloud CLI 建立磁碟時,才需要提供金鑰。如果您使用Google Cloud 控制台,則不需要指定加密金鑰。
- Google-owned and Google-managed encryption keys。這是預設設定。
- 由客戶管理的加密金鑰 (CMEK)
- 客戶提供的加密金鑰 (CSEK)。
找出要還原的即時快照:
前往 Google Cloud 控制台的「快照」頁面。
按一下「即時快照」分頁標籤。
在「Name」(名稱) 欄中,按一下要還原的即時快照名稱。
按一下 [Create Disk] (建立磁碟)。
在「Name」(名稱) 欄位中,輸入磁碟的新名稱。
選用:在「說明」欄位中輸入其他詳細資料。
確認「磁碟來源類型」為「即時快照」。
在「來源即時快照」清單中,選擇即時快照。
選用:設定磁碟的其他自訂項目。
- 輸入大小:在「Size」(大小) 欄位中,指定磁碟大小 (以 GB 為單位)。 大小必須等於或大於快照來源磁碟的大小。
- 排定備份作業:如要讓 Compute Engine 定期為這個新磁碟建立標準快照,請選取「啟用快照排程」核取方塊,然後選擇快照排程。否則請取消勾選核取方塊。
選用:如要整理專案,請新增一或多個標籤。
如要建立磁碟,請按一下「建立」。
DISK_NAME
:新磁碟的名稱。ZONE
:新磁碟的可用區,例如europe-west1-a
。SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。DISK_NAME
:新磁碟的名稱。REGION
:地區磁碟所在的地區,例如:europe-west1
。SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。ZONE1,ZONE2
:該地區中這兩個磁碟備用資源所在的區域,例如:europe-west1-b,europe-west1-c
。PROJECT
:要在其中建立新磁碟的專案。SOURCE_ZONE
:即時快照所在的可用區,例如us-central1-a
。磁碟會在這個可用區中建立。NEW_DISK_NAME
:新磁碟的專屬名稱。SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。PROJECT
:要在其中建立新磁碟的專案。SOURCE_REGION
:即時快照所在的區域。 磁碟是在這個區域中建立。NEW_DISK_NAME
:新磁碟的專屬名稱。SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。ZONE1,ZONE2
:兩個磁碟副本所在的區域,例如europe-west1-b
、europe-west1-c
。- 在「解密」部分,於「加密金鑰」欄位中輸入加密金鑰。
- 如果金鑰已使用公開 RSA 金鑰包裝,請選取「經過包裝的金鑰」。
NEW_DISK_NAME
:新磁碟的名稱。SOURCE_ZONE
:即時快照的儲存區域,例如europe-west1-a
。-
SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。 KMS_PROJECT_NAME
:包含金鑰的專案。KEYRING_LOCATION
:金鑰所屬金鑰環的位置。 如果金鑰環是全域,請指定global
。否則,請指定金鑰環所在的區域名稱,例如us-west1
。KEY_RING_NAME
:包含金鑰的金鑰環名稱,例如key-ring-1
。KEY_NAME
:用於加密磁碟的金鑰名稱。NEW_DISK_NAME
:新磁碟的名稱。SOURCE_ZONE
:即時快照的儲存區域,例如europe-west1-a
。-
SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。 CSEK_JSON_FILE
:包含金鑰的 JSON 檔案路徑。請參閱 CSEK 檔案格式範例。--region
:新磁碟的區域--replica-zones
:該地區中這兩個磁碟備用資源所在的區域。NEW_DISK_NAME
:新磁碟的專屬名稱。PROJECT
:要在其中建立新磁碟的專案。SOURCE_ZONE
:即時快照所在的可用區,例如us-central1-a
。磁碟會在這個可用區中建立。SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。KMS_PROJECT
:包含金鑰的專案。LOCATION
:金鑰所屬金鑰環的位置。如果金鑰環是全域,請指定global
。否則,請指定金鑰環所在的區域名稱,例如us-west1
。KEY_RING
:包含金鑰的金鑰環名稱,例如key-ring-1
。KEY
:用於加密磁碟的金鑰名稱。PROJECT
:要在其中建立新磁碟的專案。SOURCE_ZONE
:即時快照所在的可用區,例如us-central1-a
。磁碟會在這個可用區中建立。NEW_DISK_NAME
:新磁碟的專屬名稱。SOURCE_INSTANT_SNAPSHOT_NAME
:來源即時快照的名稱。RAW_ENCRYPTION_KEY
:用於加密即時快照及其來源磁碟的金鑰,例如SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0=
。對
disks.insert
方法發出POST
要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/insert
在要求主體的
diskEncryptionKey.rsaEncryptedKey
屬性中指定金鑰:"diskEncryptionKey": { "rsaEncryptedKey": "RSA_ENCRYPTED_KEY" }
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
必要角色和權限
如要取得從即時快照建立磁碟所需的權限,請要求管理員授予您專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義的角色具備從即時快照建立磁碟所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要透過即時快照建立磁碟,必須具備下列權限:
限制
相關限制如下:
透過即時快照建立磁碟
即時快照會採用與來源磁碟相同的加密方式。 從即時快照建立磁碟的步驟,取決於即時快照來源磁碟的加密方式。
來源磁碟會透過下列其中一種方法加密:
如要瞭解特定磁碟的加密方式,請參閱查看磁碟加密資訊。
透過以預設加密方式加密的即時快照建立磁碟
您可以使用 gcloud CLI、 Google Cloud 控制台或 REST,從即時快照建立磁碟。
主控台
gcloud
使用
gcloud compute disks create
指令。您指定的引數取決於要建立區域或地區磁碟。建立可用區磁碟
使用
--zone
旗標指定可用區:gcloud compute disks create DISK_NAME --zone=ZONE \ --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME
更改下列內容:
建立區域磁碟
使用
--region
指定區域,並使用--replica-zones
指定新磁碟的目標複製區域。gcloud compute disks create DISK_NAME \ --region=REGION \ --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \ --replica-zones=ZONE1,ZONE2
更改下列內容:
REST
如要從即時快照建立區域或地區磁碟,請使用
disks.insert
方法。新磁碟的類型必須與即時快照來源磁碟的類型相同。舉例來說,您無法從區域磁碟的快照建立區域磁碟。建立可用區磁碟
發出
POST
要求,並指定來源即時快照。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/SOURCE_ZONE/disks/insert { "name": "NEW_DISK_NAME", "sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME" }
更改下列內容:
建立區域磁碟
發出
POST
要求,指定來源即時快照和磁碟應複製到的區域。POST https://compute.googleapis.com/compute/v1/projects/PROJECT/region/SOURCE_REGION/disks/insert { "name": "NEW_DISK_NAME", "sourceInstantSnapshot": "projects/PROJECT/regions/SOURCE_REGION/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME", "replicaZones": [ "projects/PROJECT/zones/ZONE1", "projects/PROJECT/zones/ZONE2" ] }
更改下列內容:
API 要求回應
如果
POST
要求成功,回應主體會是物件,您可以輪詢該物件,取得磁碟建立狀態。詳情請參閱「處理 API 回應」。透過以 CMEK 或 CSEK 加密的即時快照建立磁碟
主控台
如果即時快照使用 Google 預設或 CMEK 加密,當您從即時快照建立磁碟時, Google Cloud 控制台會自動提供加密金鑰。否則,如果即時快照經過 CSEK 加密,您必須提供加密金鑰才能建立磁碟。
請按照「Google 代管的加密」一節中的步驟操作,並按照下列操作說明指定加密金鑰:
gcloud
使用
gcloud compute disks create
指令。如果來源磁碟經過 CMEK 加密,請使用
--kms-key
參數提供金鑰名稱。如果來源磁碟經過 CSEK 加密,請使用
--csek-key-file
參數指定來源磁碟的加密金鑰。CMEK
如要從 CMEK 加密即時快照建立區域磁碟,請使用下列指令:
gcloud compute disks create NEW_DISK_NAME \ --zone=SOURCE_ZONE \ --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \ --kms-key=projects/KMS_PROJECT_NAME/locations/KEYRING_LOCATION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
更改下列內容:
CSEK
如要從 CSEK 加密的即時快照建立區域磁碟,請使用下列指令:
gcloud compute disks create NEW_DISK_NAME \ --zone=SOURCE_ZONE \ --source-instant-snapshot=SOURCE_INSTANT_SNAPSHOT_NAME \ --csek-key-file=PATH_TO_CSEK_JSON_FILE
更改下列內容:
如要建立地區磁碟,請將上述範例中的
--zone
標記替換為下列標記:REST
如要從以 CMEK 或 CSEK 加密的即時快照建立區域或地區磁碟,請使用「Google 管理的加密」一節中列出的屬性,向
disks.insert
方法提出POST
要求。此外,請在
diskEncryptionKey
欄位中提供來源磁碟的加密金鑰。diskEncryptionKey
欄位的屬性取決於磁碟是否經過 CMEK 或 CSEK 加密。下列範例說明如何為每種加密類型建立新的區域磁碟。
CMEK
在要求主體中,使用
diskEncryptionKey.kmsKeyName
屬性指定金鑰名稱:{ "name": "NEW_DISK_NAME", "sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/SOURCE_INSTANT_SNAPSHOT_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT/locations/LOCATION/keyRings/KEYRING_LOCATION/cryptoKeys/KEY_NAME" } }
更改下列內容:
CSEK
要求主體取決於用於加密即時快照的 CSEK 是否經過 RSA 加密。
如要使用原始 (非 RSA 加密) 金鑰,請在要求主體的
diskEncryptionKey.rawKey
屬性中指定金鑰:POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/SOURCE_ZONE/disks/insert { "name": "NEW_DISK_NAME", "sourceInstantSnapshot": "projects/PROJECT/zones/SOURCE_ZONE/instantSnapshots/INSTANT_SNAPSHOT_NAME, "diskEncryptionKey": { "rawKey": "RAW_ENCRYPTION_KEY" } }
將下列項目替換為對應的值:
如要使用 RSA 加密金鑰,請按照下列方式修改上述範例:
將
RSA_ENCRYPTED_KEY
替換為加密金鑰。API 要求回應
如果
POST
要求成功,回應主體會是物件,您可以輪詢該物件,取得磁碟建立狀態。詳情請參閱「處理 API 回應」。除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-14 (世界標準時間)。
-