问题标签 [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.
gcloud - 将 gcloud 服务帐号限制为特定存储桶
我有 2 个存储桶,即 prod 和 staging,并且我有一个服务帐户。我想将此帐户限制为只能访问暂存存储桶。现在我在https://cloud.google.com/iam/docs/conditions-overview上看到这应该是可能的。我创建了一个policy.json
这样的
但是当我开火时,gcloud projects set-iam-policy lalala policy.json
我得到:
我觉得我误解了角色、策略和服务帐户之间的关系。但无论如何:是否可以以这种方式限制服务帐户?
google-cloud-platform - 无法使用 gcloud 为 iam 帐户 GCP 创建密钥文件
我正在尝试使用 gcloud 在 GCP 上为服务帐户创建一个密钥文件
不幸的是,它响应
文件夹
存在。
kubernetes - Kubernetes pod 无法从容器注册表 (gcp) 中提取图像
我想用'eu.gcr.io'(同一个项目)上存在的新图像更新我在kubernetes上的部署,我以前做过。但是现在 Pod 无法拉取图像,因为它们没有被授权这样做。这是我们在 pod 日志中得到的错误。
集群上的服务帐户具有kubernetes 管理员和存储管理员角色,应该足够了。但即使我制作了服务帐户项目编辑器(为了调试),它仍然无法正常工作(同样的错误)。
我也尝试过创建一个全新的集群(默认设置)并在那里应用我的部署,但后来我遇到了完全相同的问题。
我不确定我还能尝试什么。
非常感谢任何帮助或建议。
编辑:
我刚刚发现我仍然可以提取和部署旧图像。但是我构建的每一个新镜像都不能被 kubernetes pod 拉取。
google-cloud-platform - Vault GCP 项目级角色绑定
我正在尝试应用以下角色绑定以将存储管理员角色授予 Vault 中的 GCP 角色集。
我想授予对项目级别的访问权限,而不是特定存储桶,以便 GCP 角色集可以访问和读取/写入 Google Container Registry。
当我尝试在 Vault 中创建此角色集时,我收到此错误:
我的 Vault 集群在 GKE 集群中运行,该集群具有适用于所有 Cloud API 的 OAuth 范围,我是项目所有者,并且 Vault 使用的服务帐户具有以下权限:
- Cloud KMS CryptoKey 加密器/解密器
- 服务帐户参与者
- 服务帐号管理员
- 服务帐号密钥管理员
- 服务帐户令牌创建者
- 日志编写器
- 存储管理员
- 存储对象管理员
我尝试为服务帐户提供编辑者和所有者角色,但我仍然遇到同样的错误。
首先,我是否使用正确的资源在项目级别为存储管理员角色创建角色集?
其次,如果是这样,什么可能导致此权限错误?
google-cloud-platform - 在 GCP IAM 中授予基于对象的权限
用例:
我有一个 GCP 设置:
- 多个Google Kubernetes Engine集群
- 多个CloudSQL实例
- 多个GCS 存储桶
基本上,我想以比项目范围更细的粒度授予用户权限(即用户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
角色(基本上只允许列出集群和关于它们的基本信息,以及使用gcloud
cli 工具登录),然后使用Kubernetes RBAC引擎提供非常细粒度的权限。这很好用,但不允许用户使用 Google Web 界面,这非常方便,特别是对于 k8s 的初学者。 Cloud SQL Client
同样,对于 CloudSQL,我可以直接通过 postgres 访问控制系统赋予角色,并管理我的用户。这很好用,但我的用户能够连接到其他实例(当然,他们仍然需要这些实例上的帐户)。此外,不能仅在特定实例上允许诸如恢复备份之类的操作。
那么,我是否遗漏了一些明显的东西,或者有人找到了解决这些限制的方法?
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 通信吗?
google-cloud-platform - 有没有办法使用您当前的凭据来承担服务帐户,而不必使用 json 密钥?
我的个人帐户是我的 gcp 项目中的管理员。
如果我想使用我创建的服务帐户之一(从我的本地笔记本电脑),我这样做:
但我想知道,如果我已经有自己的管理员帐户处于活动状态,有没有办法只假设一个没有密钥的服务帐户?GCP 可以使用我当前的凭据让我访问假设该服务帐户吗?
如果是这样,这也让我想知道我是否可以以同样的方式使用应用于 GCE 实例的服务帐户。所以我可以将一个服务帐户附加到一个 GCE 实例,让它可以访问其他服务帐户。
java - Google Cloud BigQuery 管理员服务帐户获得“没有 bigquery.jobs.create 权限”
我是 Google Cloud 和 BigQuery 的新手。我查看了其他十几个似乎相关的问题,但没有看到我从这些答案中遗漏了什么。我正在尝试查询公共数据集。
错误:
我做了什么:
- 创建了新的 Google Cloud 帐户
- 创建了新项目,Google 为其分配了项目 ID airy-advantage-235802,项目名称为 Kafka Learning。
- 创建了一个服务帐户 kafka-learning@airy-advantage-235802.iam.gserviceaccount.com
- 授予该用户项目中的 BigQuery Admin 角色(我最初尝试使用 BigQuery User 和 BigQuery Data Viewer)
- 我将 JSON 凭据文件保存到本地文件夹
- 我将环境变量设置
GOOGLE_APPLICATION_CREDENTIALS
为 JSON 文件的路径 - 我有一个小型 Java 项目来查询公共数据集
- 收到上述错误
- 已启用验证计费(据我所知,见下文)
我错过了一步吗?
我还尝试通过将构建器更改为此显式设置项目 ID(也在 json 文件中):
firebase - 如何在 Firebase 上为每个实时数据库授予不同的 IAM 权限?
目前,我们有一个使用 firebase 的生产应用程序。我们每个环境都有一个项目:develop
和production
.
我已经看到我们可以创建多个数据库,我们可以有多个托管站点。这使得在同一个项目中创建多个环境非常完美。
问题是在develop
环境中我们有多个人(开发人员)具有对数据库的编辑访问权限。在production
中,我们希望只有一个人可以访问。
如果有办法限制每个数据库的权限?