根據預設,Google Cloud Managed Lustre 會加密靜態的客戶內容。受管理 Lustre 會為您處理加密作業,您不必採取任何其他動作。這項做法稱為「Google 預設加密機制」。
如要控管加密金鑰,您可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),搭配整合 CMEK 的服務 (包括 Managed Lustre)。使用 Cloud KMS 金鑰可控管保護等級、位置、輪替時間表、使用權限和存取權,以及加密範圍。 使用 Cloud KMS 還可追蹤金鑰用量、查看稽核記錄,以及控管金鑰生命週期。 您可以在 Cloud KMS 中控制及管理用來保護您資料的對稱金鑰加密金鑰 (KEK),而不是由 Google 擁有及管理。
使用 CMEK 設定資源後,存取 Managed Lustre 資源的體驗與使用 Google 預設加密機制類似。如要進一步瞭解加密選項,請參閱「客戶自行管理的加密金鑰 (CMEK)」。
下列 Managed Lustre 資料受到 CMEK 保護:
- 檔案資料
- 檔案系統中繼資料,例如檔案名稱
限制
Google Kubernetes Engine 不支援動態佈建受 CMEK 保護的 Managed Lustre 執行個體,但支援靜態佈建。
叢集工具包不支援受 CMEK 保護的受管理 Lustre 執行個體。
VPC Service Controls 不支援受 CMEK 保護的 Managed Lustre 執行個體。如果您嘗試在 VPC Service Controls 範圍內建立受 CMEK 保護的執行個體,執行個體建立作業會失敗。
建立 Cloud KMS 金鑰
建立啟用 CMEK 的 Lustre 執行個體前,您必須擁有 Cloud KMS 金鑰環和 Cloud KMS 金鑰。
Managed Lustre 支援三種保護層級:
- 軟體 (
SOFTWARE) - 硬體 (
HSM) - 透過網際網路從外部存取 (
EXTERNAL)
建立金鑰時,建議您在與 Managed Lustre 執行個體所在專案不同的專案中,建立 Cloud KMS 金鑰。請參閱「職責劃分」。
Cloud KMS 金鑰必須與您建立的 Managed Lustre 執行個體位於相同區域。
如何建立機碼:
- 如果沒有,請建立金鑰環。
- 建立 Cloud KMS 金鑰。
將 IAM 權限授予 Managed Lustre 服務代理程式
Managed Lustre 會使用服務代理程式存取資源,並代表您執行動作。您會授予服務代理 IAM 角色,以管理其存取權。建立 Managed Lustre 執行個體時,系統會自動建立 Managed Lustre 服務代理程式。
服務代理程式身分 ID 的格式為 service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com。
如果您將使用 Google Cloud 控制台建立受 CMEK 保護的 Managed Lustre,可以略過本節。 Google Cloud 控制台會在建立執行個體流程中授予必要權限。
建立或擷取服務代理
如果您還沒有 Managed Lustre 服務代理程式
如果您從未在專案中建立 Managed Lustre 執行個體,請執行下列指令手動建立服務代理程式:
gcloud beta services identity create \
--service=lustre.googleapis.com \
--project=PROJECT_NUMBER_OR_ID
將 PROJECT_NUMBER_OR_ID 替換為您要在其中建立 Managed Lustre 執行個體的專案編號或 ID。輸出結果會與下列內容相似:
Service identity created: service-1234567890@gcp-sa-lustre.iam.gserviceaccount.com
複製服務代理程式身分的值,以便在下一個步驟中使用。
如果您已建立 Managed Lustre 執行個體
如要建構服務代理程式身分,請取得專案編號。PROJECT_NUMBER與專案 ID不同:
- 專案 ID 是由字母、數字和連字號組成的唯一字串。建立專案時,您會指定專案 ID。例如:
example-project-123。 - 專案編號是系統自動產生的專案專屬 ID,僅由數字組成。例如:
1234567890。
如要取得特定專案 ID 的 PROJECT_NUMBER,請使用
gcloud projects describe指令:gcloud projects describe PROJECT_ID --format="value(projectNumber)"- 專案 ID 是由字母、數字和連字號組成的唯一字串。建立專案時,您會指定專案 ID。例如:
將傳回的專案編號複製到服務代理人身分:
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com複製服務代理程式身分,以便在下一個步驟中使用。
將權限授予服務代理
如要使用您的金鑰執行作業,受管理 Lustre 必須獲得授權。
您必須將 Cloud KMS 金鑰的 roles/cloudkms.cryptoKeyEncrypterDecrypter IAM 角色授予 Managed Lustre 服務代理。
使用 gcloud kms keys add-iam-policy-binding 指令:
gcloud kms keys add-iam-policy-binding KEY_NAME \
--keyring=KEY_RING \
--location=REGION \
--project=KMS_PROJECT_ID \
--member=serviceAccount:service-SERVICE_AGENT_IDENTITY \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter
請替換下列變數:
- KEY_NAME:Cloud KMS 金鑰的名稱。
- KEY_RING:金鑰所屬金鑰環的名稱。
- REGION:金鑰環所在的區域。
- KMS_PROJECT_ID:Cloud KMS 金鑰所在專案的 ID。
- SERVICE_AGENT_IDENTITY:上一個步驟中的 Managed Lustre 服務代理身分,格式為:
service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com。
建立已啟用 CMEK 的 Managed Lustre 執行個體
如要建立受 CMEK 保護的 Managed Lustre 執行個體,請按照下列步驟操作:
gcloud
如要使用 gcloud 建立受 CMEK 保護的執行個體,請按照「建立執行個體」一文中的步驟操作。將金鑰 ID 指定為 --kms-key-name 的值,如下所示:
gcloud lustre instance create INSTANCE_ID \
--filesystem=FILESYSTEM_NAME \
--per-unit-storage-throughput=PERF_TIER \
--capacity-gib=CAPACITY_GIB \
--location=ZONE \
--network=NETWORK_NAME \
--project=PROJECT_ID \
--kms-key-name=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Cloud KMS 金鑰必須與您要建立的 Managed Lustre 執行個體位於相同區域。
REST
如要使用 REST API 建立受 CMEK 保護的執行個體,請按照「建立執行個體」一文中的步驟操作。將金鑰 ID 指定為 kmsKey 的值,如下所示:
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
"filesystem": "FILESYSTEM_NAME",
"perUnitStorageThroughput": PERF_TIER,
"capacityGib": CAPACITY_GIB,
"network": "NETWORK_NAME",
"kmsKey": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
}
Cloud KMS 金鑰必須與您要建立的 Managed Lustre 執行個體位於相同區域。
如需欄位和說明完整清單,請參閱 Instance 資源參考說明文件。
Google Cloud 控制台
如要使用 Google Cloud 控制台建立受 CMEK 保護的執行個體,請按照「建立執行個體」一文中的步驟操作。在 Google Cloud 控制台的「建立執行個體」頁面中:
在「Encryption」(加密) 部分,選取「Cloud KMS key」(Cloud KMS 金鑰)。
選取「Cloud KMS」做為金鑰管理類型,然後選取金鑰。如果金鑰位於其他專案 (建議),請按一下「切換專案」,選取金鑰專案,然後選取金鑰。Cloud KMS 金鑰必須與您建立的 Managed Lustre 執行個體位於相同區域。
如果 Managed Lustre 服務代理程式沒有使用 CMEK 的必要權限,系統會提示您授予
cloudkms.cryptoKeyEncrypterDecrypter角色。按一下「授予」以套用角色。
如果 Cloud KMS 金鑰無法使用,或是在啟動建立作業時發生權限問題,作業就會失敗並傳回 FAILED_PRECONDITION 錯誤。
金鑰管理
您可以輪替、停用、重新啟用或刪除 Cloud Key Management Service 金鑰。可能因為各種原因而無法使用。
輪替金鑰
您可以輪替 Cloud KMS 金鑰。輪替金鑰會建立新的金鑰版本。
輪替金鑰不會重新加密 Managed Lustre 執行個體中的資料。Managed Lustre 不支援解密或重新加密資料。
Managed Lustre 執行個體的現有容量,會繼續使用建立執行個體時使用的金鑰版本加密。
增加執行個體的儲存空間容量時,系統會使用您提出容量增加要求時的主要金鑰版本,保護新的容量,且寫入該容量的任何資料都會受到該金鑰版本保護。
也就是說,如果您在輪替金鑰版本後增加了執行個體的容量,則可以有多個金鑰版本加密 Managed Lustre 執行個體。
停用金鑰
您可以停用金鑰版本。Managed Lustre 執行個體使用的任何金鑰版本停用期間,執行個體會暫停運作。如要恢復執行個體,請將保護執行個體的所有金鑰版本恢復為可用狀態。如要瞭解遭停權的執行個體,請參閱「無法使用的金鑰」。
詳情請參閱「啟用及停用金鑰版本」。
重新啟用金鑰
如果金鑰版本已停用,您可以透過 Cloud KMS API 重新啟用。請參閱「啟用及停用金鑰版本」一文。
如要恢復 Managed Lustre 執行個體,必須啟用或還原所有用於加密儲存容量的金鑰版本。
所有必要金鑰恢復 ENABLED 狀態後,Managed Lustre 會自動偵測金鑰變更並重新啟動執行個體。執行個體狀態會變成 ACTIVE,Managed Lustre 服務也會恢復正常運作。您可以執行 I/O 和所有其他長時間執行的作業。
刪除金鑰
您可以刪除 Cloud KMS 金鑰版本,也就是永久刪除金鑰素材。
Cloud KMS 金鑰無法立即銷毀,您必須安排銷毀金鑰版本。在排定時間內,您可以還原金鑰版本,取消刪除作業。詳情請參閱「刪除與還原金鑰版本」。
已排定時間表進行刪除的金鑰版本無法使用,且受該金鑰版本保護的所有 Managed Lustre 執行個體都會暫停。如要瞭解遭停用的執行個體,請參閱「無法使用的金鑰」。
金鑰版本一經刪除即無法復原。您的執行個體將永久停權。您只能刪除 Managed Lustre 執行個體。
無法使用的車鑰
金鑰可能因下列原因而無法使用:
- 金鑰已停用。
- 金鑰已刪除或預定刪除。
- 從服務代理移除必要權限。
- Cloud KMS 金鑰的專案已停用計費功能,且停用時間超過一小時。
- 外部金鑰無法連線超過一小時。
在這些情況下,事件發生後幾分鐘內,受管理 Lustre 執行個體就會關閉,且執行個體狀態會設為 SUSPENDED。
只要再次提供金鑰,即可復原 SUSPENDED 執行個體。
可能導致停權的原因如下:
| 金鑰動作 | 執行個體狀態 | 停權原因 | 可以重新啟用 |
|---|---|---|---|
| 停用 | SUSPENDED |
KEY_DISABLE |
是 |
| 排定刪除時間 | SUSPENDED |
KEY_DESTROY_SCHEDULED |
是 |
| 刪除 | SUSPENDED |
KEY_DESTROY |
否 |
| 移除權限 | SUSPENDED |
PERMISSION_DENIED |
是 |
| 停用 1 小時的計費功能 | SUSPENDED |
BILLING_DISABLED |
是 |
| 無法連上 EKM 金鑰達 1 小時 | SUSPENDED |
EKM_KEY_UNREACHABLE |
是 |
執行個體暫停時:
- 長時間執行的作業 (例如執行個體更新和匯入/匯出) 會遭到封鎖,並傳回
FAILED_PRECONDITION錯誤。 - 伺服器節點關閉前,I/O 作業會停止回應。 這項作業會在 30 分鐘內完成。
- 唯一允許的長時間執行作業是
DeleteInstance。
如果執行個體已暫停超過四個月,可能就無法恢復。
已暫停執行個體的相關收費說明
如果 Managed Lustre 執行個體因金鑰無法使用而進入 SUSPENDED 狀態,您仍須支付執行個體費用。暫停狀態不會暫停計費。如要停止支付執行個體費用,請刪除執行個體。
此外,Cloud KMS 也會針對使用的金鑰版本另外收費。
查看金鑰使用情形及列出金鑰版本
您可以查看機構中受 Cloud KMS 金鑰保護的資源。 Google Cloud 詳情請參閱「查看金鑰用量」。
如要查看 Managed Lustre 執行個體使用的金鑰版本完整清單,請使用 gcloud kms inventory search-protected-resources 指令:
gcloud kms inventory search-protected-resources \
--keyname=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--scope=organizations/ORGANIZATION_ID \
--filter="name:projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID" \
--flatten="cryptoKeyVersions" \
--format="value(cryptoKeyVersions)"
其中:
- ORGANIZATION_ID 是貴機構的數字 ID。請參閱「取得機構資源 ID」。
您也可以在「主要廣告空間」頁面查看重要資訊。