繁体   English   中英

错误 403:您的客户端没有在 python google 云模块中获取 URL 的权限

[英]error 403: Your client does not have permission to get URL in python google cloud module

更新:根据我们的系统专家告诉我的,他们解决了如下问题:必须在他们所在的操作系统中禁用 v6 ips。

我在服务器上有一个 python 文件,计划每周运行一次。 像这样:

from google.cloud import bigquery
gbq_credentials = create_gc_credentials(settings)
client = bigquery.Client(credentials=gbq_credentials,project=project_id)
df = client.query(sql_query).to_dataframe()

#data processing
....

但是每周运行的文件今天出错了:

Error 403 (Forbidden)!!1
Your client does not have permission to get URL <code>/bigquery/v2/projects/xxxx/jobs</code> from this server.

当我在本地计算机上运行相同的文件时,我没有收到任何错误。

我更新了服务器上过时的 python 库 但它没有用。 此外,我在使用谷歌云模块的所有文件上都遇到了同样的错误。

这个问题可能是由什么引起的?

正如 Bushmaster 评论的那样,禁用 IPV6 解决了这个问题。

我正在写下禁用它的步骤:

sudo echo "net.ipv6.conf.all.disable_ipv6=1" >> /etc/sysctl.conf
sudo echo "net.ipv6.conf.default.disable_ipv6=1" >> /etc/sysctl.conf
sudo echo "net.ipv6.conf.lo.disable_ipv6=1" >> /etc/sysctl.conf
sudo sysctl -p

希望能帮助到你!

“create_gc_credentials”如何工作? 从错误信息来看,服务器上运行的服务帐号没有权限。

可能有很多原因。 您可以考虑以下选项:

  • 此错误可能是由于缓存引起的,有时擦除缓存可能有助于修复它。
  • 您可能只需要重新启动服务器。
  • 不允许您访问该资源,或者服务器端出现错误。
  • web 服务器的所有者设置了不正确的权限,当您确实不应该拒绝访问时,您会被拒绝。

或者

使用 BigQuery API 时,您需要为用户创建具有 OAuth 凭据的客户端。 对于使用 API 进行访问,这通常是服务帐户身份。 创建服务帐户时,该帐户不会自动将成员身份添加到您的项目中。 要将属于您的项目成员的用户和服务帐户 go 更新为您的项目 select 导航面板中的“权限”,并确保您调用的用户或服务帐户身份是项目的“读者”。

如果它与权限有关,您可以查看有关它的文档

(这应该是评论,但我没有足够的声誉)您能否分享您如何确认该服务器已被谷歌禁止以及您如何解决问题?

我们有同样的问题。 在我们的服务器上,我们收到“错误 403:您的客户端无权获取 URL”,但本地请求工作正常。 我们尝试移动到另一台服务器,起初一切正常,但现在我们再次收到错误消息。 谷歌控制台上没有错误或消息,我们只有基本支持(= 无法直接联系谷歌)。 我们必须购买支持计划吗?

大多数情况下,错误与用户代理的身份是否可以被验证和/或用户代理是否具有访问受保护服务所需的权限有关。

在没有授权标头的情况下向云函数发送发布请求后出现此错误。

例如,如果创建云功能时启用了“ Allow unauthenticated ”,则请求会通过而不会出现此错误。
在此处输入图像描述

一项快速测试是通过在 Cloud Shell 中运行gcloud auth print-identity-token并在授权请求标头中传递生成的令牌来生成不记名令牌。 没有错误!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM