You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Colab Notebook中访问GCP Secrets Manager密钥?

在Google Colab中访问GCP Secrets Manager密钥的解决步骤

你遇到的404错误源于两个核心问题:Colab环境无法直接通过GCE元数据服务获取默认凭证,同时你的资源名称缺少必填的密钥版本号。以下是两种可行的解决方法:

方法一:使用Colab内置GCP认证

  1. 完成Colab与GCP账号的关联认证:
from google.colab import auth
auth.authenticate_user()

运行后会弹出授权窗口,选择你的目标GCP账号完成验证。

  1. 确保安装Secret Manager客户端库(若Colab未预装):
!pip install google-cloud-secret-manager
  1. 修正代码,补充密钥版本号(必须指定版本,如latest或具体版本ID):
from google.cloud import secretmanager

client = secretmanager.SecretManagerServiceClient()
secret_name = "some_api_key"
project_id = "XXXXXXXXXYYYYY"
# 补充版本号,这里用latest表示最新版本
resource_name = f"projects/{project_id}/secrets/{secret_name}/versions/latest"

# 获取密钥并解析内容
response = client.access_secret_version(request={"name": resource_name})
secret_content = response.payload.data.decode("UTF-8")
# 可根据业务逻辑使用secret_content

方法二:使用服务账号密钥文件

如果需要更持久的认证(比如批量运行脚本),可以采用服务账号密钥方式:

  1. 在GCP控制台创建并下载服务账号密钥(JSON格式),确保该服务账号已配置Secret Manager Secret Accessor权限(在IAM页面分配角色)。

  2. 在Colab中上传该JSON文件:点击左侧面板的文件图标,选择「上传文件」,选中你的密钥文件。

  3. 设置环境变量指向密钥文件,再运行核心代码:

import os
from google.cloud import secretmanager

# 替换为你的密钥文件实际路径
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/content/your-service-account-key.json"

client = secretmanager.SecretManagerServiceClient()
secret_name = "some_api_key"
project_id = "XXXXXXXXXYYYYY"
resource_name = f"projects/{project_id}/secrets/{secret_name}/versions/latest"

response = client.access_secret_version(request={"name": resource_name})
secret_content = response.payload.data.decode("UTF-8")

关键注意事项

  • 必须确保你的GCP账号/服务账号拥有roles/secretmanager.secretAccessor权限,否则会触发权限不足错误。
  • 密钥版本号为必填项,省略会直接导致请求失败。

内容的提问来源于stack exchange,提问作者femibyte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 03:07:27