我正在设置一台单板计算机,该计算机在大屏幕上显示 GCP 计费信息图。我不想使用我自己的所有者凭据来显示 pi 上的图表(已受到保护),而是想使用服务帐户登录 GCP 后端并仅将计费查看者角色委派给该帐户。我经常将服务帐户用于命令行程序等,但我无法找到一种方法来使用服务密钥实际登录到 gcp 控制台的 GUI 部分。这可能吗?
谢谢
billing report service-accounts google-cloud-platform google-cloud-iam
我在 GCP 控制台 UI 中检查了 IAM 和管理员。我有两个角色:(Company name) Project Owner和Editor。成员是我公司的电子邮件地址。
但是当我尝试编辑(编辑按钮)其他人的角色和权限时,我收到以下消息:
您需要此操作的权限。所需权限:resourcemanager.projects.setIamPolicy
我的(Company name) Project Owner角色是由项目经理授予的。看来我只有编辑器角色权限。
更新
我有一个这样的组织:
公司网站
对于project_b,我具有上述角色并遇到此问题。
当我检查Over granted permissions(单击1489/1601)时(Company name) Project Owner,我得到了这个:
对于此绑定,目前没有可用的建议。但是,您无权查看当前角色定义的分析。
但是,我可以检查Over granted permissions的Editor作用。我只能提供尽可能多的信息
我正在尝试将角色分配给 GCP 项目中 Terraform 文件中的用户,但出现以下错误:
\n\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
我使用了下面的代码:
\nmodule "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]\nRun Code Online (Sandbox Code Playgroud)\n google-cloud-platform terraform google-iam google-cloud-iam terraform-provider-gcp
我是 Google Cloud Platform (GCP) 的新手,我尝试创建一个新的虚拟机,但默认用户名很烦人。假设我的 gmail 是 example.email@gmail.com,用户名就是 example_email。
我怎样才能将其更改为:smith,而不是 example_email?
非常感谢!
我在谷歌云平台中有多个项目和API,如地图API、PHP应用程序引擎、SQL等。
谷歌改变了计费管理方式,现在计费确实有可能因任何原因(错误、黑客等)飙升。
如何才能在达到限制时禁用所有计费?不仅仅是电子邮件通知,这还不够!我不能只是关闭我的应用程序引擎实例,因为地图和其他地方的 API 凭据仍然会产生费用!
google-app-engine billing google-cloud-platform google-cloud-billing
验证来自Google Cloud Scheduler的HTTP请求的过程是什么?docs(https://cloud.google.com/scheduler/docs/creating)提到您可以创建一个目标为任何公共HTTP终结点的作业,但没有提及服务器如何验证cron / scheduler请求。
我想为客户端创建 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
我正在寻找 GCP 中的职位。我有一个用例可以阅读 GCP 中的所有内容。因此,当我查看查看者角色时,文档说它是只读角色,但似乎有很多限制。查看者角色的具体权限是什么?
是否可以使用 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
这是我来自 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