AO 會透過 kubectl 指令執行金鑰管理作業,存取 Management API 伺服器。
事前準備
執行 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 檔案路徑。
所需權限
如要取得所需權限,請要求組織 IAM 管理員在專案中授予下列 KMS 角色:
- 如要建立及列出金鑰,請要求 KMS 建立者 (
kms-creator) 角色。 - 如要建立、列出及刪除金鑰,請要求 KMS 管理員 (
kms-admin) 角色。
建立金鑰
操作步驟如下:
在專案命名空間中建立金鑰。以下範例會建立
AEAD金鑰:kubectl --kubeconfig MANAGEMENT_API_SERVER \ apply -f - << EOF apiVersion: "kms.gdc.goog/v1" kind: AEADKey metadata: name: KEY_NAME namespace: PROJECT spec: algorithm: AES_256_GCM EOF請替換下列變數:
- MANAGEMENT_API_SERVER:Management API 伺服器的 kubeconfig 檔案。登入並產生 kubeconfig 檔案 (如果沒有的話)。
- KEY_NAME:您要建立的金鑰名稱,例如:
key-1。 - PROJECT:專案名稱,例如
kms-test1。
確認金鑰建立作業:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get aeadkey KEY_NAME \ --namespace=PROJECT -o yaml如果金鑰建立成功,您會在「
READY」欄中看到「True」值。
刪除金鑰
操作步驟如下:
刪除專案命名空間中的金鑰:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECT請替換下列變數:
- MANAGEMENT_API_SERVER:Management API 伺服器的 kubeconfig 檔案。登入並產生 kubeconfig 檔案 (如果沒有的話)。
- KEY_PRIMITIVE:要刪除的鍵,例如
AEAD鍵的aeadkey。 - KEY_NAME:要刪除的金鑰名稱,例如:
key-1。 - PROJECT:專案名稱,例如
kms-test1。
驗證金鑰刪除作業,並確認傳回的內容中沒有金鑰:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECT