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 命令会在本地机器上为 Kubernetes API 服务器打开 127.0.0.1:8001 上的代理。该命令运行后,请访问以下网址中的文档:

  • 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