问题标签 [google-iam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
658 浏览

gcloud - 将 gcloud 服务帐号限制为特定存储桶

我有 2 个存储桶,即 prod 和 staging,并且我有一个服务帐户。我想将此帐户限制为只能访问暂存存储桶。现在我在https://cloud.google.com/iam/docs/conditions-overview上看到这应该是可能的。我创建了一个policy.json这样的

但是当我开火时,gcloud projects set-iam-policy lalala policy.json我得到:

我觉得我误解了角色、策略和服务帐户之间的关系。但无论如何:是否可以以这种方式限制服务帐户?

0 投票
1 回答
1078 浏览

google-cloud-platform - 无法使用 gcloud 为 iam 帐户 GCP 创建密钥文件

我正在尝试使用 gcloud 在 GCP 上为服务帐户创建一个密钥文件

不幸的是,它响应

文件夹

存在。

0 投票
3 回答
5684 浏览

kubernetes - Kubernetes pod 无法从容器注册表 (gcp) 中提取图像

我想用'eu.gcr.io'(同一个项目)上存在的新图像更新我在kubernetes上的部署,我以前做过。但是现在 Pod 无法拉取图像,因为它们没有被授权这样做。这是我们在 pod 日志中得到的错误。

集群上的服务帐户具有kubernetes 管理员存储管理员角色,应该足够了。但即使我制作了服务帐户项目编辑器(为了调试),它仍然无法正常工作(同样的错误)。

我也尝试过创建一个全新的集群(默认设置)并在那里应用我的部署,但后来我遇到了完全相同的问题。

我不确定我还能尝试什么。

非常感谢任何帮助或建议。

编辑:

我刚刚发现我仍然可以提取和部署旧图像。但是我构建的每一个新镜像都不能被 kubernetes pod 拉取。

0 投票
1 回答
382 浏览

google-cloud-platform - Vault GCP 项目级角色绑定

我正在尝试应用以下角色绑定以将存储管理员角色授予 Vault 中的 GCP 角色集。

我想授予对项目级别的访问权限,而不是特定存储桶,以便 GCP 角色集可以访问和读取/写入 Google Container Registry。

当我尝试在 Vault 中创建此角色集时,我收到此错误:

我的 Vault 集群在 GKE 集群中运行,该集群具有适用于所有 Cloud API 的 OAuth 范围,我是项目所有者,并且 Vault 使用的服务帐户具有以下权限:

  • Cloud KMS CryptoKey 加密器/解密器
  • 服务帐户参与者
  • 服务帐号管理员
  • 服务帐号密钥管理员
  • 服务帐户令牌创建者
  • 日志编写器
  • 存储管理员
  • 存储对象管理员

我尝试为服务帐户提供编辑者和所有者角色,但我仍然遇到同样的错误。

首先,我是否使用正确的资源在项目级别为存储管理员角色创建角色集?

其次,如果是这样,什么可能导致此权限错误?

0 投票
1 回答
57 浏览

google-cloud-platform - 在 GCP IAM 中授予基于对象的权限

用例:

我有一个 GCP 设置:

基本上,我想以比项目范围更细的粒度授予用户权限(即用户A只能访问存储桶B,但可以访问CloudSQL实例C和D)

可能的解决方案 :

对于 GCS,这很容易并且有文档记录

但是,我找不到其他两个类似的东西。CloudSQL 文档甚至似乎说这是不可能的( All permissions are applied to the project. You cannot apply different permissions based on the instance or other lower-level object.)

探索的解决方法:

  • 我尝试创建自定义 IAM 角色。我希望有某种方法可以过滤角色应用到的对象,其方式类似于 AWS IAM允许的Resource过滤器。这显然是不可能的。
  • 对于 GKE,我可以给每个用户一个Kubernetes Engine Cluster Viewer角色(基本上只允许列出集群和关于它们的基本信息,以及使用gcloudcli 工具登录),然后使用Kubernetes RBAC引擎提供非常细粒度的权限。这很好用,但不允许用户使用 Google Web 界面,这非常方便,特别是对于 k8s 的初学者。
  • Cloud SQL Client同样,对于 CloudSQL,我可以直接通过 postgres 访问控制系统赋予角色,并管理我的用户。这很好用,但我的用户能够连接到其他实例(当然,他们仍然需要这些实例上的帐户)。此外,不能仅在特定实例上允许诸如恢复备份之类的操作。

那么,我是否遗漏了一些明显的东西,或者有人找到了解决这些限制的方法?

0 投票
1 回答
1446 浏览

google-cloud-platform - 无法确定操作系统登录 IAM 权限

有人可以帮我了解我仍然缺少哪个 IAM 权限吗?

我正在尝试OS Login在单个计算 VM 上启用,并添加了enable-oslogin: TRUE. 当我通过 UI 进行 SSH 连接时,我看到以下错误消息:

错误

说明说:

角色/iam.serviceAccountUser

角色/compute.osLogin角色/compute.osAdminLogin

我的 IAM 权限: IAM 权限

0 投票
2 回答
398 浏览

kubernetes - GCloud IAM 角色中的权限如何在 Kubernetes 集群中实现?

我在 GKE 上运行 Kubernetes 应用程序。在 GCP IAM 控制台中,我可以看到几个内置角色,例如Kubernetes Engine Admin. 每个角色都有一个 ID 和与之关联的权限——例如​​,Kubernetes Engine Admin有 IDroles/container.admin和大约 300 个权限,每个都类似于container.apiServices.create.

在 Kubernetes 集群中,我可以运行:

这将返回以下内容:

我在此表中没有看到任何反映 GCP IAM 中角色的角色。

既然如此,GCP IAM 角色是如何在集群中实施/执行的?除了使用 RBAC 之外,Kubernetes 在进行权限检查时还会与 GCP 通信吗?

0 投票
1 回答
685 浏览

google-cloud-platform - 有没有办法使用您当前的凭据来承担服务帐户,而不必使用 json 密钥?

我的个人帐户是我的 gcp 项目中的管理员。

如果我想使用我创建的服务帐户之一(从我的本地笔记本电脑),我这样做:

但我想知道,如果我已经有自己的管理员帐户处于活动状态,有没有办法只假设一个没有密钥的服务帐户?GCP 可以使用我当前的凭据让我访问假设该服务帐户吗?

如果是这样,这也让我想知道我是否可以以同样的方式使用应用于 GCE 实例的服务帐户。所以我可以将一个服务帐户附加到一个 GCE 实例,让它可以访问其他服务帐户。

0 投票
2 回答
2266 浏览

java - Google Cloud BigQuery 管理员服务帐户获得“没有 bigquery.jobs.create 权限”

我是 Google Cloud 和 BigQuery 的新手。我查看了其他十几个似乎相关的问题,但没有看到我从这些答案中遗漏了什么。我正在尝试查询公共数据集。

错误:

我做了什么:

  1. 创建了新的 Google Cloud 帐户
  2. 创建了新项目,Google 为其分配了项目 ID airy-advantage-235802,项目名称为 Kafka Learning。
  3. 创建了一个服务帐户 kafka-learning@airy-advantage-235802.iam.gserviceaccount.com
  4. 授予该用户项目中的 BigQuery Admin 角色(我最初尝试使用 BigQuery User 和 BigQuery Data Viewer)
  5. 我将 JSON 凭据文件保存到本地文件夹
  6. 我将环境变量设置GOOGLE_APPLICATION_CREDENTIALS为 JSON 文件的路径
  7. 我有一个小型 Java 项目来查询公共数据集
  8. 收到上述错误
  9. 已启用验证计费(据我所知,见下文)

我错过了一步吗?

谷歌云项目设置

服务帐户设置

在此处输入图像描述

我还尝试通过将构建器更改为此显式设置项目 ID(也在 json 文件中):

0 投票
1 回答
41 浏览

firebase - 如何在 Firebase 上为每个实时数据库授予不同的 IAM 权限?

目前,我们有一个使用 firebase 的生产应用程序。我们每个环境都有一个项目:developproduction.

我已经看到我们可以创建多个数据库,我们可以有多个托管站点。这使得在同一个项目中创建多个环境非常完美。

问题是在develop环境中我们有多个人(开发人员)具有对数据库的编辑访问权限。在production中,我们希望只有一个人可以访问。

如果有办法限制每个数据库的权限?