首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stackdriver访问被拒绝

Stackdriver访问被拒绝
EN

Stack Overflow用户
提问于 2017-04-22 20:45:21
回答 1查看 1.1K关注 0票数 0

当尝试使用Google Python3 API客户端创建接收器时,我会得到以下错误:

代码语言:javascript
复制
RetryError: GaxError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.PERMISSION_DENIED, The caller does not have permission)>)

我使用的代码是这样的:

代码语言:javascript
复制
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path_to_json_secrets.json'

from google.cloud.bigquery.client import Client as bqClient
bqclient = bqClient()
ds = bqclient.dataset('dataset_name')

print(ds.access_grants)
[]

ds.delete()
ds.create()

print(ds.access_grants)
[<AccessGrant: role=WRITER, specialGroup=projectWriters>,
 <AccessGrant: role=OWNER, specialGroup=projectOwners>,
 <AccessGrant: role=OWNER, userByEmail=id_1@id_2.iam.gserviceaccount.com>,
 <AccessGrant: role=READER, specialGroup=projectReaders>]

from google.cloud.logging.client import Client as lClient
lclient = lClient()
dest = 'bigquery.googleapis.com%s' %(ds.path)
sink = lclient.sink('sink_test', filter_='jsonPayload.project=project_name', destination=dest)
sink.create()

不太明白为什么会发生这种事。当我使用lclient.log_struct()时,我可以看到日志到达日志控制台,所以我可以访问Stackdriver。

这个设置有什么错误吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-24 21:12:10

创建接收器需要不同的权限,而不是编写日志条目。默认情况下,服务帐户被赋予项目编辑器(非所有者),该编辑器没有创建接收器的权限。

请参阅所需的在访问控制文档中权限列表。

确保您使用的服务帐户具有logging.sinks.create权限。最简单的方法是将服务帐户从Editor切换到Owner,但是最好添加Logs角色,这样您就可以给它它所需的权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43564418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档