本頁說明如何為客戶自行管理的加密金鑰設定服務帳戶和金鑰,以及如何建立使用手動建立的客戶自行管理加密金鑰的執行個體。如要進一步瞭解如何搭配使用客戶管理的加密金鑰與 Cloud SQL,請參閱客戶管理的加密金鑰總覽。
事前準備
- 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.
-
Install the gcloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
Install the gcloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 確認使用者帳戶具備 Cloud SQL 管理員角色。
-
Enable the Cloud Key Management Service API.
-
Enable the Cloud SQL Admin API.
- 僅限 gcloud 和 API 使用者:為每個需要客戶管理加密金鑰的專案建立服務帳戶。
- 建立金鑰環和金鑰,並為每個金鑰設定位置。位置為 Google Cloud 區域。
- 僅限 gcloud 和 API 使用者: 授予服務帳戶金鑰存取權。
- 記下金鑰 ID (KMS_KEY_ID)、金鑰位置 (GCP_REGION) 和金鑰環 ID (KMS_KEYRING_ID)。
- 前往專案並建立 Cloud SQL 執行個體,並使用下列選項:
- 與客戶管理的加密金鑰相同的位置
- 客戶管理的金鑰設定
- 客戶自行管理的加密金鑰 ID
- 服務帳戶使用者 (
roles/iam.serviceAccountUser
):包含列出服務帳戶、取得服務帳戶詳細資料,以及模擬服務帳戶的權限。 - 服務帳戶管理員 (
roles/iam.serviceAccountAdmin
):包括列出服務帳戶及取得服務帳戶詳細資料的權限。也包括建立、更新及刪除服務帳戶的權限,以及查看或變更服務帳戶的 PostgreSQL 適用的 Cloud SQL 政策。 - 啟動 Cloud Shell。
-
設定要套用 Terraform 設定的預設 Google Cloud 專案。
每項專案只需要執行一次這個指令,且可以在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確值,環境變數就會遭到覆寫。
-
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱的副檔名必須是
.tf
,例如main.tf
。在本教學課程中,這個檔案稱為main.tf
。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您正在學習教學課程,可以複製每個章節或步驟中的範例程式碼。
將範例程式碼複製到新建立的
main.tf
。視需要從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您使用這個方法。
- 查看並修改範例參數,套用至您的環境。
- 儲存變更。
-
初始化 Terraform。每個目錄只需執行一次這項操作。
terraform init
如要使用最新版 Google 供應商,請加入
-upgrade
選項:terraform init -upgrade
-
檢查設定,確認 Terraform 即將建立或更新的資源符合您的預期:
terraform plan
視需要修正設定。
-
執行下列指令,並在提示中輸入
yes
,即可套用 Terraform 設定:terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
- 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。
-
前往 Google Cloud 控制台的「金鑰管理」頁面。
- 按一下 [Create key ring] (建立金鑰環)。
- 新增「Key ring name」(金鑰環名稱)。請記下這個名稱,因為您需要這個名稱,才能授予服務帳戶金鑰存取權。
- 新增金鑰環位置。
- 按一下「建立」,「建立金鑰」頁面隨即開啟。
- 新增金鑰名稱。
- 針對「Purpose」(目的),選取 Symmetric encrypt/decrypt。
- 選取「輪替週期」和「開始日期」。
- 點選「建立」。
- 在「金鑰」表格中,按一下最後一欄的三點圖示,然後選取「複製資源 ID」或記下該 ID。這是 KMS_KEY_ID。將金鑰存取權授予服務帳戶時,您需要 KMS_KEY_ID。
- 建立新的金鑰環。
請記下這個名稱,因為您需要這個名稱,才能授予金鑰服務帳戶的存取權。gcloud kms keyrings create KMS_KEYRING_ID \ --location=GCP_REGION
- 在金鑰環上建立金鑰。
請記下這個名稱,因為您需要這個名稱,才能授予金鑰服務帳戶的存取權。gcloud kms keys create KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
-
前往 Google Cloud 控制台的「金鑰管理」頁面。
- 如要選取代管金鑰的專案,請使用專案選取器。
- 按一下金鑰環名稱。
- 按一下金鑰名稱。
- 按一下「Permissions」(權限) 分頁標籤。
- 如要開啟面板,請按一下「授予存取權」。
- 輸入服務帳戶做為主體,並選取「Cloud KMS CryptoKey Encrypter/Decrypter」做為角色。
- 按一下 [儲存]。
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 點選「建立執行個體」。
- 選擇資料庫引擎。
- 輸入執行個體名稱。請勿在執行個體名稱中加入敏感資訊或個人識別資訊,因為外部使用者可以看見此名稱。您不需要在執行個體名稱中包含專案 ID,系統會在適當地方 (例如在記錄檔中) 自動加入。
- 輸入「
'root'@'%'
」使用者的密碼。 - 設定執行個體的區域。 您的執行個體必須與存取該執行個體的資源位於相同地區。在大多數情況下,您不需要指定區域。
- 在「設定選項」部分,選取所有設定選項,直到「機器類型和儲存空間」為止。
- 展開「機器類型和儲存空間」。
- 在「Encryption」(加密) 區段中,選取「Customer-managed key」(客戶管理的金鑰)。
- 從下拉式選單中選取 KMS 金鑰,或手動輸入 KMS_KEY_ID。系統只會顯示與執行個體位於相同專案和區域的 KMS 金鑰。系統會使用金鑰的主要金鑰版本,因此如果金鑰名稱中提供金鑰版本,系統會將其修剪掉。如要選擇屬於不同專案但位於相同區域的 KMS 金鑰,請選取「找不到金鑰?輸入金鑰資源 ID,並輸入先前擷取的 KMS_KEY_ID。
- 如果服務帳戶沒有權限使用所選金鑰進行加密/解密,系統會顯示訊息。如果發生這種情況,請按一下「授權」,為所選 KMS 金鑰上的服務帳戶授予
roles/cloudkms.cryptoKeyEncrypterDecrypter>
IAM 角色。 - 選取設定選項後,按一下「建立」。
- 系統會顯示訊息,說明使用客戶管理式加密金鑰的影響。請詳閱並確認,以便繼續建立執行個體。
- 如要停用防刪除功能,請在 Terraform 設定檔中將
deletion_protection
引數設為false
。deletion_protection = "false"
- 執行下列指令,並在提示中輸入
yes
,套用更新的 Terraform 設定:terraform apply
-
執行下列指令,並在提示中輸入
yes
,移除先前透過 Terraform 設定套用的資源:terraform destroy
- project-id:專案 ID
- instance-id:執行個體 ID
- region:區域
- database-version:列舉版本字串 (例如 POSTGRES_12)
- kms-resource-id:建立金鑰時收到的 ID。
- project-id:專案 ID
- instance-id:執行個體 ID
- region:區域
- database-version:列舉版本字串 (例如 POSTGRES_12)
- kms-resource-id:建立金鑰時收到的 ID。
- 「Encryption」(加密) 會顯示「customer-managed」(客戶管理)。
- 系統會顯示副本的「加密金鑰」。
- 系統會顯示「系統會使用主要執行個體的客戶管理金鑰,為您的備用資源進行加密。如有任何人刪除這組金鑰,透過這組金鑰加密的所有資料都會永久遺失。"
- 「Encryption」(加密) 會顯示「customer-managed」(客戶管理)。
- 系統會顯示複製項目的加密金鑰。
- 系統會顯示訊息:「系統會使用來源執行個體的客戶管理金鑰來加密您的本機副本。如有任何人刪除這組金鑰,透過這組金鑰加密的所有資料都會永久遺失。"
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 在執行個體清單中向右捲動,直到看到「加密」資料欄為止。這個欄會顯示「Google 管理」和「客戶管理」。
- 按一下執行個體名稱,開啟「Overview」(總覽) 頁面。客戶自行管理的加密金鑰會列在「設定」窗格中。
如要使用新版本重新加密執行個體或副本,您需要新的主要金鑰版本。如果執行個體需要新的金鑰版本,您必須使用 Cloud Key Management Service 輪替金鑰。如要輪替主要金鑰,請參閱「輪替金鑰」。
金鑰輪替完成後,請等待主鍵變更傳播完畢,再重新加密執行個體。如果金鑰版本變更不一致,執行個體會在重新加密後繼續使用舊版金鑰。詳情請參閱金鑰版本的一致性。
-
前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。
- 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
- 在「設定」部分,按一下「重新加密執行個體」。
- 在隨即顯示的對話方塊中,按一下「重新加密」,確認選取項目。
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
- PROJECT_ID:專案 ID
- INSTANCE_ID:執行個體 ID
- 重新加密作業進行期間,您無法對執行個體執行任何其他管理作業。
- 重新加密作業會觸發停機,停機時間取決於執行個體或副本大小。
- 執行個體加密時,執行個體的副本不會重新加密。您必須分別重新加密每個副本。
- 重新加密執行個體時,備份不會自動使用新的金鑰版本重新加密。如要將備份或時間點還原至備份建立後的時間,您必須保留備份加密時使用的 Cloud KMS 金鑰版本。
- 如果執行個體加密使用的 Cloud KMS 金鑰經過輪替,之後建立的備份檔會自動使用該金鑰的主要金鑰版本,即使執行個體並非使用這個金鑰版本加密也一樣。
- 設定執行個體的存取權。
- 使用用戶端連線至執行個體。
- 在執行個體上建立資料庫。
- 將資料匯入至執行個體。
- 建立執行個體上的使用者。
- 進一步瞭解執行個體設定。
- 瞭解如何為金鑰新增金鑰存取依據。
使用 CMEK 建立 Cloud SQL 執行個體的工作流程
Cloud SQL 執行個體現已啟用 CMEK。
建立服務帳戶
您需要為每個需要客戶管理加密金鑰的專案建立服務帳戶。
如要讓使用者管理服務帳戶,請先為使用者授予以下其中一種角色:
目前,您只能使用 gcloud CLI 指令,建立客戶自行管理的加密金鑰所需的服務帳戶類型。如果您使用控制台,Cloud SQL 會自動為您建立這個服務帳戶。
gcloud
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=PROJECT_ID
Terraform
如要建立服務帳戶,請使用 Terraform 資源。
套用變更
如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。
套用變更
上一個指令會傳回服務帳戶名稱。在「授予服務帳戶金鑰存取權」程序中,您會使用這個服務帳戶名稱。
建立金鑰
您可以在與 Cloud SQL 執行個體相同的 Google Cloud 專案中建立金鑰,也可以在個別使用者專案中建立金鑰。Cloud KMS 金鑰環位置必須與您要建立 Cloud SQL 執行個體的區域相符。多區域或全域金鑰不適用。如果區域不符,Cloud SQL 執行個體建立要求就會失敗。
如何建立 Cloud KMS 金鑰:
控制台
gcloud
Terraform
如要建立金鑰環,請使用 Terraform 資源。
如要建立金鑰,請使用 Terraform 資源。
套用 Terraform 設定:
terraform apply
授予服務帳戶金鑰存取權
使用 CMEK 建立 Cloud SQL 執行個體時,只有在使用 gcloud 或 API 時才需要執行這項程序。如果執行個體建立後發生權限問題,可以執行這項程序。
如要授予服務帳戶存取權,請按照下列步驟操作:
控制台
您也可以在專案 IAM 頁面中授予權限。
gcloud
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloud-sql.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Terraform
如要授予金鑰存取權,請使用 Terraform 資源。
套用 Terraform 設定:
terraform apply
建立採用 CMEK 的 Cloud SQL 執行個體
如要使用客戶管理的加密金鑰建立執行個體,請按照下列步驟操作:
控制台
gcloud
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --disk-encryption-key=KMS_KEY_ID \ --database-version=VERSION \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION \ --root-password=INSERT-PASSWORD-HERE
Terraform
如要使用 CMEK 建立執行個體,請使用 Terraform 資源。
刪除變更
如要刪除變更,請按照下列步驟操作:
REST v1
如要使用客戶管理的加密金鑰建立執行個體,請將diskEncryptionConfiguration
傳遞至指令。
使用任何要求資料之前,請先替換以下項目:
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
JSON 要求主體:
{ "name":"instance-id", "region":"region", "databaseVersion": "database-version", "diskEncryptionConfiguration" : { "kmsKeyName" : "kms-resource-id" }, "settings": { "backupConfiguration": { "pointInTimeRecoveryEnabled": true, "enabled":true } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
如要使用客戶管理的加密金鑰建立執行個體,請將diskEncryptionConfiguration
傳遞至指令。
使用任何要求資料之前,請先替換以下項目:
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
JSON 要求主體:
{ "name":"instance-id", "region":"region", "databaseVersion": "database-version", "diskEncryptionConfiguration" : { "kmsKeyName" : "kms-resource-id" }, "settings": { "backupConfiguration": { "pointInTimeRecoveryEnabled": true, "enabled":true } } }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
為啟用 CMEK 的執行個體建立備份
建立 Cloud SQL 執行個體的備份時,系統會使用與主要執行個體客戶管理金鑰相同的主金鑰版本,對備份進行加密。如果執行個體使用 Cloud KMS Autokey 建立的 CMEK,備份作業仍會使用與主要執行個體相同的金鑰;Autokey 不會為備份作業建立金鑰。
請參閱「建立及管理隨選和自動備份」。
「建立備份」表單會顯示以下訊息:「系統將使用這個執行個體的客戶管理加密金鑰主版本,對您的備份進行加密。如有任何人刪除或停用這個金鑰版本,透過此金鑰版本加密的所有備份資料都會永久遺失。您可以在 Cloud KMS 中檢查金鑰的主要版本。
在備份頁面中,啟用客戶自行管理的加密金鑰後,備份清單會新增兩欄。一個欄位顯示備份適用於啟用 CMEK 的執行個體,另一個欄位顯示用於加密備份的金鑰版本。
為啟用 CMEK 的執行個體建立副本
在相同區域中建立 Cloud SQL 執行個體的唯讀備用資源時,該資源會沿用父項執行個體相同的客戶管理加密金鑰。如果您在不同區域建立唯讀副本,系統會提供新的客戶管理加密金鑰清單供您選取。每個區域都會使用自己的金鑰集。
請參閱「建立唯讀備用資源」。
在「建立唯讀備用資源」頁面中,您會看到下列資訊:
如果是跨區域副本,會看到以下訊息:
「系統會使用您選取的客戶管理金鑰,替跨區域備用資源加密。如有任何人刪除這組金鑰,透過這組金鑰加密的所有資料都會永久遺失。"
建立啟用 CMEK 的執行個體副本
建立 Cloud SQL 執行個體的副本時,副本會沿用加密來源執行個體時使用的相同客戶管理加密金鑰。
請參閱「複製執行個體」。
「建立副本」頁面會顯示下列資訊:
查看已啟用 CMEK 的執行個體金鑰資訊
成功建立 Cloud SQL 執行個體後,您可以查看執行個體清單或執行個體總覽頁面,確認執行個體是使用客戶自行管理的加密金鑰建立。詳細資料也會顯示用於建立執行個體的金鑰。
重新加密已啟用 CMEK 的現有執行個體或副本
您可以使用最新的主要金鑰版本,重新加密現有的 Cloud SQL 執行個體和副本。如要進一步瞭解如何重新加密現有的 CMEK 啟用執行個體或副本,請參閱「關於金鑰」。
取得新的主要金鑰版本
重新加密已啟用 CMEK 的執行個體
金鑰輪替完成後,請重新加密現有的 CMEK 啟用執行個體或副本。
控制台
gcloud
如要重新加密執行個體或副本,請執行下列指令:
gcloud sql instances reencrypt INSTANCE_NAME
INSTANCE_NAME
替換為要重新加密的執行個體或副本名稱。
REST v1
如要使用新金鑰重新加密執行個體或副本,請執行下列指令:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
使用任何要求資料之前,請先替換以下項目:
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id
/instances/instance-id
", "status": "PENDING", "user": "user@example.com", "insertTime": "2023-06-28T21:19:09.503Z", "operationType": "REENCRYPT", "name": "operation-id
", "targetId": "instance-id
", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id
/operations/operation-id
", "targetProject": "project-id
" }
REST v1beta4
如要使用新金鑰重新加密執行個體或副本,請執行下列指令:POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
使用任何要求資料之前,請先替換以下項目:
HTTP 方法和網址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id
/instances/instance-id
", "status": "PENDING", "user": "user@example.com", "insertTime": "2023-06-28T21:22:13.663Z", "operationType": "REENCRYPT", "name": "operation-id
", "targetId": "instance-id
", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id
/operations/operation-id
", "targetProject": "project-id
" }
自動重新加密備份
使用新的主要金鑰版本重新加密主要執行個體時,Cloud SQL 會自動建立名為「重新加密備份」的隨選備份。
在 Cloud SQL 執行個體的備份清單中,重新加密備份會列為 on-demand
類型,並標示 backup created automatically for data before CMEK re-encryption
。
與其他隨選備份一樣,重新加密備份會一直存在,直到您刪除備份或執行個體為止。
重新加密的限制
重新加密執行個體時,請注意下列限制:
如需疑難排解,請參閱重新加密疑難排解表。
使用 Cloud External Key Manager (Cloud EKM)
如要保護 Cloud SQL 執行個體中的資料,您可以使用透過支援的外部金鑰管理合作夥伴代管的金鑰。詳情請參閱「Cloud External Key Manager」,包括「注意事項」一節。
準備好建立 Cloud EKM 金鑰後,請參閱「管理 Cloud EKM 金鑰」。建立金鑰後,請在建立 Cloud SQL 執行個體時提供金鑰名稱。
您可以將金鑰存取依據 (KAJ) 做為 Cloud EKM 的一部分使用。您可以使用 KAJ 查看每項 Cloud EKM 要求的原因。此外,您也可以根據提供的理由自動核准或拒絕要求。詳情請參閱總覽。
因此,KAJ 會針對每次解密資料的嘗試提供理由,進一步控管您的資料。
Google 無法控管外部金鑰管理合作夥伴系統中的金鑰供應情形。
停用及重新啟用金鑰版本
請參閱下列主題:
疑難排解
本節說明在設定或使用啟用 CMEK 的執行個體時,如果收到錯誤訊息,可以嘗試哪些做法。
Cloud KMS 發生錯誤,以及缺少角色或權限,都可能導致 Cloud SQL 管理員作業 (例如建立、複製或更新) 失敗。常見的失敗原因包括缺少 Cloud KMS 金鑰版本、Cloud KMS 金鑰版本已停用或銷毀、存取 Cloud KMS 金鑰版本的 IAM 權限不足,或是 Cloud KMS 金鑰版本與 Cloud SQL 執行個體位於不同區域。請使用下表排解常見問題。
客戶管理的加密金鑰疑難排解表
如果發生這個錯誤... | 可能原因如下: | 請嘗試以下做法: |
---|---|---|
找不到每個產品和專案的服務帳戶 | 服務帳戶名稱有誤。 | 請確認您已為正確的使用者專案建立服務帳戶。
|
無法授予服務帳戶存取權 | 使用者帳戶沒有授權存取這個金鑰版本的權限。 | 將「機構管理員」角色新增至使用者或服務帳戶。
|
Cloud KMS 金鑰版本已銷毀 | 金鑰版本已刪除。 | 如果金鑰版本已刪除,您就無法使用該版本加密或解密資料。 |
Cloud KMS 金鑰版本已停用 | 金鑰版本已停用。 | 重新啟用 Cloud KMS 金鑰版本。
|
使用 Cloud KMS 金鑰的權限不足 | 您用來在 Cloud SQL 執行個體上執行作業的使用者或服務帳戶缺少 cloudkms.cryptoKeyEncrypterDecrypter 角色,或是 Cloud KMS 金鑰版本不存在。 |
在主機金鑰的 Google Cloud 專案中,將cloudkms.cryptoKeyEncrypterDecrypter 角色新增至使用者或服務帳戶。如果帳戶已獲授角色,請參閱「建立金鑰」,瞭解如何建立新的金鑰版本。請參閱附註。 |
找不到 Cloud KMS 金鑰 | 金鑰版本不存在。 | 建立新的金鑰版本。請參閱「建立金鑰」。 請參閱附註。 |
Cloud SQL 執行個體和 Cloud KMS 金鑰版本位於不同區域 | Cloud KMS 金鑰版本和 Cloud SQL 執行個體必須位於相同區域。如果 Cloud KMS 金鑰版本位於全域或多區域,則無法使用。 | 在要建立執行個體的相同區域中,建立金鑰版本。請參閱「建立金鑰」。請參閱附註。 |
Cloud KMS 金鑰版本已還原,但執行個體仍處於暫停狀態 | 金鑰版本已停用或未授予適當權限。 | 重新啟用金鑰版本,並在金鑰所在的專案中,將 cloudkms.cryptoKeyEncrypterDecrypter 角色授予使用者或服務帳戶。 Google Cloud |
重新加密疑難排解表
如果發生這個錯誤... | 可能原因如下: | 請嘗試以下做法: |
---|---|---|
無法存取 Cloud KMS 金鑰,因此 CMEK 資源重新加密失敗。 請確認主要金鑰版本已啟用,且已正確授予權限。 | 金鑰版本已停用或未授予適當權限。 | 重新啟用 Cloud KMS 金鑰版本: 在金鑰所屬的 Google Cloud 專案中,確認已將
|
由於伺服器發生內部錯誤,CMEK 資源重新加密作業失敗。請稍後再試 | 發生伺服器內部錯誤。 | 請重試重新加密。詳情請參閱「重新加密現有啟用 CMEK 的執行個體或副本」一文。 |