密钥管理服务 (KMS) API 使用 Kubernetes 自定义资源来管理加密密钥的生命周期。
如需使用 KMS API,请使用 GDC 控制台。如果您的应用使用自己的库来调用 API,请采用下一部分中的示例服务端点和完整的 API 定义来构建请求:
服务端点和发现文档
KMS API 在两个软件包中提供,具体取决于区域部署还是全球部署。
区域级和全局 KMS API 的 API 端点分别如下所示:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.gdc.goog/v1https://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/v1http://127.0.0.1:8001/apis/kms.global.gdc.goog/v1
示例资源
以下是资源示例。命名空间是项目命名空间。如需详细了解如何在项目命名空间中创建和管理 AEADKey 和 SigningKey 资源,请参阅创建和删除密钥。
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