Key Management Service API 總覽

Key Management Service (KMS) API 會使用 Kubernetes 自訂資源管理加密金鑰的生命週期。

如要使用 KMS API,請使用 GDC 控制台。如果您的應用程式使用自己的程式庫呼叫 API,請採用下一節中的範例服務端點,以及完整的 API 定義來建構要求:

服務端點和探索文件

KMS API 分為兩個套件,分別適用於區域部署或全域部署。

區域和全域 KMS API 的 API 端點分別如下:

  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.gdc.goog/v1
  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.global.gdc.goog/v1

MANAGEMENT_API_SERVER_ENDPOINT 變數是 Management API 伺服器的端點。

使用 kubectl proxy 指令在瀏覽器中存取網址,取得 KMS API 的探索文件。kubectl proxy 指令會在您本機電腦的 127.0.0.1:8001 上,開啟 Kubernetes API 伺服器的 Proxy。執行該指令後,請前往下列網址存取文件:

  • http://127.0.0.1:8001/apis/kms.gdc.goog/v1
  • http://127.0.0.1:8001/apis/kms.global.gdc.goog/v1

範例資源

以下是資源範例。命名空間是專案命名空間。如要進一步瞭解如何建立金鑰,請參閱「建立及刪除金鑰」頁面的「建立金鑰」一節。

AEADKey 資源

apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
  name: my-test-key
  namespace: user-kms-project
spec:
  algorithm: AES_256_GCM

SigningKey 資源

apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
  name: my-test-key
  namespace: user-kms-project
spec:
  algorithm: EC_SIGN_P384_SHA384

KeyImport 資源

apiVersion: "kms.gdc.goog/v1"
kind: KeyImport
metadata:
  name: my-test-key-import
  namespace: user-kms-project
spec:
  context:
    mechanism: ECDH_P521_AES256

KeyExport 資源

apiVersion: "kms.gdc.goog/v1"
kind: KeyExport
metadata:
  name: my-test-key-export
  namespace: user-kms-project
spec:
  context:
    mechanism: ECDH_P521_AES256
    publicKey: pub_key_from_import
  keyToExport:
    kind: AEADKey
    name: key_name_to_export

RotationJob 資源

apiVersion: "kms.gdc.goog/v1"
kind: RotationJob
metadata:
  name: my-test-rotate-job
spec:
  rootKeyResourceName: namespaces/kms-system/secrets/kms-key-ctm-root

MZAEADKey 資源

apiVersion: "kms.global.gdc.goog/v1"
kind: MZAEADKey
metadata:
  name: my-test-mz-key
  namespace: user-kms-project
spec:
  algorithm: AES_256_GCM