问题标签 [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.
google-cloud-platform - 我可以使用 gcloud 命令调整服务帐户的权限并启用对 firebase 函数内存储桶的写入访问权限吗?
我有一个 firebase 功能,我想允许对云存储进行写访问。我相信我需要设置一个具有这些权限的服务帐户,然后在我的函数中以编程方式授予它们,但我很困惑如何做到这一点。
firebase 函数将文件写入触发器上的存储桶。Firebase 存储的存储设置设置为默认值,这意味着它们需要对客户端进行身份验证:
在本文档(https://cloud.google.com/functions/docs/concepts/iam)中,在“运行时服务帐户”下,我看到:
在运行时,Cloud Functions 使用服务帐户 PROJECT_ID@appspot.gserviceaccount.com,该帐户在项目中具有编辑者角色。您可以更改此服务帐户的角色以限制或扩展您正在运行的函数的权限。
当它说“运行时”时,我假设这意味着 firebase 函数在该服务帐户的上下文中运行,并且授予它权限。因此,我假设我需要确保该服务帐户的权限具有写入权限,正如我从这个链接中看到的那样(https://console.cloud.google.com/iam-admin/roles?authuser=0&consoleUI =FIREBASE&project=blahblah-2312312)。
我看到命名的权限storage.objects.create
,并假设我需要将其添加到服务帐户。
为了调查服务帐户的当前设置,我运行了以下命令:
我不确定是否有办法从中获取更多详细信息,也不确定 etag ACAB 表示什么。
在查看此文档(https://cloud.google.com/iam/docs/granting-roles-to-service-accounts)后,我认为我需要授予权限。但是,我不完全确定如何从 JSON 示例出发,以及它应该是什么结构,然后关联策略,或者这是否是正确的路径。
例如,我的问题是:
- 我需要自己制作etag吗?
- 我在成员数组中使用什么电子邮件地址?
我看到此命令作为示例列出
我不明白为什么我必须指定两个准电子邮件地址。一个是服务帐户,一个是与服务帐户关联的用户。这是否意味着用户jane@gmail.com
可以在服务帐户的凭据下进行操作?我可以让服务帐户自己拥有我在云功能中使用的权限吗?
有没有更简单的方法可以只使用命令行而不手动编辑 JSON?
而且,一旦我正确建立了我的凭据,我是否需要使用 JSON 服务帐户文件,如许多示例所示:
或者,我是否可以只调用admin.initializeApp()
“......在运行时,Cloud Functions 使用服务帐户 PROJECT_ID@appspot.gserviceaccount.com......”,该函数将自动获得这些权限?
firebase - 在服务器端调用 Firestore 时,用户对 Cloud Firestore 的访问和数据控制
我已经使用 nodejs、express、firebase 函数、firestore 开始了一个基于 Web 的项目,并最终想使用 firebase 托管。到目前为止,我已经能够将所有内容保留在服务器端,直到达到授权和身份验证。我正在使用模型视图控制器结构,因此对 firestore 的调用是在服务器端进行的,因此 firestore 安全规则不起作用。Firestore 安全规则仅在您访问 Firestore 客户端时才有效。
我可以像使用 Cloud Firestore 安全规则一样使用谷歌云 IAM(身份和访问管理)来控制用户读取/写入 Firestore 的能力级别吗?
如果是这样,它就像在 MySQL 中设置不同的用户一样工作:
因此,当管理员登录时,他们使用 admin_webuser 连接到数据库,如果其他人登录,他们使用 user_webuser 连接到数据库。
我可以使用 nodejs、express、firebase 功能实现上述设置以使用 IAM 连接到 Firestore?
目前在我的模型文件夹中,我通过以下方式调用 firestore:
我假设我可以admin.initializeApp(functions.config().firebase);
根据已设置的 IAM 规则更改部件以访问不同的配置文件?那么,当管理员登录我的网站时,我可以使用带有不同配置文件的模型文件夹吗?
我已经阅读了 IAM 上的文档,但它没有任何意义。有人可以给我建议:
如何设置可以使用 IAM 在 Firestore 上执行 CRUD 的管理员?
然后我将如何安排,以便当管理员在我的网站上登录时,只有他们可以在 Firestore 上执行 CRUD 操作?
google-compute-engine - 克隆 Google Compute 实例时为什么会出现“compute.images.get”权限错误?
我正在 Google Compute 实例上的生产网站上工作。
我想建立一个登台站点,并读到最快的方法是克隆生产实例。
尝试克隆它时,出现错误:
“projects/wordpress-sites-170807/global/images/SANITISED-template”所需的“compute.images.get”权限
我无法Required 'compute.images.get' permission
在任何 Google 搜索中找到任何有用的参考。
问题:
1. 我在这个特定的 Cloud Platform 控制台上只有编辑者级别的权限。此错误是否特定于我作为用户? (我现在是该项目的“所有者”,因此我们已经消除了我的个人权限成为问题的可能性)
2. 如果此权限问题与实例本身有关,我该如何更改权限以使其具有“compute.image.get”权限?
google-cloud-platform - 从 JSON 密钥文件将凭据传递给 Big Query
我正在使用公共文档中的这个示例从 Java 客户端连接到 Big Query。
有一条错误消息:
“ServiceOptions.Builder 类型中的方法 setCredentials(Credentials) 指的是缺少的类型 Credentials”
我错过了什么?
google-bigquery - Big Query 允许用户访问单个表
我想让用户能够在更大的数据集中查看和查询单个表。有什么方法可以让用户只查询那个表吗?我知道我可以限制对数据集的访问,但是有没有办法在表级别授予权限?
google-cloud-platform - GCP Cloud Datalab 所需的权限 (IAM)
我正在尝试在我的客户 GCP 帐户中使用 Datalab。我需要哪些 IAM 角色/权限才能访问/创建/使用它?
谢谢
docker - Can't push image to google container registry - Caller does not have permission 'storage.buckets.get'
I am working on a bitbucket pipeline for pushing image to gc container registry. I have created a service account with Storage Admin role. (bitbucket-authorization@mgcp-xxxx.iam.gserviceaccount.com)
#xA;Although that the login is successful, i get: Token exchange failed for project 'mgcp-xxxx'. Caller does not have permission 'storage.buckets.get'. To configure permissions, follow instructions at: https://cloud.google.com/container-registry/docs/access-control
Can anyone advice on what i am missing?
Thanks!
rest - 使用服务帐户和 oauth2 调用 autoML Google API
我已经使用 autoML API 训练了一个图像分类模型,现在我想创建一个 JAVA 程序,使用该模型对给定图像进行预测。如文档中所述,此 API 需要 OAuth 范围:https ://www.googleapis.com/auth/cloud-platform 。
我不需要用户登录,因为我不会使用任何私人数据,所以我决定使用服务帐户并按照OAuth2 中的步骤为服务帐户生成访问令牌。
过程顺利,我收到了回复:
然后,我返回发送 AutoML 预测的 post 请求,并将标题“Authorization”设置为“Bearer access_token_string”。我有错误信息
我知道预测请求是正确的,因为我已经使用为 Web 应用程序生成的 accessToken 进行了尝试(只是想测试)。所以问题出在授权部分,我检查了我的服务帐户是否也具有所有必需的权限。我不知道问题到底出在哪里,有人知道吗?
python - 如何以编程方式获取 GCP VM 实例的计费详细信息?
我浏览了 GCP 文档,找不到太多细节。文档讨论了导出计费信息并使用它,但这需要我没有的某些 IAM 权限。是否有获取账单/发票详细信息的 API 方式?
api - 致命错误:未捕获的异常“Google\Cloud\Core\Exception\ServiceException”错误 403
我正在尝试为脚本设置 Google Cloud API Translate 但不起作用,经过 3 小时调查后,我向您寻求帮助
quickstart.php 的代码是
错误是
致命错误:未捕获的异常 'Google\Cloud\Core\Exception\ServiceException' 带有消息 '{ "error": { "code": 403, "message": "The request is missing a valid API key.", "errors" : [ { "message": "请求缺少有效的 API 密钥。", "domain": "global", "reason": "forbidden" } ], "status": "PERMISSION_DENIED" } } ' in /var /www/vhosts/domain/httpdocs/dev/translator/php-docs-samples/translate/vendor/google/cloud-core/RequestWrapper.php:265 堆栈跟踪:#0 /var/www/vhosts/domain/httpdocs/ dev/translator/php-docs-samples/translate/vendor/google/cloud-core/RequestWrapper.php(170): Google\Cloud\Core\RequestWrapper->convertToGoogleException(Object(GuzzleHttp\Exception\ClientException)) #1 /var/www/vhosts/domain/httpdocs/dev/translator/php-docs-samples/translate/vendor/google/cloud-core/RestTrait.php(96) : Google\Cloud\Core\RequestWrapper->send(Object(GuzzleHttp\Psr7\Request), Array) #2 /var/www/vhosts/domain/httpdocs/dev/translator/php-d in /var/www/vhosts /domain/httpdocs/dev/translator/php-docs-samples/translate/vendor/google/cloud-core/RequestWrapper.php 在第 265 行
我正确地设置了谷歌凭据,或者我认为,我用腻子
导出 GOOGLE_APPLICATION_CREDENTIALS="/var/www/vhosts/domain.es/httpdocs/dev/translator/php-docs-samples/translate/keysss.json"
请帮我!
谢谢