根據預設,Filestore 會加密靜態儲存的客戶內容。Filestore 會處理加密作業,您不必採取任何其他動作。這個選項稱為「Google 預設加密」。
如果您想控制加密金鑰,可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),並搭配 CMEK 整合服務 (包括 Filestore) 使用。使用 Cloud KMS 金鑰可讓您控制金鑰的保護等級、位置、輪替時間表、使用權限和存取權,以及加密範圍。使用 Cloud KMS 還可讓您查看稽核記錄,並控管金鑰生命週期。您可以在 Cloud KMS 中控制及管理用來保護資料的對稱金鑰加密金鑰 (KEK),而非由 Google 擁有及管理這些金鑰。
使用 CMEK 設定資源後,存取 Filestore 資源的體驗就會類似使用 Google 預設加密功能。如要進一步瞭解加密選項,請參閱「客戶管理的加密金鑰 (CMEK)」。
您可以將 CMEK 用於 Filestore 執行個體和備份。
CMEK 選項
Filestore 支援以軟體金鑰、HSM 叢集中的硬體金鑰,以及在 Cloud External Key Manager (Cloud EKM) 中外部儲存的金鑰儲存的 CMEK。
詳情請參閱 Cloud Key Management Service。
EKM 服務中斷
外部金鑰的設計是由第三方管理,在這種情況下,Google Cloud 不會負責金鑰供應情形。
如果 Cloud Key Management Service (Cloud KMS) 收到 External Key Manager (EKM) 通知,指出無法存取外部金鑰,使用者就會收到 ekm_key_unreachable_detected
通知。在最多一小時的時間內,使用者對執行個體的作業存取權受到限制。一小時後,如果鍵狀態未變更,系統會採取下列行動:
- 金鑰已停用。
- 所有加密和解密作業都失敗。
- Filestore 執行個體已暫停。
在某些情況下,例如 VM 重新啟動等非預期事件,執行個體的存取權可能會在 1 小時前中斷。
您可以在 Filestore 執行個體詳細資料頁面中查看無法連線的索引鍵通知:
如果使用者在收到第一則通知後一小時內執行下列任何作業,也會收到 ekm_key_unreachable_detected
通知:
支援的層級
下表列出支援 CMEK 的 Filestore 服務級別:
級別 | CMEK 支援 |
---|---|
基本傳統硬碟 | 否 |
基本固態硬碟 | 否 |
可用區 | 是 |
區域 | 是 |
Enterprise | 是 |
建立要與執行個體搭配使用的金鑰環和金鑰
金鑰環和金鑰可以位於 Filestore 執行個體以外的專案,但必須位於相同位置。如果您已擁有要與 Filestore 搭配使用的 Cloud KMS 金鑰環和金鑰,請直接跳到下一節。否則,請按照「建立對稱加密金鑰」一文的操作說明建立金鑰環和金鑰。
將金鑰存取權限授予 Filestore 服務帳戶
如要建立使用 CMEK 的 Filestore 執行個體,Filestore 服務帳戶必須具備 Cloud KMS CryptoKey 加密者/解密者角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter
)。
您第一次在專案中建立 Filestore 執行個體時,系統會建立 Filestore 服務帳戶。如果您還沒有 Filestore 服務帳戶,請執行下列
services identity create
指令:gcloud beta services identity create --service=file.googleapis.com --project=INSTANCE_PROJECT_NUMBER_OR_ID
將 INSTANCE_PROJECT_NUMBER_OR_ID 替換為您要建立 Filestore 執行個體的專案編號或 ID。
執行
projects add-iam-policy-binding
指令,將 Cloud KMS CryptoKey Encrypter/Decrypter 角色指派給 Filestore 服務帳戶:gcloud projects add-iam-policy-binding KMS_PROJECT_NUMBER_OR_ID \ --member serviceAccount:service-INSTANCE_PROJECT_NUMBER@cloud-filer.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
更改下列內容:
- KMS_PROJECT_NUMBER_OR_ID 與包含要使用的 Cloud KMS 金鑰的專案編號或 ID。
- INSTANCE_PROJECT_NUMBER 與您要建立 Filestore 執行個體的專案編號 (而非專案 ID)。
建立使用 Cloud KMS 金鑰的執行個體
Google Cloud 控制台
如要建立會使用 Cloud KMS 金鑰加密資料的執行個體,請按照下列步驟操作:
在 Google Cloud 控制台中,前往 Filestore 執行個體頁面。
按一下「建立執行個體」
選取支援 CMEK 的執行個體層級,然後填寫所有其他必填和選填欄位。
按一下 [Show advanced options] (顯示進階選項)。
選取「使用客戶自行管理的加密金鑰 (CMEK)」核取方塊。
選取要用於執行個體的 Cloud KMS 金鑰。
按一下 [建立]。
gcloud CLI
如要建立會使用 Cloud KMS 金鑰加密資料的 Filestore 執行個體,請在 filestore instances create
指令中指定 --kms-key
標記:
gcloud filestore instances create nfs-server \
--tier=<var>TIER</var> \
--location=us-central1 \
--file-share=name="vol1",capacity=1TiB \
--network=name="default" \
--kms-key=KMS_KEY
更改下列內容:
- TIER 搭配支援 CMEK 的 Filestore 級別。
- KMS_KEY 與您要使用的 Cloud KMS 金鑰完整名稱。或者,您也可以使用下列格式分別指定每個引數:
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID
更改下列內容:
- KMS_KEY 替換為 Cloud KMS 金鑰的名稱。
- KMS_PROJECT_NUMBER_OR_ID 與建立金鑰的專案專案編號或 ID。
- 將 KMS_KEY_RING 替換為金鑰環的名稱。
- 將 KMS_REGION 替換為金鑰環的地區。金鑰環和執行個體必須位於相同區域。
取得索引鍵清單
您可以執行 kms keys list
指令來取得金鑰清單:
gcloud kms keys list \
--project=KMS_PROJECT_NUMBER_OR_ID \
--keyring=KEY_RING \
--location=KMS_REGION
更改下列內容:
- KMS_PROJECT_NUMBER_OR_ID 與建立金鑰的專案編號或 ID 相關聯。
- 將 KEY_RING 替換為金鑰環的名稱。
- 將 KMS_REGION 替換為金鑰環的地區。
輸出內容的「Name」欄會顯示現有鍵的完整名稱。例如:
projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
取得執行個體的關鍵資訊
以下各節將說明如何取得執行個體的關鍵資訊。
列出使用特定 Cloud KMS 金鑰的執行個體
您可以執行 instances list
指令,列出使用特定索引鍵的 Filestore 執行個體:
gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"
將 KMS_KEY 替換為您要使用的金鑰完整名稱。
範例:
gcloud filestore instances list \
--filter="kmsKeyName=projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key"
輸出內容如下:
INSTANCE_NAME LOCATION TIER CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS STATE CREATE_TIME
nfs-server us-central1 ENTERPRISE 1024 vol1 10.166.108.2 READY 2021-08-12T11:38:56
取得執行個體的 Cloud KMS 金鑰資訊
請使用下列任一方法,取得 Filestore 執行個體的 Cloud KMS 金鑰資訊:
Google Cloud 控制台
前往 Filestore 執行個體頁面。
按一下執行個體 ID,開啟執行個體詳細資料頁面。
按一下「總覽」分頁標籤。
如果執行個體使用 Cloud KMS 金鑰 (而非Google-owned and Google-managed encryption key) 加密資料,金鑰名稱會顯示在「Encryption key」欄位中。
gcloud CLI
執行下列 instances describe
指令:
gcloud filestore instances describe INSTANCE_ID \
--location=INSTANCE_LOCATION
更改下列內容:
- INSTANCE_ID 與您要取得資訊的 Filestore 執行個體 ID。
- INSTANCE_LOCATION 與執行個體所在的區域或區塊。
輸出內容如下:
createTime: '2021-08-12T11:38:56.851157387Z'
fileShares:
- capacityGb: '1024'
name: vol1
kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
labels:
key: val
name: projects/consumer-project/locations/us-central1/instances/nfs-server
networks:
- ipAddresses:
- 10.0.100.2
modes:
- MODE_IPV4
network: network
reservedIpRange: 10.166.108.0/23
state: READY
tier: ENTERPRISE
停用或銷毀執行個體使用的 Cloud KMS 金鑰
如果偵測到 Cloud KMS 金鑰狀態有變動,執行個體會自動停止提供資料。以下列舉幾個例子:
這項偵測通常會在關鍵狀態變更後的幾分鐘內發生,但在某些情況下,可能需要長達一小時的時間。
執行個體停止後,系統就會封鎖所有檔案共用資料和任何快照的存取權。停止的執行個體會持續計費,直到刪除為止。
啟動已停止的執行個體
如果已停止的 Filestore 執行個體使用 Cloud KMS 金鑰加密資料,則必須先啟用或還原所有金鑰版本,才能重新啟動執行個體。
啟用 Cloud KMS 金鑰狀態後,執行個體會自動偵測金鑰變更,並在 20 分鐘內重新啟動,無須採取任何額外動作。
備份鏈結的 CMEK 支援
您可以使用 CMEK 加密 Filestore 執行個體和備份鏈。
基本級備份不支援 CMEK。
備份鏈結會位於單一值區和區域中。如要在來源執行個體以外的區域儲存及加密備份資料,使用者必須套用兩個不同的 CMEK:一個用於執行個體,另一個用於備份鏈結。但須遵守下列規定:
- CMEK 必須與所加密的備份鏈結位於相同區域。
- 單一 CMEK 會套用至備份鏈結儲存的儲存桶,且無法合併或取代。
金鑰輪替限制
在金鑰輪替期間,系統會建立新的加密金鑰來取代現有金鑰。下列與金鑰輪替相關的操作可能會導致您無法還原備份鏈結:
- 停用金鑰或金鑰版本。
- 刪除金鑰或金鑰版本。
- 修改金鑰權限。
這些動作不會阻止在鏈結中建立備份。
如果無法還原備份鏈結,請執行下列步驟:
- 刪除所有備份。
- 開始新的鏈結。您可以使用下列任一選項:
- 使用相同的 CMEK 在不同位置建立備份。
- 使用新的 CMEK 在相同位置建立備份。
詳情請參閱「備份總覽」。
後續步驟
- 瞭解如何套用 CMEK 組織政策。
- 進一步瞭解 CMEK。
- 瞭解 Google Cloud中的傳輸中資料加密功能。