AO 會透過 Google Distributed Cloud (GDC) 實體隔離 CLI,使用 gRPC 用戶端對 KMS 執行加密和解密作業。
事前準備
執行 KMS 作業前,請先設定 kubectl,以便存取 Management API 伺服器並取得必要權限。
設定 Management API 伺服器存取權
設定 kubectl 以存取 Management API 伺服器:
- 如果還沒這麼做,請使用 gdcloud CLI 介面,為 Management API 伺服器取得 kubeconfig 檔案。
設定
MANAGEMENT_API_SERVER環境變數:export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG將
PATH_TO_KUBECONFIG替換為產生的 kubeconfig 檔案路徑。如果尚未完成,請下載、安裝及設定 gdcloud CLI。如要這麼做,請參閱 gcloud CLI 總覽。
所需權限
如要取得所需權限,請要求組織 IAM 管理員在專案中授予您 KMS 開發人員 (kms-developer) 角色。
加密資料
如要加密資料,請使用 gdcloud kms keys encrypt 指令。這個指令會使用 AEAD 金鑰加密指定的明文檔案,並將加密結果寫入具名的密文檔案。
如要加密資料,請傳入金鑰名稱和下列項目:
gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \ --plaintext-file=PLAINTEXT_PATH \ --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \ --ciphertext-file=CIPHERTEXT_PATH請替換下列變數:
- NAMESPACE:專案命名空間,例如:
kms-test1。 - KEY_NAME:用於加密明文的金鑰名稱,例如:
key-1。 - PLAINTEXT_PATH:包含要加密明文的檔案路徑。
- ADDITIONAL_AUTHENTICATED_DATA_FILE:選用檔案,內含額外的已驗證資料 (AAD)。AAD 可用於完整性檢查,並保護資料免遭混淆代理攻擊。AAD 和純文字的大小上限皆為 64 KB。
- CIPHERTEXT_PATH:包含加密明文的檔案路徑。
執行指令後,您會看到
--ciphertext-file標記中指定的檔案,其中包含純文字檔案的加密內容。- NAMESPACE:專案命名空間,例如:
解密資料
如要解密資料,請使用 gdcloud kms keys decrypt 指令。這個指令會使用 AEAD 金鑰解密指定的密文檔案,並將解密內容寫入指定的純文字檔案。
如要解密密文,請傳遞金鑰名稱和下列項目:
gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \ --ciphertext-file=CIPHERTEXT_PATH \ --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \ --plaintext-file=PLAINTEXT_PATH請替換下列變數:
- NAMESPACE:專案命名空間。
- KEY_NAME:用於加密純文字的金鑰名稱。
- CIPHERTEXT_PATH:要解密檔案的路徑。
- ADDITIONAL_AUTHENTICATED_DATA_FILE:選用檔案,內含額外的已驗證資料 (AAD)。AAD 可用於完整性檢查,並保護資料免遭混淆代理攻擊。AAD 和純文字的大小上限皆為 64 KB。
- PLAINTEXT_PATH:包含解密明文的檔案路徑。
執行指令後,您會看到
--plaintext-file標記中指定的檔案,其中包含解密資料。