访问私钥
在 IBM Cloud® Secrets Manager 服务实例中存储私钥后,可以检索其值。
准备工作
开始之前,请确保您具有所需的访问级别。 要查看可用私钥的列表,您需要 读者 服务角色或更高版本。 要检索私钥的值,您需要 SecretsReader 服务角色或更高角色。
在 UI 中检索私钥
您可以使用 Secrets Manager UI 来检索私钥。 执行以下步骤以获取私钥。
- 在 私钥 表中,单击 操作 菜单
以打开私钥的选项列表。
- 要查看私钥值,请单击 查看私钥。
- 确保您处于安全环境中后,单击 确认。
将显示密钥值 15 秒,然后关闭对话框。
密文旋转后,可以通过版本历史选项查看之前的密文值。
您还可以撤销私钥的详细信息,例如到期日期和轮换时间间隔或状态。
- 在 私钥 表中,单击 操作 菜单
以打开私钥的选项列表。
- 要查看私钥值,请单击 详细信息。
您可以从“私钥”表中的过滤器选项进一步过滤检索的私钥,并选择私钥组和/或私钥类型。
下载证书
要使用 Secrets Manager UI 下载证书,请完成以下步骤。
- 在控制台中,单击 菜单 图标
> 资源列表。
- 从服务列表中,选择 Secrets Manager的实例。
- 在 密钥 表中,打开要下载的证书的溢出菜单。
- 单击下载。 证书文件将下载到本地系统。
从 CLI 检索私钥
在实例中存储私钥后,您可能需要检索其值,以便可以连接到外部应用程序或获取对受保护服务的访问权。 您可以使用 Secrets Manager CLI 插件来检索私钥的值。
要获取私钥的值以及查看其详细信息 (例如到期日期和轮换时间间隔或状态),请运行 ibmcloud secrets-manager secret
命令。
ibmcloud secrets-manager secret --id SECRET_ID
此命令将输出私钥的值以及其他元数据。 有关命令选项的更多信息,请参阅 ibmcloud secrets-manager secret
。
您还可以使用其名称来获取私钥:
ibmcloud secrets-manager secret-by-name --secret-type SECRET_TYPE --name SECRET_NAME --secret-group-name SECRET_GROUP_NAME
您可以使用 --secret-types
和 --match-all-labels
可选标志进一步过滤检索的私钥。
下载证书
使用证书时,可能需要使用 CLI 将证书的有效内容下载到 pem
文件中。 为此,可以使用 Secrets Manager CLI 插件和 jq
。
要将证书存储到 pem
文件中,请运行 ibmcloud secrets-manager secret
命令。
ibmcloud secrets-manager secret --id=SECRET_ID | jq -r '.certificate' | sed 's/\\n/\n/g' > my-cert-file.pem
该命令输出证书的值并将其存储到 my-cert-file.pem
。 有关命令选项的更多信息,请参阅 ibmcloud secrets-manager secret
。
使用私钥标识通过 API 检索私钥
在实例中存储私钥后,您可能需要检索其值,以便可以连接到外部应用程序或获取对受保护服务的访问权。 您可以使用 Secrets Manager API 来检索私钥的值。
以下示例请求检索私钥及其详细信息,例如到期日期和轮换时间间隔或状态。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{secret_ID}"
成功响应将返回私钥的值以及其他元数据。 有关必需和可选请求参数的更多信息,请参阅 获取私钥。
您可以使用 ?secret_types
和 ?match_all_labels
可选参数进一步过滤检索的私钥。
使用私钥名称通过 API 检索私钥
您还可以通过引用私钥的名称 (而不是标识) 来检索私钥的值:
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secret_groups/{secret_group_name}/secret_types/{secret_type}/secrets/{secert_name}"
请注意,您需要指定私钥的 name
,secret group name
和 secret_type
。
您可以使用 ?secret_types
和 ?match_all_labels
可选参数进一步过滤检索的私钥。
检索包含二进制数据的任意私钥
如果使用二进制文件 (例如图像) 创建了任意私钥,那么服务会使用 base64 编码将数据存储为 base64 编码的字符串。 要访问原始形式的密文,您需要完成几个额外步骤,对检索到的密文进行 base64 解码。
首先,通过调用 Secrets Manager API 来检索私钥。 以下示例使用 cURL 和 jq
来收集私钥的 payload
值。
export ARBITRARY_SECRET=`curl -X GET
-H "Authorization: Bearer $IAM_TOKEN" \
-H "Accept: application/json"
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/arbitrary/{id}" | jq --raw-output '.payload | sub(".*,"; "")'`
如果检查 $ARBITRARY_SECRET
的内容,将看到 base64 编码的数据。 以下片段显示了示例输出。
echo $ARBITRARY_SECRET
eUdB68klDSrzSKgWcQS5...(truncated)
要以原始格式 (二进制文件) 查看私钥,可以使用 base64 解码。 以下示例使用 base64
macOS 实用程序对 $ARBITRARY_SECRET
内容进行 base64 解码。
echo $ARBITRARY_SECRET | base64 --decode > my-secret.png
数据将转换回可以从本地计算机打开的二进制文件。
下载证书的先前版本
轮换证书后,可以使用 Secrets Manager API 以编程方式访问其先前版本。
下面的请求示例检索了一个秘密及其内容。 调用 API 时,请将标识变量和 IAM 令牌替换为特定于 Secrets Manager 实例的值。
curl -X GET
--header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/previous"
直接链接到秘密
您可以复制直接指向秘密详细信息面板的链接。
- 在 私钥 表中,单击 操作 菜单
以打开私钥的选项列表。
- 要复制秘密链接,请单击复制秘密 URL。