小编Joh*_*ley的帖子

使用服务帐号登录云控制台GUI

我正在设置一台单板计算机,该计算机在大屏幕上显示 GCP 计费信息图。我不想使用我自己的所有者凭据来显示 pi 上的图表(已受到保护),而是想使用服务帐户登录 GCP 后端并仅将计费查看者角色委派给该帐户。我经常将服务帐户用于命令行程序等,但我无法找到一种方法来使用服务密钥实际登录到 gcp 控制台的 GUI 部分。这可能吗?

谢谢

billing report service-accounts google-cloud-platform google-cloud-iam

6
推荐指数
1
解决办法
3941
查看次数

您需要此操作的权限。所需权限:resourcemanager.projects.setIamPolicy

我在 GCP 控制台 UI 中检查了 IAM 和管理员。我有两个角色:(Company name) Project OwnerEditor。成员是我公司的电子邮件地址。

在此处输入图片说明

但是当我尝试编辑(编辑按钮)其他人的角色和权限时,我收到以下消息:

您需要此操作的权限。所需权限:resourcemanager.projects.setIamPolicy

我的(Company name) Project Owner角色是由项目经理授予的。看来我只有编辑器角色权限。

更新

我有一个这样的组织:

公司网站

  • 项目_a
  • 项目_b

对于project_b,我具有上述角色并遇到此问题。

当我检查Over granted permissions(单击1489/1601)时(Company name) Project Owner,我得到了这个:

对于此绑定,目前没有可用的建议。但是,您无权查看当前角色定义的分析。

在此处输入图片说明

但是,我可以检查Over granted permissionsEditor作用。我只能提供尽可能多的信息

google-cloud-platform google-iam google-cloud-iam

6
推荐指数
1
解决办法
4502
查看次数

在 Terraform for GCP 中允许帐户和角色时出现错误

我正在尝试将角色分配给 GCP 项目中 Terraform 文件中的用户,但出现以下错误:

\n
\n

错误:请求“为“项目 \\”vibrant-mantis-296207\\”“”创建 IAM 成员角色/compute.networkAdmin 用户:someone@google.com 返回错误:批量请求并重试单个请求“创建 IAM 成员角色/ “project \\”vibrant-mantis-296207\\“””的compute.networkAdmin 用户:someone@google.com 均失败。最终错误:为项目“vibrant-mantis-296207”应用 IAM 策略时出错:为项目“vibrant-mantis-296207”设置 IAM 策略时出错:googleapi:错误 403:策略更新访问被拒绝。,禁止

\n
\n

我使用了下面的代码:

\n
module "projects_iam_bindings"\xc2\xa0{\n source\xc2\xa0\xc2\xa0= "terraform-google-modules/iam/google//modules/projects_iam"\n version\xc2\xa0= "~>\xc2\xa06.4"\n\n projects\xc2\xa0= ["vibrant-mantis-296207"]\n\n bindings\xc2\xa0= {\n "roles/storage.admin"\xc2\xa0=\xc2\xa0[\n "user:someone@google.com",\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0]\n\n "roles/compute.networkAdmin"\xc2\xa0=\xc2\xa0[\n "user:someone@google.com",\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0]\n
Run Code Online (Sandbox Code Playgroud)\n

google-cloud-platform terraform google-iam google-cloud-iam terraform-provider-gcp

6
推荐指数
1
解决办法
2万
查看次数

如何更改默认的 Google Cloud 用户名?

我是 Google Cloud Platform (GCP) 的新手,我尝试创建一个新的虚拟机,但默认用户名很烦人。假设我的 gmail 是 example.email@gmail.com,用户名就是 example_email。

我怎样才能将其更改为:smith,而不是 example_email?

非常感谢!

ssh ssh-keys google-compute-engine google-cloud-platform

6
推荐指数
1
解决办法
6214
查看次数

如何防止谷歌云平台2021中的超额计费

我在谷歌云平台中有多个项目和API,如地图API、PHP应用程序引擎、SQL等。

谷歌改变了计费管理方式,现在计费确实有可能因任何原因(错误、黑客等)飙升。

如何才能在达到限制时禁用所有计费?不仅仅是电子邮件通知,这还不够!我不能只是关闭我的应用程序引擎实例,因为地图和其他地方的 API 凭据仍然会产生费用!

google-app-engine billing google-cloud-platform google-cloud-billing

6
推荐指数
1
解决办法
3517
查看次数

验证来自Google Cloud Scheduler的HTTP请求

验证来自Google Cloud Scheduler的HTTP请求的过程是什么?docs(https://cloud.google.com/scheduler/docs/creating)提到您可以创建一个目标为任何公共HTTP终结点的作业,但没有提及服务器如何验证cron / scheduler请求。

cron scheduler google-cloud-platform google-cloud-scheduler

5
推荐指数
1
解决办法
2305
查看次数

使用 serviceusage API 和服务帐户启用 API

我想为客户端创建 GCP 的自动部署。

为了做到这一点,我打开了一个页面让他们用谷歌登录,然后启用 IAM API 和服务使用 API。

然后我创建了一个服务帐户,我想从现在开始使用它,以便按需启用其他必需的 API,而不是一次性启用。

当我尝试启用 cloudkms API 时,我得到

googleapiclient.errors.HttpError: <HttpError 403 when requesting https://serviceusage.googleapis.com/v1/projects/x-y-z/services/cloudkms.googleapis.com?alt=json returned "The caller does not have permission"
Run Code Online (Sandbox Code Playgroud)

我尝试使用从创建服务帐户的响应中创建的服务帐户凭据 (google.auth.jwt.Credentials),并添加了所有必需的权限。我不想将角色所有者授予服务帐户,因为我希望该帐户具有尽可能少的权限。

当我尝试使用用户的权限获取 cloudkms API 的状态时,它起作用了。

我已经看到一些解决方案解决了我需要在此处为​​服务帐户创建凭据的问题:https : //console.developers.google.com/apis/credentials但我确实也需要以编程方式执行此操作。

我的代码:

credentials = jwt.Credentials.from_service_account_file(service_account_info['email'] + '.json', audience="https://www.googleapis.com/auth/cloud-platform")
# credentials = GoogleCredentials.get_application_default() - it works with this
service_usage = googleapiclient.discovery.build('serviceusage', 'v1', credentials=credentials)
service_usage.services().get(name="projects/<project_id>/services/cloudkms.googleapis.com").execute()
Run Code Online (Sandbox Code Playgroud)

上面提到了错误。

python authentication google-cloud-platform google-cloud-iam google-auth-library

5
推荐指数
2
解决办法
4070
查看次数

GCP:查看者角色有哪些权限?

我正在寻找 GCP 中的职位。我有一个用例可以阅读 GCP 中的所有内容。因此,当我查看查看者角色时,文档说它是只读角色,但似乎有很多限制。查看者角色的具体权限是什么?

google-cloud-platform google-iam google-cloud-iam

5
推荐指数
1
解决办法
6452
查看次数

使用工作负载联合身份验证在 Python 中验证 Google-Cloud-Storage

是否可以使用 Google 工作负载联合身份验证的 OIDC 方法来验证我的 Python 应用程序的 Google Cloud Storage 包。

我想做这样的事情:

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = str(os.path.dirname(os.path.dirname(__file__))) + "/keys/credentials.json"
from google.cloud import storage

import google.oauth2.id_token
import google.auth.transport.requests

request = google.auth.transport.requests.Request()
target_audience = "https://pubsub.googleapis.com"

obtained_id_token = google.oauth2.id_token.fetch_id_token(request, target_audience)

storage_client = storage.Client(credentials=obtained_id_token)
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误:

ValueError: This library only supports credentials from google-auth-library-python. See https://google-auth.readthedocs.io/en/latest/ for help on authentication with this library.

python google-cloud-storage google-cloud-platform openid-connect

5
推荐指数
1
解决办法
4679
查看次数

JSON 格式的 Google Cloud 服务帐号密钥中的哪些字段应保持私有?

这是我来自 Google 的 JSON 服务帐户密钥的形状。

{
  "type": "service_account",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": "",
}
Run Code Online (Sandbox Code Playgroud)

哪些字段应该保密?我的意思是,我会将其中的大部分添加到我的 Git 存储库中,并将私有位添加为环境变量。

保护private_key够了吗?

例如:

帐户.ts

{
  "type": "service_account",
  "project_id": "VALUE",
  "private_key_id": "VALUE",
  "private_key": process.env.PRIVATE_KEY,  // Populating it via env variables
  "client_email": "VALUE",
  "client_id": "VALUE",
  "auth_uri": "VALUE",
  "token_uri": "VALUE",
  "auth_provider_x509_cert_url": "VALUE",
  "client_x509_cert_url": "VALUE",
}
Run Code Online (Sandbox Code Playgroud)

我也应该隐藏吗private_key_id

security service-accounts google-cloud-platform google-cloud-iam

5
推荐指数
1
解决办法
685
查看次数