标签: gcp-iam

组织管理员不知何故无权在 GCP 中创建文件夹?

我很确定这是 GCP 目前的一个实际错误。我是 GCP 组织的组织管理员(我已对此进行了四次检查,并且我已使用正确的帐户登录)。

但是,当我转到“管理资源”并尝试创建新文件夹时,它不允许我选择组织作为位置,因为我“没有所需的 resourcemanager.folders.create 权限”。如果我尝试在组织内的项目中创建文件夹,则会收到“未知错误”。

我是最初创建组织和所有项目的用户,也是该域中唯一存在的 G-Suite 用户。

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

7
推荐指数
1
解决办法
3828
查看次数

Terraform google_project_iam_binding 从 IAM 主体中删除 GCP 计算引擎默认服务帐户

问题

\n

roles/editorTerraform GCP google_service_account 和 google_project_iam_binding 资源,用于在 IAM 主体中附加已删除的 Google API 服务代理和 GCP 默认计算引擎默认服务帐户。由于 IAM 主体被删除,GKE 集群无法删除/创建,尽管它仍然保留在 IAM 服务账户中。

\n

这里的问题是它从 IAM 主体中消失(我写为“已删除”),并且 Compute Engine 默认服务帐户受到威胁,因此无法再管理 Compute Engine,包括 GKE 集群/节点。

\n\n

问题

\n

我相信这是一个 Terraform 错误,但请帮助了解我是否遗漏了一些可以防止该问题的东西。

\n

另请告知是否有办法将 Compute Engine 默认服务帐户恢复到具有编辑者角色的 IAM 主体中。

\n

环境

\n
$ terraform version\nTerraform v1.0.4\non linux_amd64\n+ provider registry.terraform.io/hashicorp/google v4.6.0\n
Run Code Online (Sandbox Code Playgroud)\n

.terraform.lock.hcl

\n
# This file is maintained automatically by "terraform init".\n# Manual edits may …
Run Code Online (Sandbox Code Playgroud)

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

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

如何获取通过默认凭据获取检索到的当前用户的电子邮件名称

我没有使用 JSON 密钥。我使用创建任何新客户端时使用的默认凭据加载机制。

但有什么方法可以反思当前的信用呢?

import google.auth
creds, project = google.auth.default()

# I can get the project id
print(project)

# I can get the oauth stuff
print(creds.client_secret)
print(creds.client_id)
Run Code Online (Sandbox Code Playgroud)

但是如何获取当前活动的用户或 Google 服务帐户的电子邮件名称呢?

我试过这个

print(creds.service_account_email)
Run Code Online (Sandbox Code Playgroud)

但它返回一个错误:

AttributeError: 'Credentials' object has no attribute 'service_account_email'
Run Code Online (Sandbox Code Playgroud)

这应该是该类的属性。

我想获取用户或谷歌服务帐户的电子邮件名称。

编辑

与此文章相关:以编程方式获取 GCP 上的当前服务帐户

从该帖子的示例中,如果不是 GSA,是否有办法获取用户的电子邮件名称?

import google.auth

credentials, project_id = google.auth.default()

if hasattr(credentials, "service_account_email"):
  print(credentials.service_account_email)
else:
    print("WARNING: no service account credential. User account credential?")
Run Code Online (Sandbox Code Playgroud)

python google-cloud-platform gcp-iam

6
推荐指数
0
解决办法
1663
查看次数