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

Django应用访问Google Cloud Secrets时出现403权限错误,求解决方案

Google Cloud Secrets Django访问403权限问题解决建议

问题描述

可以通过命令行正常访问Google Cloud Secrets中的条目:

gcloud secrets versions access 1 --secret=sql-db-pass

已完成项目配置与应用默认登录:

gcloud config set project my-test-project

gcloud auth application-default login 

但在Django应用中调用代码访问时,抛出403权限错误。

调用代码

secret_parent = "projects/my-test-project"
response = secret_client.access_secret_version(request={"name": "sql-db-pass"})
payload = response.payload.data.decode("UTF-8")
print(f"Plaintext: {payload}")

错误信息

google.api_core.exceptions.PermissionDenied: 403 Permission denied on resource project sql-db-pass. [links {
  description: "Google developers console"
  url: "https://console.developers.google.com"
}
, reason: "CONSUMER_INVALID"
domain: "googleapis.com"
metadata {
  key: "service"
  value: "secretmanager.googleapis.com"
}
metadata {
  key: "consumer"
  value: "projects/sql-db-pass "
}
]

解决建议

  • 核心问题:Secret名称格式错误
    调用access_secret_version接口时,name参数必须传入完整的资源路径,而非单纯的Secret名称。正确格式为projects/{项目ID}/secrets/{Secret名称}/versions/{版本号},若要访问最新版本,可替换版本号为latest。

    原代码仅传入sql-db-pass,导致API误将其识别为项目ID,因此触发“Permission denied on resource project sql-db-pass”错误。

  • 修正后的代码示例:

# 指定具体版本的完整路径
secret_name = "projects/my-test-project/secrets/sql-db-pass/versions/1"
response = secret_client.access_secret_version(request={"name": secret_name})
payload = response.payload.data.decode("UTF-8")
print(f"Plaintext: {payload}")

或获取最新版本:

# 访问最新版本的完整路径
secret_name = "projects/my-test-project/secrets/sql-db-pass/versions/latest"
response = secret_client.access_secret_version(request={"name": secret_name})
  • 额外检查项:
    1. 确认通过gcloud auth application-default login生成的凭据账号,拥有roles/secretmanager.secretAccessor权限(或包含该权限的自定义角色),可在Google Cloud控制台的IAM页面为账号添加对应权限。
    2. 确保Django运行环境中,GOOGLE_APPLICATION_CREDENTIALS环境变量指向正确的凭据文件(本地开发时,默认路径通常为~/.config/gcloud/application_default_credentials.json)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:50:17