IBM Cloud Docs
自动旋转私钥

自动旋转私钥

您可以使用 IBM Cloud® Secrets Manager来调度私钥的自动轮换。

在旋转服务实例中的秘密时,会创建其值的新版本。 通过定期调度私钥的自动轮换,可以降低发生损害的可能性,并确保您的凭证永不到期。

自动轮换仅适用于 Secrets Manager生成的私钥。 如果最初导入了私钥,那么必须提供新的私钥数据以轮换该私钥数据。 有关更多信息,请参阅 手动旋转私钥

准备工作

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

受支持的密钥类型

专用证书公用证书用户凭证IAM 凭证 支持自动轮换。 根据密文类型的不同,自动轮换会在你设定的日期和时间立即进行,或者在创建新版本的密文之前可能需要完成几个额外的步骤。

描述Secrets Manager如何按秘密类型评估手动轮换
类型 旋转描述
专用证书 现有 certificate 值将替换为新的证书内容。 更新的证书的生存时间 (TTL) 是根据首次创建证书时选择的 证书模板 设置的。 请注意,当私有证书的生存时间(TTL)或有效期超过其颁发证书机构的有效期时,证书将无法再自动轮换。
公用证书 公用证书将移至 Active,Rotation pending 状态,以指示正在处理更新证书的请求。Secrets Manager 使用 DNS 验证来验证您是否拥有作为证书一部分列出的域。 此过程可能需要几分种才能完成。 如果验证成功完成,那么将发出新证书并将其状态更改回 活动。 如果验证未成功完成,那么证书状态将更改为 活动,旋转失败
用户凭证 现有 password 值将替换为随机生成的 32 个字符的密码,其中包含大写字母,小写字母,数字和符号。 username 值不变。
IAM 凭证 服务标识的 API 密钥值将替换为新的 API 密钥。 先前的 API 密钥在定义的 TTL 中的剩余时间内保持可用。
服务凭证 服务凭据密文将被新的密文取代。 在定义的 TTL 剩余时间内,前一个秘密仍然有效。
自定义凭证 自定义凭据密文将被新的凭据密文取代。 在定义的 TTL 剩余时间内,前一个秘密仍然有效。

请注意,对于为数据库创建的服务凭证,如果除了凭证之外,您还在更改所创建凭证的数据库许可权,那么一旦轮换了服务凭证,将不会同步这些凭证。 当轮换数据库服务凭证时,这被视为身份轮换。

在 UI 中调度自动旋转

您可以使用 Secrets Manager UI 来调度私钥的自动轮换。

设置用户凭证的自动轮换策略

如果您希望将密码安排为定期自动轮换,那么可以在创建用户凭证时对其启用自动轮换。 您还可以通过编辑现有私钥的详细信息来启用自动轮换。

如果需要对私钥的旋转频率进行更多控制,可以使用 Secrets Manager API 通过使用 daymonth 时间单位来设置定制时间间隔。 有关更多信息,请参阅 API 参考

  1. 如果要 添加私钥,请启用轮换选项。
  2. 如果您正在编辑现有私钥,请通过更新其详细信息来启用自动轮换。
    1. 私钥 表中,查看现有私钥的列表。
    2. 在要编辑的私钥所在的行中,单击 操作 菜单 "操作" 图标 > 编辑详细信息
    3. 使用 自动旋转 选项来启用或禁用私钥的自动旋转。

当您更新私钥的旋转设置时,会触发立即旋转。

为公用证书设置自动轮换策略

如果您希望将公共 SSL/TLS 证书安排为自动更新,那么可以在订购证书时对其启用自动轮换。 您还可以通过编辑现有证书的详细信息来启用自动轮换。 在证书的下一个轮换周期中,Secrets Manager 开始尝试在证书到期日期前 31 天对其进行重新排序。 服务会继续尝试每天更新证书,直到证书成功为止。

  1. 如果要 订购公用证书,请启用轮换选项。

    1. 要自动旋转证书,请将旋转开关切换到 开启。 您的证书将在其到期日期前 31 天自动重新排序。
    2. 要在每次轮换时为证书请求新的专用密钥,请将再加密开关切换为 开启
  2. 如果您正在编辑现有公用证书,请通过更新其详细信息来调度自动轮换。

    1. 密钥 表中,查看现有公用证书的列表。
    2. 在要编辑的证书所在的行中,单击 操作 菜单 "操作" 图标 > 编辑详细信息
    3. 使用 自动旋转 选项来添加或除去私钥的旋转策略。

设置专用证书的自动轮换策略

如果您希望调度要自动更新的专用 SSL 或 TLS 证书,那么可以在创建证书时或通过编辑现有证书的详细信息来启用证书自动轮换。 证书必须

  1. 如果要 创建专用证书,请启用轮换选项。

    1. 要自动旋转证书,请将旋转开关切换到 开启

    2. 选择用于指定调度轮换之间的天数的时间间隔和单位。

      根据与专用证书相关联的证书模板,可能会应用对证书的轮换时间间隔的一些限制。 例如,旋转时间间隔不能超过模板中定义的生存时间 (TTL)。 有关更多信息,请参阅 证书模板

  2. 如果您正在编辑现有专用证书,请通过更新其详细信息来调度自动轮换。

    1. 私钥 表中,查看现有专用证书的列表。
    2. 在要编辑的证书所在的行中,单击 操作 菜单 "操作" 图标 > 编辑详细信息
    3. 使用 自动旋转 选项来添加或除去私钥的旋转策略。

设置 IAM 凭证的自动轮换策略

如果您希望将 API 密钥安排为定期自动轮换,那么可以在创建 IAM 凭证时对其启用自动轮换。 您还可以通过编辑现有私钥的详细信息来启用自动轮换。 选择 30 天,60 天或 90 天轮换时间间隔。

如果需要对私钥的旋转频率进行更多控制,可以使用 Secrets Manager API 通过使用 daymonth 时间单位来设置定制时间间隔。 有关更多信息,请参阅 API 参考

  1. 如果要 添加私钥,请通过选择 30,60 或 90 天的旋转时间间隔来启用旋转选项。
  2. 如果您正在编辑现有私钥,请通过更新其详细信息来启用自动轮换。
    1. 私钥 表中,查看现有私钥的列表。
    2. 在要编辑的私钥所在的行中,单击 操作 菜单 "操作" 图标 > 编辑详细信息
    3. 使用 自动旋转 选项来启用或禁用私钥的自动旋转。

轮换仅适用于复用密钥设置为 true 的 IAM 凭证。 定义的旋转时间间隔不能高于定义的生存时间 (TTL)。 您可以使用 minute 时间单位来设置私钥的 TTL,但这些私钥无法进行旋转。

为服务凭证设置自动轮换策略

如果您希望定期自动轮换服务证书秘密,可以在创建服务证书时启用自动轮换。 您还可以通过编辑现有私钥的详细信息来启用自动轮换。 选择 30 天,60 天或 90 天轮换时间间隔。

如果需要对私钥的旋转频率进行更多控制,可以使用 Secrets Manager API 通过使用 daymonth 时间单位来设置定制时间间隔。 有关更多信息,请参阅 API 参考

  1. 如果要 添加私钥,请通过选择 30,60 或 90 天的旋转时间间隔来启用旋转选项。
  2. 如果您正在编辑现有私钥,请通过更新其详细信息来启用自动轮换。
    1. 私钥 表中,查看现有私钥的列表。
    2. 在要编辑的私钥所在的行中,单击 操作 菜单 "操作" 图标 > 编辑详细信息
    3. 使用 自动旋转 选项来启用或禁用私钥的自动旋转。

为自定义凭据设置自动轮换策略

如果希望定期自动轮换自定义凭据密件,可以在创建自定义凭据密件时启用自动轮换。 您还可以通过编辑现有私钥的详细信息来启用自动轮换。 选择 30 天,60 天或 90 天轮换时间间隔。

如果需要对私钥的旋转频率进行更多控制,可以使用 Secrets Manager API 通过使用 daymonth 时间单位来设置定制时间间隔。 有关更多信息,请参阅 API 参考

  1. 如果要 添加私钥,请通过选择 30,60 或 90 天的旋转时间间隔来启用旋转选项。
  2. 如果您正在编辑现有私钥,请通过更新其详细信息来启用自动轮换。
    1. 私钥 表中,查看现有私钥的列表。
    2. 在要编辑的私钥所在的行中,单击 操作 菜单 "操作" 图标 > 编辑详细信息
    3. 使用 自动旋转 选项来启用或禁用私钥的自动旋转。

从 CLI 调度自动轮换

您可以使用 Secrets Manager CLI 插件来调度私钥的自动轮换。

设置用户凭证的自动轮换策略

使用 ibmcloud secrets-manager secret-metadata-update 调度用户凭证的自动轮换。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

要除去策略,请将资源块保留为空。

为公用证书设置自动轮换策略

使用 ibmcloud secrets-manager secret-metadata-update 来调度公用证书的自动轮换。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true, "rotate_keys": true}'

设置专用证书的自动轮换策略

使用 ibmcloud secrets-manager secret-metadata-update 来调度专用证书的自动轮换。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

设置 IAM 凭证的自动轮换策略

使用 ibmcloud secrets-manager secret-metadata-update 来调度 IAM 凭证的自动轮换。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

要除去策略,请将资源块保留为空。

为服务凭证设置自动轮换策略

使用 ibmcloud secrets-manager secret-metadata-update 调度服务凭证的自动轮换。

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

要除去策略,请将资源块保留为空。

为自定义凭据设置自动轮换策略

通过使用 ibmcloud secrets-manager secret-metadata-update.

ibmcloud secrets-manager secret-metadata-update \
    --id=SECRET_ID \
    --rotation='{"auto_rotate": true,"interval": 30,"unit": "day"}'

要除去策略,请将资源块保留为空。

使用 API 调度自动轮换

您可以使用 Secrets Manager API 来调度私钥的自动轮换。

设置用户凭证的自动轮换策略

以下示例请求为用户凭证 (username_password) 私钥创建自动轮换策略。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
            "rotation": {
               "auto_rotate": true,
               "interval": 1,
               "unit": "month"
            }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

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

要除去策略,请将资源块保留为空。

为公用证书设置自动轮换策略

如果您希望将证书安排为自动更新,那么可以在订购证书时或通过编辑现有证书的详细信息来启用证书的自动轮换。 在证书的下一个轮换周期中,Secrets Manager 会在证书到期日期前 31 天对证书进行重新排序。

订购自动更新的公用证书

以下示例请求对启用了自动轮换的证书进行排序。 调用 API 时,请将 auto_rotate 属性设置为 true。 (可选) 您可以将 rotate_keys 设置为 true,以在每次轮换时为证书请求新的专用密钥。

curl -X POST
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H "Content-Type: application/json" \
   -d '{
         "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
         },
         "rotation": {
            "auto_rotate": true,
            "rotate_keys": true
         },
         "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
         }
      }' \
   "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

成功响应会返回证书的 ID 值和其他元数据。 有关必需和可选请求参数的更多信息,请查看 API 参考

设置 IAM 凭证的自动轮换策略

以下示例请求为 IAM 凭证 (iam_credentials) 私钥创建自动轮换策略。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

要除去策略,请将资源块保留为空。

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

定义的旋转时间间隔不能高于定义的生存时间。 轮换仅适用于“复用”密钥设置为 true 的 IAM 凭证。 您可以使用 minute 时间单位来设置私钥的 TTL,但这些私钥无法进行旋转。

为服务凭证设置自动轮换策略

以下示例请求为服务凭证 (service_credentials) 私钥创建自动轮换策略。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

要除去策略,请将资源块保留为空。

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

定义的旋转时间间隔不能高于定义的生存时间。

为自定义凭据设置自动轮换策略

下面的请求示例为自定义凭据 (custom_credentials) 密文创建了自动轮换策略。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。

curl -X PATCH
   -H "Authorization: Bearer {iam_token}" \
   -H "Accept: application/json" \
   -H 'Content-Type: application/merge-patch+json' \
   -d '{
          "rotation": {
            "auto_rotate": true,
            "interval": 30,
            "unit": "day"
          }
         }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/metadata"

要除去策略,请将资源块保留为空。

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

定义的旋转时间间隔不能高于定义的生存时间。