本頁說明客戶自行管理的加密金鑰 (CMEK) 如何與資料庫移轉服務移轉工作搭配運作。
根據預設,資料庫遷移服務 (將 Oracle 資料庫遷移至 AlloyDB for PostgreSQL) 會加密靜態儲存的客戶內容。資料庫移轉服務 (適用於從 Oracle 遷移至 AlloyDB for PostgreSQL) 會處理加密作業,您不必採取其他動作。這個選項稱為「Google 預設加密」。
如果您想控管加密金鑰,可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),並搭配 CMEK 整合服務,包括資料庫遷移服務 (將 Oracle 資料遷移至 AlloyDB for PostgreSQL)。使用 Cloud KMS 金鑰可讓您控制金鑰的保護等級、位置、輪替時間表、使用權限和存取權,以及加密範圍。使用 Cloud KMS 還可讓您追蹤金鑰使用情形、查看稽核記錄,以及控管金鑰生命週期。您可以在 Cloud KMS 中控制及管理用來保護資料的對稱金鑰加密金鑰 (KEK),而非由 Google 擁有及管理這些金鑰。
使用 CMEK 設定資源後,資料庫遷移服務 (適用於 Oracle 到 AlloyDB for PostgreSQL) 資源的存取體驗,就如同使用 Google 預設加密技術。如要進一步瞭解加密選項,請參閱「客戶管理的加密金鑰 (CMEK)」。
資料庫移轉服務支援 CMEK 的區域
CMEK 適用於所有資料庫移轉服務位置。
使用 Cloud KMS Autokey 的 CMEK
您可以手動建立 CMEK 來保護資料庫移轉服務 (適用於從 Oracle 遷移至 AlloyDB for PostgreSQL) 資源,也可以使用 Cloud KMS Autokey。透過 Autokey,系統會在資料庫移轉服務中建立或更新資源時,視需要產生金鑰環和金鑰 (適用於從 Oracle 遷移至 PostgreSQL 的 AlloyDB)。如果尚未建立使用金鑰進行加密和解密作業的服務代理程式,系統會建立這些代理程式,並授予必要的 Identity and Access Management (IAM) 角色。詳情請參閱「Autokey 總覽」。
瞭解服務帳戶
如果資料庫遷移服務遷移作業已啟用 CMEK,您必須使用服務帳戶向 Cloud Key Management Service 要求金鑰存取權。
如要在專案中使用 CMEK,您必須擁有服務帳戶,並且授予服務帳戶金鑰存取權。服務帳戶必須位於專案內。服務帳戶會顯示在所有區域。
瞭解鍵
在 Cloud Key Management Service 中,您需要使用加密編譯金鑰建立金鑰環,並設定位置。在資料庫移轉服務中建立新的遷移工作時,請選取這個金鑰來加密遷移工作。
建立使用 CMEK 的新遷移作業時,您必須知道金鑰 ID 和金鑰區域。目的地資料庫必須位於與遷移工作相關聯的 CMEK 所在的相同地區。您可以為金鑰和目的地資料庫建立一個專案,也可以為每個項目建立不同的專案。
CMEK 採用下列格式:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
如何永久封鎖 CMEK 加密資料?
在某些情況下,您可能會想要永久銷毀使用 CMEK 加密的資料。為此,您必須銷毀 CMEK 版本。您無法銷毀金鑰環或金鑰,但可以銷毀金鑰的金鑰版本。
限制
使用 CMEK 時,下列限制適用:
您無法在執行中的遷移工作上更新 CMEK。
雖然您可以使用 CMEK 加密來源資料庫中的資料,但無法使用這些金鑰加密任何遷移工作中繼資料,例如遷移工作 ID、來源資料庫的 IP 位址等等。
使用 CMEK
您已瞭解 CMEK,現在可以為 CMEK 設定服務帳戶和金鑰。此外,您還會瞭解如何設定遷移工作以使用 CMEK。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 安裝並初始化 Cloud SDK。
- 請確認您已將資料庫遷移管理員角色指派給使用者帳戶。
-
Enable the Cloud Key Management Service API.
- 啟用資料庫移轉服務 API。
建立金鑰環和金鑰,並設定每個金鑰的位置。位置為 Google Cloud 區域。
複製或記下金鑰的 ID (
KMS_KEY_ID
) 和位置,以及鑰匙圈的 ID (KMS_KEYRING_ID
)。您需要這項資訊,才能將金鑰存取權授予服務帳戶。前往專案, 在資料庫移轉服務中建立遷移工作,然後在「進階加密選項」部分使用 CMEK。
- 服務帳戶使用者 (
roles/iam.serviceAccountUser
):包含列出服務帳戶、取得服務帳戶詳細資料,以及模擬服務帳戶的權限。 - 服務帳戶管理員 (
roles/iam.serviceAccountAdmin
):包含列出服務帳戶及取得服務帳戶詳細資料的權限。也包括建立、更新及刪除服務帳戶的權限,以及在服務帳戶中查看或變更資料庫遷移服務 (適用於 Oracle 到 AlloyDB for PostgreSQL) 政策的權限。 - 前往 Google Cloud 控制台的「Migration jobs」頁面。
- 按一下 [Create key ring] (建立金鑰環)。
- 新增「Key ring name」(金鑰環名稱)。請記下這個名稱,因為您需要在授予服務帳戶金鑰存取權時使用。
- 新增「金鑰環位置」。
- 按一下「建立」,「Create key」頁面隨即開啟。
- 新增「Key name」(金鑰名稱)。
- 選取「用途」 (對稱或非對稱)。
- 選取「輪替週期」和「開始日期」。
- 按一下 [建立]。
- 在「Keys」表格中,按一下最後一欄中的三點圖示,然後選取「Copy Resource ID」或將其記下來。這是
KMS_KEY_ID
。您必須具備KMS_KEY_ID
,才能將金鑰存取權授予服務帳戶。 - 建立新的金鑰環。
請記下這個名稱,因為您需要在授予服務帳戶金鑰存取權時使用。gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- 在金鑰環上建立金鑰。
請記下這個名稱,因為您需要在授予服務帳戶金鑰存取權時使用。gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
使用 CMEK 在資料庫移轉服務中建立遷移工作的工作流程
您在資料庫移轉服務中的遷移工作現在已啟用 CMEK。
建立服務帳戶
您必須為每個需要 CMEK 的專案建立服務帳戶。
如要讓使用者管理服務帳戶,請先為使用者授予以下其中一種角色:
目前,您只能使用 gcloud
指令建立 CMEK 所需的服務帳戶類型。
如要使用 gcloud
建立服務帳戶,請執行下列指令:
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
先前的命令會傳回服務帳戶名稱。您會在授予服務帳戶金鑰存取權的程序中使用這個服務帳戶名稱。
建立金鑰
您可以在資料庫遷移服務中,以與遷移作業相同的 Google Cloud 專案,或在個別使用者專案中建立鍵。Cloud KMS 金鑰圈位置必須與與遷移工作相關聯的目的地資料庫所在的區域相符。系統不支援多區域或全域金鑰。如果區域不相符,就無法建立遷移工作。
如要建立 Cloud KMS 金鑰,請按照下列步驟操作:
控制台
gcloud
將金鑰存取權授予服務帳戶
只有在使用 gcloud
或 API 時,才需要執行這個程序。
如要授予服務帳戶存取權,請使用下列程式碼:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@datamigrationiam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
使用 CMEK 在資料庫移轉服務中建立遷移工作
建立遷移工作時,您可以使用 CMEK 管理資料的加密設定。
停用再重新啟用金鑰版本
請參閱下列主題: