AO 通过 kubectl 命令执行密钥管理操作,以访问管理 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 Creator (
kms-creator) 角色。 - 如需创建、列出和删除密钥,请申请 KMS Admin (
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:管理 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:管理 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