建立及刪除金鑰

AO 會透過 kubectl 指令執行金鑰管理作業,存取 Management API 伺服器。

事前準備

執行 KMS 作業前,請先設定 kubectl,以便存取 Management API 伺服器並取得必要權限。

設定 Management API 伺服器存取權

設定 kubectl 以存取 Management API 伺服器:

  1. 如果還沒這麼做,請使用 gdcloud CLI 介面,為 Management API 伺服器取得 kubeconfig 檔案
  2. 設定 MANAGEMENT_API_SERVER 環境變數:

    export MANAGEMENT_API_SERVER=PATH_TO_KUBECONFIG
    

    PATH_TO_KUBECONFIG 替換為產生的 kubeconfig 檔案路徑。

所需權限

如要取得所需權限,請要求組織 IAM 管理員在專案中授予下列 KMS 角色:

  • 如要建立及列出金鑰,請要求 KMS 建立者 (kms-creator) 角色。
  • 如要建立、列出及刪除金鑰,請要求 KMS 管理員 (kms-admin) 角色。

建立金鑰

操作步驟如下:

  1. 在專案命名空間中建立金鑰。以下範例會建立 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
  2. 確認金鑰建立作業:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      get aeadkey KEY_NAME \
      --namespace=PROJECT -o yaml
    

    如果金鑰建立成功,您會在「READY」欄中看到「True」值。

刪除金鑰

操作步驟如下:

  1. 刪除專案命名空間中的金鑰:

    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
  2. 驗證金鑰刪除作業,並確認傳回的內容中沒有金鑰:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      get KEY_PRIMITIVE  KEY_NAME \
      --namespace=PROJECT