问题标签 [google-cloud-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 回答
553 浏览

google-cloud-platform - 是否可以为同一项目中的不同用户设置不同的 BigQuery 配额?

是否可以为同一项目中的不同用户设置不同的 BigQuery 配额?

我知道我可以通过 GCP 的 IAM 和管理部分(按照这些说明)为给定项目设置“每个用户每天的查询使用情况”的限制。

我想知道每个用户是否可以有不同的限制。即说为 John 设置了每天 2 TB 的限制,但为 Jane 设置了每天 1 TB 的限制?

0 投票
2 回答
137 浏览

amazon-web-services - 谷歌云与 aws 服务角色

我来自 AWS 不知道如何使用 gcp 做到这一点。

在 AWS 中,我可以创建 EC2 实例、Lambda、ECS 等服务角色。我将策略附加到该角色以为其提供所需的访问权限。然后我将角色附加到 EC2 实例、lambda 等。没有使用静态密钥,也没有传递任何秘密。

如何使用 gcp 执行此操作?如何将角色(或者可能是 gcp 服务帐户?)附加到 gce 实例、云功能、gke 部署/服务等?

GCP 具有“服务帐户”以及它称为角色的东西和称为“范围”的东西,但我不清楚如何附加它们并隐式授予对资源的访问权限(不传递秘密/密钥)。

0 投票
1 回答
5454 浏览

kubernetes - 您如何像 EC​​S 服务一样将服务帐户附加到 gke 部署/服务?

我来自 AWS 不知道如何使用 gcp 做到这一点。以前我问过一个关于服务帐户的更一般的问题,这是 gke 特有的。

在 AWS 中,我可以创建一个 ECS 服务角色。我将策略附加到该角色以为其提供所需的访问权限。然后我将角色附加到 ECS 服务。所以我可以将多个服务部署到同一个 ECS 集群,并在不使用静态密钥、不传递任何秘密的情况下为它们提供不同的访问权限。

我如何用 gke 做到这一点?如何将 gcp iam 服务帐户附加到 gke 部署/服务等?您可以在部署 yaml 中使用注释来附加服务帐户吗?

我想在同一个 gke 集群上隐式使用不同的服务帐户进行多个部署和服务(不使用密钥)

0 投票
4 回答
13822 浏览

google-cloud-platform - 数据流设置控制器服务帐户

我尝试为 Dataflow 设置控制器服务帐户。在我的数据流选项中,我有:

但我得到:

...

我是否缺少某些角色或权限?

0 投票
2 回答
2190 浏览

google-cloud-platform - 谷歌云:服务帐户权限

任务:我想将本地计算机上的所有日志存储到谷歌日志中。

我面临的问题是我无法创建具有正确权限的服务帐户。即使我会给所有者权限,仍然会得到我的权限被拒绝错误(ACCESS_TOKEN - 它来自帐户 json 密钥的令牌):

目前,我已经设置:在此处输入图像描述它仍然无法正常工作。

在调试时,我决定使用具有这种访问权限的个人帐户: 在此处输入图像描述

并且使用我帐户中的令牌进行请求可以正常工作:

但是,如果我将导出的 stackdriver-station-1.json 凭据文件与 golang/nodejs 应用程序一起使用,我将收到权限被拒绝错误:

在此处输入图像描述

使用控制台和从导出的 json 文件生成的 ACCESS_TOKEN 的相同示例:

欢迎任何建议!对我来说,似乎我缺少谷歌云权限的一些基本部分。就像我需要在云界面或类似的东西中打上一些复选标记。

0 投票
1 回答
944 浏览

google-cloud-platform - 用于插入特定 BigQuery 数据集的 IAM 自定义角色

我有几个将分析事件写入 BigQuery 数据集的客户项目。设置是这样组织的:

1) 每个 GCP 项目都有自己的一组 GCP 资源,其中一些资源使用 BigQuery 插入 API 报告分析。

2) 有一个“主分析”项目,它以标准化表的形式从不同项目中获取所有数据(所有项目都以相同的数据格式编写)。

我在“主要分析”中创建了一个自定义 IAM 角色,具有执行行插入操作所需的权限:

对于每个客户项目,我都创建了一个具有上述角色的唯一服务帐户。这允许任何项目中的每个资源都可以验证和插入行(但不能创建/删除表)。

问题:我真正想做的是将服务帐户限制为仅写入接收所有数据的特定数据集。上述 IAM 角色允许服务帐户列出“主要分析”项目中的所有数据集/表并插入其中。

如果我使用数据集权限- 将服务帐户电子邮件作为用户添加到数据集 ACL - 那么它必须是WRITER数据集角色,这将允许服务帐户在数据集中创建和删除过于广泛的表。

将 IAM 角色与数据集权限组合会产生一个联合,因此更广泛的WRITER权限对更窄的 IAM 角色生效。

无论如何,我可以配置角色/权限以允许每个服务帐户插入并仅插入特定数据集?

0 投票
1 回答
52 浏览

php - 使用 Google Cloud API 获取用户权限

我需要检查用户凭据是否有权访问项目并具有以下权限,例如。

我正在使用以下 PHP 谷歌云库

获取资源管理器对象,我正在尝试为项目执行 testIamPermissions 方法。

它使用 API 端点工作正常,但使用 PHP SDK 没有可用的方法,只有文件夹操作对象可用。

我正在使用以下 JSON 文件

0 投票
1 回答
424 浏览

google-cloud-platform - sonatype-nexus-community/nexus-blobstore-google-cloud 的 GCP IAM 角色

尝试构建 sonatype-nexus-community/nexus-blobstore-google-cloud 但如果没有 GCP 中的项目所有者 iam 角色就无法成功。

如果我正确理解所有内容,至少根据文档,存储管理员 IAM 角色就足够了:

https://github.com/sonatype-nexus-community/nexus-blobstore-google-cloud

还尝试了存储管理员 + 服务帐户用户 + 服务帐户令牌创建者,但也无法成功。

集成测试失败并显示一条消息:

org.sonatype.nexus.blobstore.api.BlobStoreException:BlobId:e0eb4ae2-f425-4598-aa42-fc03fb2e53b2,com.google.cloud.datastore.DatastoreException:缺少权限或权限不足。

详细地说,集成测试使用两种不同的方法创建一个 Blob 存储,然后尝试删除它而不是取消删除它:

  • def "取消删除成功使 blob 可访问"
  • def "当空运行为真时,取消删除什么都不做"

这就是问题开始的地方。删除时执行失败:

断言 blobStore.delete(blob.id, 'testing')

另一个问题是如何取消删除 Google Storage 中不支持取消删除但仅支持版本控制的内容。

_

以下是文档中有关权限的内容:

谷歌云存储权限

接下来,您将需要创建一个具有适当权限的帐户。

在预定义的帐户角色中,Storage Admin 将授予插件 > 创建您需要的任何 Google Cloud Storage Bucket 并管理其中的所有对象,但它也有权管理与项目关联的任何其他 Google Cloud Storage Bucket。

如果您使用自定义角色,该帐户将需要:

  1. (必需) storage.objects.*
  2. (必需) storage.buckets.get
  3. 或 storage.buckets.*。

存储管理员 IAM 角色涵盖 storage.objects.* 和 storage.buckets.*,因此不确定导致问题的原因。

参考:

https://cloud.google.com/storage/docs/access-control/iam-roles https://cloud.google.com/storage/docs/access-control/iam-json

集成测试在 blob 存储删除尝试时失败:

15:27:10.042 [main] 调试 osnbgiGoogleCloudBlobStore - 将 blob 2e22e0e9-1fef-4620-a66e-d672b75ef924 写入 content/vol-18/chap-33/2e22e0e9-1fef-4620-a66e-d672b75ef924.44.bytes 15:27:2 main] 调试 osnbgiGoogleCloudBlobStore - 软删除 blob 2e22e0e9-1fef-4620-a66e-d672b75ef924

org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStoreIT.undelete 成功使 blob 可访问(GoogleCloudBlobStoreIT.groovy:164)

引起:org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: 2e22e0e9-1fef-4620-a66e-d672b75ef924, com.google.cloud.datastore.DatastoreException: Missing or enough permissions., Cause: 缺少权限或权限不足。 ... 1 更多

在 org.sonatype.nexus.blobstore.gcloud.internal.DeletedBlobIndex.add(DeletedBlobIndex.java:55)

在 org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStore.delete(GoogleCloudBlobStore.java:276)

如果我忽略了什么,你能帮我吗?

0 投票
1 回答
639 浏览

google-cloud-platform - 如何使用 python 为 IAM 中的用户授予 Bigquery 的个人权限

我想为用户授予以下 IAM 权限。

允许:

BigQuery 作业用户
浏览器

我知道如何通过 Windows UI 进行设置,但我想通过 python 脚本设置此 IAM 权限?

0 投票
1 回答
361 浏览

node.js - 是否可以使用 IAM 在 gcloud 上托管的应用程序内以谷歌用户身份进行身份验证?

假设我有一个托管在谷歌云上的应用程序:前端和后端。要求是该应用程序只能由特定组内的用户或具有特定角色等的用户在特定的谷歌组织(包含该应用程序的项目所属)内使用。

我想像这样实现它:

1) 前端将要求用户使用谷歌作为第 3 方身份验证器使用他的谷歌账户(我希望它与谷歌云组织绑定)登录。由于该应用程序是使用 node/javascript 构建的,因此可以使用某些npm包(例如passport. 在用户从浏览器登录并发生特定重定向后,Google 应向后端提供有关用户的信息,包括唯一标识符。

2) 后端(在应用引擎、计算引擎等上运行都无关紧要)应该访问一个谷歌云特定的 API,该 API 应该识别用户以及用户是属于一个组还是属于组织,基本上任何有助于。假设该机器将拥有一个服务帐户,该服务帐户具有访问所述 API 并确定用户是否正常的所有必要角色。

3)如果用户正常,那么将为用户在后端创建一个会话,只要该会话存在,后端就会知道请求的身份,所以一切都应该没问题。

我遇到的问题在于第 2 步:查看整个 Google IAM、API、文档视频等。我找不到任何方法来 a)根据唯一 ID 识别用户,b)验证是否用户是组的一部分(通过单独的成员资格资源或其他方式),或者如果它具有关联的特定角色,这相当于我的用例。

任何想法,如果:

1)我的方法是有道理的,这甚至可能吗?

2)如果是这样,那么我应该使用哪些资源或方法来实现它?

3)如果不是那么什么方法适合我的用例?