IBM Cloud Docs
创建自定义凭证机密

创建自定义凭证机密

自定义凭证秘密类型使 IBM Cloud® Secrets Manager 用户能够通过 Secrets Manager API 和集成安全地管理外部系统(如 Artifactory 或 PagerDuty )的凭证。 要创建这些机密,您需要部署一个 IBM Cloud® Code Engine 作业,作为 Secrets Manager 和外部服务之间的桥梁。 这些工作按固定时间表运行,并通过 秘密任务 异步管理凭证。

创建自定义凭据的过程在设计上是异步的。 添加新密码时,最初会进入预激活状态。 如果在外部凭据提供程序中成功创建了秘密,其状态就会自动在 Secrets Manager 中激活

自定义凭证机密创建过程是异步的。 秘密添加后,开始处于 pre-activation 状态,如果在凭据提供者中创建成功,其状态将变为 Secrets Manager 中的 active

准备工作

在开始之前,请确保您已准备就绪:

在控制台中创建自定义证书密级

增加一个秘密

  1. 秘密表中,单击添加
  2. 从秘密类型列表中,单击自定义凭证磁贴。
  3. 单击下一步
  4. 添加名称和描述,方便识别您的秘密。
  5. 选择 之前创建的 秘密组包含实例中的私钥的环境和约束必须遵守。 用户可以与一个秘密群组关联,以实现访问和协作。
  6. 可选:添加标签,帮助您搜索实例中的类似秘密。
  7. 可选:为秘密或秘密的特定版本添加元数据。
    1. 上传文件或输入 JSON 格式的元数据和版本元数据。
  8. 单击下一步
  9. 选择要用于此密文的自定义凭据引擎配置。
  10. 参数下输入所需数值。
  11. 单击下一步
  12. 可选:启用秘密的最短持续时间和自动轮换功能。
  13. 单击下一步
  14. 查看秘密的细节。
  15. 单击添加

您可以稍后更改参数值。 在创建新的秘密版本后,就会进行更改。 如果不创建新配置,就无法添加或减少新参数。

在控制台中查看和更新秘密详细信息

其他秘密 一样,您可以通过单击 " 操作 "菜单中的 " 操作 "图标 >" 详细信息 "来访问秘密的详细信息。 从详细信息屏幕中,您可以了解到

从 CLI 创建自定义凭证密文

开始之前,请 按照 CLI 文档 设置 API 端点。

要使用 Secrets Manager CLI 插件创建自定义凭据机密,请运行 ibmcloud secrets-manager secret-create 命令。

ibmcloud secrets-manager secret-create --secret-type custom_credentials --secret-name "example-custom-credential-secret" --secret-description "Description of my custom credential secret" --secret-rotation '{"auto_rotate": true,"interval": 30,"unit": "day"}' --custom-credentials-paramters '{"my_input_parameter":"my_param_value"}' --custom-credentials-configuration '{"my_custom_credential_config"}' --secret-custom-metadata '{"metadata_custom_key": "metadata_custom_value"},"version_custom_metadata": {"custom_version_key": "custom_version_value"}}'

使用应用程序接口创建自定义凭据秘钥

您可以通过调用 Secrets Manager API 以编程方式创建自定义凭据。 调用 API 时,请将 ID 变量和 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-custom-credential-secret",
      "description": "Description of my custom credential secret",
      "secret_type": "custom_credentials",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "rotation": {
        "auto_rotate": true,
        "interval": 30,
        "unit": "day"
      },
      "configuration": "my_custom_credential_config",
      "parameters": {
        "user_name": "username",
        "scope": "admin"
      },
      "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"

使用 Terraform 创建自定义证书秘钥

您可以使用 Terraform for Secrets Manager 以编程方式创建自定义凭据机密。 下面的示例显示了用于创建自定义凭据密文的配置。

创建自定义凭据机密是一个异步过程,根据使用情况可能需要很长时间,因此在计划使用 Terraform 时应考虑到潜在的延迟。

resource "ibm_sm_custom_credentials_secret" "sm_custom_credentials_secret" {
  instance_id   = ibm_resource_instance.sm_instance.guid
  region        = "us-south"
  name 			= "secret-name"
  secret_group_id = ibm_sm_secret_group.sm_secret_group.secret_group_id
  custom_metadata = {"key":"value"}
  description = "Extended description for this secret."
  labels = ["my-label"]
  configuration = "my_custom_credentials_configuration"
  parameters {
    int_values = {
        example_param_1 = 17
    }
    string_values = {
        example_param_2 = "str2"
        example_param_3 = "str3"
    }
    bool_values = {
        example_param_4 = false
    }
  }
  rotation {
      auto_rotate = true
      interval = 3
      unit = "day"
  }
  ttl = "864000"
}