copyright: years: 2026 lastupdated: "2026-04-22"

keywords: key:value,key/value,key-value,存储 key: value 私钥

subcollection: secrets-manager


存储键值私钥

您可以使用 IBM Cloud® Secrets Manager 来存储和管理键值机密(包括复杂的 JSON 文档),这些机密用于访问 IBM Cloud 内部或外部的受保护系统。

键值私钥是一种应用程序私钥类型,可用于保存构造为 JSON 对象的敏感数据。 创建私钥后,可以使用它将应用程序连接到受保护资源 (例如数据库或第三方应用程序)。 私钥安全地存储在专用 Secrets Manager 服务实例中,您可以在其中集中管理其生命周期。

您可以针对每个密钥存储多个版本,并使用 Secrets Manager访问密钥值私钥的历史记录和元数据。 有关更多信息,请参阅 使用保险库文件管理密钥值私钥

要了解有关可以在 Secrets Manager中管理的私钥类型的更多信息,请参阅 什么是私钥?

准备工作

开始之前,请确保您具有所需的访问级别。 要创建或添加私钥,您需要 写入者 服务角色或更高级别的

在 UI 中创建键值私钥

要使用 Secrets Manager UI 添加密钥值私钥,请完成以下步骤。

  1. 在 IBM Cloud 控制台中,单击 菜单 图标 “菜单”图标 > 资源列表

  2. 从服务列表中,选择 Secrets Manager的实例。

  3. 在“私钥”表中,单击 添加

  4. 从私钥类型列表中,选择 密钥-值 磁贴。

  5. 单击下一步

  6. 添加名称和描述以轻松识别私钥。

  7. 选择要分配给私钥的 私钥组包含实例中的私钥的环境和约束必须遵守。 用户可以与一个秘密群组关联,以实现访问和协作。

    没有秘密小组吗 在 私钥组 字段中,可以单击 创建 以提供新组的名称和描述。 您的私钥将自动添加到新组中。 有关私钥组的更多信息,请查看 组织私钥

  8. 可选: 添加标签以帮助您在实例中搜索类似私钥。

  9. 可选: 将元数据添加到私钥或私钥的特定版本。

    1. 上载文件或输入 JSON 格式的元数据和版本元数据。
  10. 单击下一步

  11. 选择文件或输入要与私钥关联的私钥值。

必须输入键值数据作为 JSON 对象。 最大文件大小为 512 KB。

  1. 单击下一步
  2. 查看私钥的详细信息。
  3. 单击添加

从 CLI 创建键值私钥

要使用 Secrets Manager CLI 插件创建密钥值私钥,请运行 ibmcloud secrets-manager secret-create 命令。 例如,以下命令创建密钥值私钥并将 {"key1":"value1"} 存储为其值。

ibmcloud secrets-manager secret-create \
  --secret-name="example-kv-secret" \
  --secret-description="Description of my key-value secret." \
  --secret-type="kv" \
  --secret-group-id="67d025e1-0248-418f-83ba-deb0ebfb9b4a" \
  --secret-labels='["dev","us-south"]' \
  --kv-data='{"key1": "val1","key2": "val2"}' \
  --secret-custom-metadata='{"metadata_custom_key": "metadata_custom_value"}' \
  --secret-version-custom_metadata='{"custom_version_key": "custom_version_value"}'

该命令输出私钥的标识值以及其他元数据。 有关命令选项的更多信息,请参阅 ibmcloud secrets-manager secret-create

使用 API 创建键值私钥

您可以使用 Secrets Manager API 以编程方式创建密钥值私钥。

以下示例显示可用于创建和存储密钥值私钥的查询。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。

您可以使用 custom_metadataversion_custom_metadata 请求参数来存储与组织需求相关的元数据。 仅针对私钥版本返回 version_custom_metadata 的值。 私钥的定制元数据存储为最多 50 个版本的所有其他元数据,并且不得包含机密数据。

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
          "name": "example-kv-secret",
          "description": "Description of my kv secret.",
          "secret_type": "kv",
          "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
          "labels": [
            "dev",
            "us-south"
          ],
          "data": {
            "key1": "val1",
            "key2": "val2"
          },
          "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
          },
          "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
          }
        }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

成功响应会返回秘密的 ID 值和其他元数据。 有关必需和可选请求参数的更多信息,请参阅 创建私钥

使用 Terraform 创建键值私钥

您可以使用 Terraform for Secrets Manager以编程方式创建键值私钥。

遵循 Terraform 最佳实践来保护敏感输入变量 (例如,私钥凭证)。 有关更多信息,请参阅 保护敏感输入变量

以下示例显示了可用于通过在 terraform.tfvars 文件中设置敏感值来创建密钥值私钥的配置。

  1. variables.tf 文件中定义键值私钥数据的输入变量。
    variable "kv_secret_data" {
        description = "KV secret data"
        type        = map(any)
        sensitive   = true
    }
  1. terraform.tfvars 文件中为 kv_secret_data 变量指定值。

    通过使用 .tfvars 文件设置值,可以将敏感值与其余变量值分开,并确保使用配置的用户知道哪些值是敏感值。 出于安全考虑,您必须仅与具有相应访问权的用户维护和共享 .tfvars 文件。 您还必须注意不要将具有敏感值的 .tfvars 文件以明文形式存储到版本控件 (例如 Github) 中。

    kv_secret_data = {
        "key1" : "value1"
    }
    
  2. main.tf 文件中创建密钥值私钥。

以下示例显示可用于创建密钥值私钥的配置。

    resource "ibm_sm_kv_secret" "sm_kv_secret"{
        instance_id = local.instance_id
        region = local.region
        name = "kv-secret-example"
        description = "Extended description for this key-value secret."
        labels = ["my-label"]
        secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
        data = var.kv_secret_data
    }

使用适用于 Secrets Manager Secret 的 Terraform IBM Modules (TIM) 以编程方式存储和管理键值对。 了解更多信息,请访问 Terraform IBM 模块