问题标签 [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.
google-cloud-platform - Gcloud - 无法使用一个服务帐户配置多个 VM
我正在使用 Gcloud 运行 Prow(持续集成服务器)。我的一项工作是创建一个虚拟机,执行一些测试,然后删除该实例。我使用服务帐户来创建 VM,运行测试。
一段时间后,我收到以下错误:
实际上,对于该服务帐户,describe
命令会返回大量数据,例如sshPublicKeys
部分中的约 70 个条目。
gcloud auth activate-service-account --key-file ...
gcloud compute os-login describe-profile
这些公钥中的大部分都引用了已删除的 VM 实例。如何执行此列表的清理?或者是否有可能根本不存储该公钥?
google-app-engine - gcloud app deploy 失败:来自请求 [URL] 的 [ID] 权限被拒绝
我正在尝试使用gcloud app deploy
我的计算机将我的 React 应用程序部署到 Google Cloud App Engine。这在上周末和之前工作得很好。
我得到以下输出:
按照构建日志中的链接,我将转到 Google Cloud Console 中的 Cloud Build 日志。以下是该日志的最后一部分。在这一点之上还有更多的日志,但似乎一切正常。
如您所见,错误消息是
我不明白它告诉我什么是错的。我无法将 75e33-ID 映射到用户帐户,即使我是,它声称拒绝权限的资源是什么,我该怎么办?对我来说,这似乎是谷歌云内部,我不知道如何继续。
任何想法将不胜感激。
我尝试过的事情
gcloud auth revoke
并gcloud auth login
确保我使用当前项目的正确帐户登录gcloud config list
并验证电流project
是否正确。- 当我运行时,
gcloud app deploy
我还验证了项目信息在执行部署之前提示确认时是否正确 - 已验证我的用户帐户(仍然)在 Google Cloud Console IAM 中添加了正确的角色
google-api - 委托人(用户或服务账户)缺少资源的 IAM 权限“cloudtasks.tasks.create”
当我尝试将任务添加到队列时,会抛出上述错误消息。这是我的设置和有关此问题的信息:
- 项目编号:
my-project
- 服务帐号 ID:
my-service-account
- 任务队列名称:
my-queue
- 任务队列位置:
asia-northeast1
(Cloud Task 目前处于测试阶段的少数几个位置之一)
另外,让我们确认以上所有内容都存在并且正在运行。
当我通过 POSTING 检查我的服务帐户角色时https://cloudresourcemanager.googleapis.com/v1/projects/my-project:getIamPolicy
我收到类似于以下内容的回复:
如您所见,my-service-account
具有以下 2 个角色:
- 角色/cloudtasks.admin
- 角色/cloudtasks.enqueuer
这两个角色都有cloudtasks.tasks.create
权限。
当我尝试使用以下命令将任务添加到 Cloud Task 时:
POST https://cloudtasks.googleapis.com/v2beta3/projects/my-project/locations/asia-northeast1/queues/my-queue/tasks
+ 任务负载
我收到以下错误消息:
这真的让我很困惑。
有谁知道我可能做错了什么?
google-api - 如何使用 Angular dart auth_browser 隐式流检索经过 Google 身份验证的用户范围信息
我正在尝试遵循此 dart + google auth 入门(https://github.com/dart-lang/googleapis_auth),但我很难找到对 javascript sdk 工具包的类似调用(https://developers .google.com/api-client-library/javascript/samples/samples#authorizing-and-making-authorized-requests)
什么是等效的 isSignedIn,您如何访问请求的范围详细信息,例如用户个人资料/电子邮件信息?
我认为这可以通过调用 peoples api 来完成,但没有成功
编辑:我确实想添加文档说:“经过身份验证的 HTTP 客户端现在可以代表用户访问请求的 oauth2 范围的数据”,但我看不出这是如何实现的。目标只是检查用户是否登录,并获取他们登录时使用的电子邮件地址。
编辑 2:我设法取得了一点基础,我相信,并在其中创建了一个新的 PeopleApi 客户端,但这会引发两个错误:
dart_sdk.js:15886 拒绝设置不安全的标头“user-agent” dart_sdk.js:15886 拒绝设置不安全的标头“content-length”
python - 如何使用 python 以编程方式获取 GCP Bearer 令牌
gcloud auth print-access-token
给我一个不记名令牌,我以后可以使用;但是,这是一个 shell 命令。我如何通过 Google Cloud Python API 以编程方式获取一个?
我看到了一个使用oauth2client的先前示例,但现在已弃用。我将如何使用google.auth和oauthlib做到这一点?oauth2client
google-cloud-platform - Google Cloud Compute Viewer 允许 SSH,但它不应该
我正在尝试使用 GCloud IAM 权限在我们的 GCP 基础架构上设置每个实例级别的权限(例如,可以在机器 A 上进行 SSH,但不能在机器 B 上进行 SSH)。
但是,我遇到了一个奇怪的行为。
如果我将一个用户添加到 GCloud 项目中Compute Viewer
,则该用户将能够在该部分中的所有VM 设置上进行 SSH。Compute Engine
这是没有意义的,因为文档本身指出您不能使用 SSH Compute Viewer
:https ://cloud.google.com/compute/docs/access/
此外,当我尝试为每个特定实例设置权限时(通过进入Compute Engine
> VM Instances
,选择特定实例并从权限选项卡中添加权限),这些似乎实际上没有任何效果。
不知道我是否错过了什么:
- 为什么
Compute Viewer
允许SSH? - 为什么每个实例的权限无效?
google-cloud-platform - 我们可以通过使用其他一些访问/承载令牌来更改谷歌的 IAM 策略吗
我正在使用 GmailwebhookTrigger 来获取新电子邮件的通知。我想将多个成员添加到我的主题中,这意味着希望获得有关我的主题的多个人的通知。为此,我必须将该成员作为 pub/sub 订阅者添加到我的 iampolicy 控制台中。我无法做到这一点,这给了我以下错误
通过点击以下api
另外,如果我尝试点击以下其他 api,我也会收到相同的错误
我已经完成了文档中提供的所有内容来解决这个问题,但我无法这样做。但是,当我在以下 url 将外部用户作为所有者添加到我的 IamConsole 中时https://console.cloud.google.com/iam-admin/ia?project=testProject
,我能够实现我愿意实现的目标。但是我必须手动完成这件事,因此我将我的项目的全部权利授予其他用户。我认为要允许外部用户更改我的云策略,我需要使用我的服务帐户对外部用户进行身份验证。但我不知道该怎么做。建议我使用我的服务帐户或任何其他方式对用户进行身份验证,以便我可能无需手动执行任何操作。
google-cloud-platform - 通过 api 调用访问 google Cloud IAM 策略所需的范围列表
我正在尝试使用用户的承载/访问代码访问我的 google Cloud IAM 策略控制台。我想向同一用户授予权限以创建对我的主题的订阅在步骤 1 中获得的电子邮件地址以向用户授予对我们主题的访问权限查看策略,该策略是关联成员(例如用户)的绑定集合具有角色的帐户或服务帐户。您可以参考以下网址了解详情https://cloud.google.com/iam/docs/granting-changing-revoking-access
。使用读-修改-写模式更新资源的策略。这意味着没有用于创建、修改或撤销用户访问权限的不同方法。
相反,所有修改都是通过以下方式进行的:通过遵循 api 调用 getIamPolicy() 来读取当前策略
https://cloudresourcemanager.googleapis.com/v1/projects/gmail-trigger-1534948877977:getIamPolicy
通过使用文本编辑器或以编程方式编辑返回的策略,以添加或删除任何所需的成员及其角色授权。
按照 api 调用 setIamPolicy() 来编写更新的策略
https://cloudresourcemanager.googleapis.com/v1/projects/gmail-trigger-1534948877977:setIamPolicy
。但在这两种情况下,我都会收到以下错误:{ "error": { "code": 403, "message": "调用者没有权限", "status": "PERMISSION_DENIED" } }
我在做一些其他操作时也使用了范围列表,我使用的范围列表是:
我的问题是我缺乏一些范围还是我必须通过其他方式这样做。我可以通过进入控制台手动执行此操作,但我无法以编程方式执行此操作。
google-cloud-platform - 将 Actions on Google 项目移动到不同的 Google 电子邮件帐户?
我认为无法将我的 Actions on Google 项目移至其他 Google 帐户。我使用我的个人 Gmail 测试开发,并希望将其切换到我的工作 Gmail。
python - 记录在 Python API 脚本中创建的 Google Cloud Service 帐户密钥
我设法通过 Python API iamcredetials.googleapis.com 创建了一个服务帐户和一个自身的密钥,但我无法登录它,因为密钥是 P12 格式并dict
以 .登录密钥。有没有办法创建 p12 文件或其他东西,以便我可以使用密钥?
我尝试使用模块中可用的函数,oauth2clinet.service_account.ServiceAccountCredentials()
但它们都没有成功加载它,我知道这个库中有一定程度的弃用,也许我正在使用过时的方法。
我越接近成功登录是在使用 _from_p12_keyfile_contents()
给出“编码例程”错误的功能时,这超出了我的理解。
登录此密钥的正确方法是什么?