google-cloud-platform - 无法使用服务帐户订阅 google pub 子主题

标签 google-cloud-platform google-cloud-pubsub google-deployment-manager google-iam

我试图理解此链接中存在的谷歌云示例中给出的示例

IAM Example

此示例创建一个服务帐号、一个 VM 和一个 Pub/Sub 主题。 VM 作为服务帐户运行,服务帐户拥有对 Pub/Sub 主题的订阅者访问权限,从而使在 VM 上运行的服务和应用程序可以访问 Pub/Sub 主题。

但是,当我尝试部署此示例时,出现以下错误

The fingerprint of the deployment is a-v3HjAHciZeSLuE-vSeZw==
Waiting for create [operation-1525502430976-56b6fb6809800-dbd09909-c5d681b2]...failed.
ERROR: (gcloud.deployment-manager.deployments.create) Error in Operation [operation-1525502430976-56b6fb6809800-dbd09909-c5d681b2]: errors:
- code: RESOURCE_ERROR
  location: /deployments/test-dp/resources/my-pubsub-topic
  message: '{"ResourceType":"pubsub.v1.topic","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"User
    not authorized to perform this action.","status":"PERMISSION_DENIED","details":[],"statusMessage":"Forbidden","requestPath":"https://pubsub.googleapis.com/v1/projects/fresh-deck-194307/topics/my-pubsub-topic:setIamPolicy","httpMethod":"POST"}}'

它提到用户无权执行此操作。
我无法理解它提到的是哪个用户。
由于我是项目所有者并且我的帐户是项目的所有者,因此我应该能够部署一个脚本,该脚本可以设置 IAM 策略以订阅发布订阅主题。

可能是我上面的理解有误。有人可以帮助理解为什么这个例子失败了吗?

另外我希望如果这个例子需要任何额外的配置来运行,它应该在 README 文件中提到。但是没有说明。

最佳答案

  • 确保您尝试部署的所有资源的 API 都已启用。
  • 使用 gcloud auth list命令以确保具有足够权限的帐户是事件帐户。
  • 使用 gcloud config list命令以确保默认项目或其他设置正确。
  • 关于google-cloud-platform - 无法使用服务帐户订阅 google pub 子主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50186736/

    相关文章:

    google-cloud-platform - 无法从谷歌云中删除部署

    javascript - Firestore startAt 返回 null

    google-cloud-platform - 处理 Cloud Run 容器关闭

    google-cloud-platform - 如何从 Google Cloud Scheduler 访问内部 VPC http 端点?

    google-cloud-functions - 在 PubSub 后端函数或 Http 函数之间进行选择

    google-cloud-dataflow - 具体版本 : PubSub/Dataflow acknowledgement of unbounded data

    google-cloud-platform - GCP 部署管理器 : 403 does not have storage. buckets.get 访问权限

    java - Google Cloud App Engine - Eclipse 在 app.yaml 中显示 "runtime: java 11"不是 Java

    spring-boot - 带有 spring : know the message is publish or not? 的 PubSub

    google-cloud-platform - 在 GCP Deployment Manager 配置中使用 Stackdriver 资源组的 ID