【问题标题】:Cloud Pub/Sub Demo : 403 User not authorized to perform this action. when try to push notificationCloud Pub/Sub Demo : 403 用户无权执行此操作。尝试推送通知时
【发布时间】:2016-06-03 21:13:52
【问题描述】:

我正在学习 Google Cloud Pub/Sub 并关注此官方文档:Writing and Responding to Pub/Sub Messages - Python

当我将它部署到云端并尝试提交消息时, 我收到以下错误:

发生内部错误: 403 用户无权执行此操作。 (发布https://pubsub.googleapis.com/v1/projects/your-project-id/topics/your-topic:publish) 查看日志以获取完整的堆栈跟踪。

我猜是因为一些身份验证问题?任何帮助将不胜感激。

【问题讨论】:

    标签: python google-app-engine google-cloud-platform google-cloud-pubsub


    【解决方案1】:

    确保您使用的客户端已获得发布到 Pub/Sub 的授权。见details here。如果您的客户与主题属于同一项目,通常不需要额外的访问控制配置。确保您的客户是authenticated properly

    【讨论】:

      【解决方案2】:

      以下是来自谷歌文档Troubleshooting 403 (Forbidden) error的一些注释:

      如果您收到此错误,请执行以下操作:

      • 确保您已在 Cloud Platform Console 中启用 Google Cloud Pub/Sub API。
      • 确保发出请求的委托人对相关 Google Cloud Pub/Sub 资源具有所需的权限,
        特别是如果您使用 Google Cloud Pub/Sub 进行跨项目
        沟通。
      • 如果您使用的是 Dataflow,请确保 @cloudservices.gserviceaccount.com 和 Compute Engine
        服务帐号 -compute@developer.gserviceaccount.com
        拥有相关 Google Cloud Pub/Sub 所需的权限
        资源。有关更多信息,请参阅 Google Cloud Dataflow 安全性和权限 信息。
      • 如果您使用的是 App Engine,请检查项目的权限页面以查看 App Engine 服务帐户是否列为编辑者。如果它 不是,请将您的 App Engine 服务帐户添加为编辑器。一般, App Engine 服务帐户的格式为
        @appspot.gserviceaccount.com。

      【讨论】:

        【解决方案3】:

        鉴于订阅和主题,您可以单击“权限”->“添加主体”,将您的json中的长电子邮件粘贴到服务帐户中并选择中描述的权限

        https://cloud.google.com/pubsub/docs/access-control

        【讨论】:

          【解决方案4】:

          按照丹尼尔的回答,我试图给自己Pub/Sub Editor角色Pub/Sub Publisher角色但它没有用,对我有用的是Pub/Sub Admin

          【讨论】:

          • 您是否打算将其作为How to Answer 的答案?在这种情况下,它需要一些editing。或者这是感谢或确认现有答案之一?
          • 嗨穆斯塔法法拉格。我可以假设这篇文章的目的是感谢现有答案吗?似乎是这样,请确认或编辑以使此处的意图更加明显。
          【解决方案5】:

          最新的 python 演示可以工作,但需要 ruby​​ API viewer 权限

          Google 视频系列#pubsubmadeeasy 第 3 集中展示的 Python 演示 Cloud Pub/Sub in Action 使用视频指示您添加的权限,特别是使用更新的代码(请参阅下面的注释)正常工作

          Pub/Sub Publisher
          Pub/Sub Subscriber
          

          但切换到ruby API 需要将查看者权限添加到演示中创建的服务帐户。注意:使用红宝石3.1.0gem 'google-cloud-pubsub', '~> 2.9', '>= 2.9.1'

          
          Pub/Sub Viewer 
          

          python 示例设置注意事项:

          • 使用 python 3.10.1
          • 示例代码 https://github.com/googleapis/python-pubsub.git 具体来说 https://github.com/googleapis/python-pubsub/tree/main/samples/snippets/quickstart
          virtualenv venv && source venv/bin/activate
          pip install --upgrade google-cloud-pubsub
          export GOOGLE_APPLICATION_CREDENTIALS=downloaded_key.json 
          export PROJECT=`gcloud config get-value project`
          

          错误示例:

          订阅错误

          /home/dever/.gem/ruby/3.1.0/gems/google-cloud-pubsub-v1-0.6.2/lib/google/cloud/pubsub/v1/subscriber/client.rb:499:
          in `rescue in get_subscription':
           7:User not authorized to perform this action.. debug_error_string:
          {"created":"@1642638738.357361477",
          "description":"Error received from peer ipv6:[2607:f8b0:4006:80a::200a]:443",
          "file":"src/core/lib/surface/call.cc","file_line":1063,
          "grpc_message":"User not authorized to perform this action.","grpc_status":7} 
          (Google::Cloud::PermissionDeniedError)
          

          发布错误

          /home/dever/.gem/ruby/3.1.0/gems/google-cloud-pubsub-v1-0.6.2/lib/google/cloud/pubsub/v1/publisher/client.rb:574:
          in `rescue in get_topic': 
          7:User not authorized to perform this action.. 
          debug_error_string:{"created":"@1642638676.763569110",
          "description":"Error received from peer ipv6:[2607:f8b0:4006:80a::200a]:443",
          "file":"src/core/lib/surface/call.cc","file_line":1063,
          "grpc_message":"User not authorized to perform this action.","grpc_status":7} 
          (Google::Cloud::PermissionDeniedError)
          

          【讨论】:

            猜你喜欢
            • 2018-02-18
            • 2017-09-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-01-10
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多