google-cloud-platform - 如何解决 GCloud 权限?
问题描述
我正在尝试将我的 Android 应用程序发布到我们公司的 Play 商店。
在 Google API 访问页面上
我正在尝试创建新的服务帐户。这没用。
您至少缺少以下所需权限之一:项目
orgpolicy.policy.get resourcemanager.projects.get 检查文件夹、组织和项目 ID 是否有效并且您有权访问它们
我的 GCP 显示 myname@github.com 谷歌帐户。另一方面,Google API(Google Play Console) 显示 MYCOMPNAY Team 帐号。
如何解决这个 IAM 问题?
解决方案
我会尽力回答,但这个问题缺乏一些细节。
正如错误所述,服务帐户是 Google 使用的一种独特类型的凭据,旨在供软件(而不是人类)用于与 Google 服务交互。您需要使用服务帐户而不是人工帐户来使用此服务是有道理的(尽管我不熟悉 Play 流程)。
与常规(人类)帐户(例如 yourname@github.com)不同,服务帐户归 Google 项目所有。创建服务帐户时,您需要将帐户范围限定为现有的 Google 项目。
Google 为不同的服务提供各种控制台。我最熟悉 Google Cloud Platform (GCP),因此我会使用 GCP 的 CLI(Cloud SDK aka gcloud
)或https://console.cloud.google.com创建项目和服务帐户。你在用类似的东西吗?
不幸的是,我认为,Google 的工具将项目(即使这些是通用的 Google 资源)扩展到特定平台(云、Firebase、应用程序等),因此您可能无法通过例如 Cloud Console 看到所有项目。
所以....
如果你有一个 Play (!?) 控制台,应该有一种机制来列出|创建项目。如果您还没有,请创建一个项目来拥有您的服务帐户。然后该工具应提供创建服务帐户的机制。在那个项目下这样做。最后,您需要授予服务帐户权限,以便它可以执行您需要它执行的操作(例如发布您的应用程序)。
如果您在问题中添加更多详细信息,我可能会提供帮助。
注意人类(例如您的姓名@github.com 作为 Google 帐户)和服务帐户之间的一个区别是人类帐户使用 3-legged OAuth 而服务帐户使用 2-legged OAuth。这是因为服务帐户无法像人类用户那样与 OAuth 提示进行交互,并且当您需要使用人类与服务帐户时,它通常是一个很好的“提示”。
看:
推荐阅读
- java - What is an alternative to comparing two string with regex
- schema.org - SDTT error: "Service is not a known valid target type for the itemReviewed property"
- vba - VBA using SUMIFS with more criteria
- javascript - FullCalendar get events from database
- html - bootstrap-select 在点击后不显示下拉菜单
- reactjs - 如何在不同的服务器上托管不同的路由?
- c++ - C++ - 如何通过引用传递对象以访问其方法?
- google-cloud-platform - 在 GCP 人脸检测中,我们应该假设哪个轴是测量侧倾角的轴?
- php - 如何确定 infusionsoft 联系人是否具有特定的标签 ID
- c++ - What is the best way to read a structure from a binary file containing IP header fragments?