如何授予帐户列出已启用 API 的权限?
Posted
技术标签:
【中文标题】如何授予帐户列出已启用 API 的权限?【英文标题】:How can I grant the account permission to list enabled APIs? 【发布时间】:2019-01-25 12:35:49 【问题描述】:在 Cloud Build 上构建期间,我收到以下警告:
Step #2: WARNING: Unable to verify that the Appengine Flexible API is enabled for project [xxxxx]. You may not have permission to list enabled services on this project. If it is not enabled, this may cause problems in running your deployment. Please ask the project owner to ensure that the Appengine Flexible API has been enabled and that this account has permission to list enabled APIs.
我想摆脱这个警告以获得干净的构建日志。
既然构建成功,问题一定不是 Appengine Flexible API 被禁用。
没有;问题一定是该帐户无权列出已启用的 API。我该如何解决这个问题(在控制台或命令行中)?
【问题讨论】:
【参考方案1】:在我的情况下,没有为我想要启用 api 的项目设置帐单。所以我做了:
从导航菜单转到结算,转到您的结算帐户,选择项目设置并更改结算设置。
【讨论】:
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案2】:我今天遇到了这个问题。我需要确保在项目和我的个人资料上启用了计费。对于那些也看到此问题的人,我会检查结算部分。
【讨论】:
【参考方案3】:要验证您的帐户并在 cloudbuild 中启用 API,我必须将帐户添加为 role/App Engine Deployer
,这适用于我的情况。
同样在另一个项目中,我创建了新的 SA,并添加了 Editor
权限,这也有效。这是出于测试目的,但它确实有效。
验证它是否也工作的步骤如下:
gcloud config set account youraccountname
gcloud config set project yourprojectname
然后:
- gcloud auth activate-service-account yourname@yourproject.iam.gserviceaccount.com --key-file=yourfilekey.json
然后验证它是否正常工作:gcloud services list
,您将看到服务列表中的所有NAME
和TITLE
。
【讨论】:
【参考方案4】:要列出可用的服务,您需要services.list
权限。您可以通过包含上述权限的granting a role 授予此权限,例如roles/serviceusage.serviceUsageViewer
,或者如果您愿意,也可以仅使用该权限创建your own personalised role。
关于如何启用 API:首先使用$ gcloud services list
检查所述帐户是否启用了 API,这看起来不太可能。默认情况下,它显示该帐户的所有已启用服务。
如果您在所述列表中看不到“appengineflex.googleapis.com”,您可以运行$ gcloud services enable appengineflex.googleapis.com
这样做。
【讨论】:
你需要services.list
的权限。您可以直接将该权限授予该帐户以解决此问题。 我不清楚如何执行此操作...
@jubobs Ey,抱歉,我已经编辑了我的答案以包含那一点。以上是关于如何授予帐户列出已启用 API 的权限?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查用户是不是已授予我的 PHP 应用程序的特定权限集?