当前位置: 首页 > 知识库问答 >
问题:

python 3.7无法访问google secret service manager

刘安志
2023-03-14

我为特勤局经理配置了所需的角色,但当我尝试通过python 3.7代码访问它们时,我收到错误403访问被拒绝:

google.api_core.exceptions.PermissionDenied: 403 Permission 'secretmanager.secrets.list' denied for resource 'projects/projectid' (or it may not exist)

如果我使用命令行访问它们,它会起作用:

gcloud secrets list

这是python代码:

# Build the resource name of the parent project.
parent = f"projects/projectid"

# Create the Secret Manager client.
client = secretmanager.SecretManagerServiceClient()

# List all secrets.
for secret in client.list_secrets(request={"parent": parent}):
    print("Found secret: {}".format(secret.name))

共有1个答案

仲霍英
2023-03-14

你的代码对我有用。

BILLING="..."
PROJECT="..."
ACCOUNT="..."
SECRET="test"

gcloud projects create ${PROJECT}
gcloud beta billing projects link ${PROJECT} \
--billing-account=${BILLING}

gcloud services enable secretmanager.googleapis.com \
--project=${PROJECT}

gcloud iam service-accounts create ${ACCOUNT} \
--project=${PROJECT}

EMAIL="${ROBOT}@${PROJECT}.iam.gserviceaccount.com"

gcloud iam service-accounts keys create ${PWD}/${ACCOUNT}.json \
--iam-account=${EMAIL}

# See note: the minimum role that includes the perm to list secrets
gcloud projects add-iam-policy-binding ${PROJECT} \
--member=serviceAccount:${EMAIL} \
--role=roles/secretmanager.viewer

echo "test" > test
gcloud secrets create ${SECRET} \
--data-file="test" \
--project=${PROJECT}

python3 -m venv venv
source venv/bin/activate

python3 -m pip install google-cloud-secret-manager

# Both required by the app
export PROJECT
export GOOGLE_APPLICATION_CREDENTIALS=${PWD}/${ACCOUNT}.json

python main.py

产量:

Found secret: projects/12345678912/secrets/test

主要的py:

from google.cloud import secretmanager

import os

project=os.getenv("PROJECT")

client = secretmanager.SecretManagerServiceClient()

parent = f"projects/{project}"

secrets = client.list_secrets(request={
    "parent":parent,
})

for secret in secrets:
    print("Found secret: {}".format(secret.name))

注意角色/秘书长。查看器是唯一包含列出secretmanager所需权限的预定义角色。秘密。列表(链接)

 类似资料:
  • 问题内容: 我真的很想用Struts2来解决问题- 通过省略部分路径,我可以访问JSP页面。请注意该路径应该包括在内。关键是要看路径中的单词。 这是文件: 我可以通过: 和通过: 请注意,在两个URL中,我都可以删除,为什么? 来源:http: //www.mkyong.com/misc/how-to-use-mkyong- tutorial/ 有人可以看完上面的教程,告诉我怎么了吗? 问题答案:

  • 我无法访问 尝试的网址:localhost/htdocs 本地主机:80/htdocs IP: 80/htdocs 总是同样的错误 错误: 未找到对象! 在此服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试。 如果您认为这是服务器错误,请联系网站管理员。 所有服务都正常运行我正在使用端口:80 我查看了apacheconf: 这是根医生 DocumentRoot:您将在其中提供文

  • 我正在用log4j2创建Spring-Boot应用程序。我使用的库是:https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api/2.11.1 https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.11.1 在这些JAR中找不到

  • 我是docker的新手,正在尝试容器化一个简单的Spring Boot应用程序。docker文件如下所示。 谢谢!!

  • Magnus@Martin-HP-625~/下载/robomind$cat./robomind.sh java-jar-djava.ext.dirs=lib-dsun.java2d.ddscale=true-dsun.java2d.noddraw=true RoboMind.jar Magnus@martin-HP-625~/downloads/robomind$java-jar-djava.ex

  • 这个问题是这个问题的后续问题。我似乎无法用下面的代码访问jackson库:

  • 当我的吊舱试图查询任何kubeletendpoint(任何端口)时,它们立即得到一个。 编辑:以上情况发生在任何端口上,而不仅仅是4194 ServiceMonitor:

  • 问题内容: 我正在尝试将方法传递给子组件以处理onclick事件。我在网上看到了很多示例,但无法正常运行。当我在父级的渲染功能中并尝试将“ this.handleClick”传递给子级时,handleClick是未定义的。 看一下ThumbList的渲染方法: 知道我可能会缺少什么吗? 问题答案: 如果您在开发工作流程中使用Babel之类的编译器,则建议使用箭头函数: 如您所见,这是一个很好的紧凑