小编gui*_*ere的帖子

使用用户帐户凭据访问私有 Cloud Run/Cloud Functions

这是我的用例。

  • 我已经以私有模式部署了 Cloud Run 服务。(与云功能相同的问题)
  • 我正在开发一项使用此 Cloud Run 的新服务。我使用应用程序中的默认凭据进行身份验证。它适用于 Compute Engine 和 Cloud Run,因为默认凭据是从元数据服务器获取的。

但是,在我的本地环境中,我需要使用服务帐户密钥文件来实现此目的。(例如,当我设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量时)

但是,我无法使用我的用户帐户凭据。

Java、Node 或 Go 中的日志跟踪非常清晰:不可能在用户凭证类型上生成身份令牌。

所以,

  • 为什么谷歌身份验证库不允许这样做?
  • 为什么 Google 前端仅接受 Google 签名的身份令牌?
  • 是否存在继续使用用户帐户的解决方法?

还有一段上下文:我们希望避免使用服务帐户密钥文件。今天,这是我们的重大安全漏洞(文件被复制、通过电子邮件发送、甚至公开提交到 Github 上......)。用户帐户默认凭据适用于所有 Google Cloud API,但不适用于 IAP 和 CLoud Run/Functions。

编辑

这是一些错误的例子。

爪哇

我这样做

        Credentials credentials = GoogleCredentials.getApplicationDefault().createScoped("https://www.googleapis.com/auth/cloud-platform");

        IdTokenCredentials idTokenCredentials = IdTokenCredentials.newBuilder()
                .setIdTokenProvider((IdTokenProvider) credentials)
                .setTargetAudience(myUri).build();

        HttpRequestFactory factory = new NetHttpTransport().createRequestFactory(new HttpCredentialsAdapter(idTokenCredentials));
Run Code Online (Sandbox Code Playgroud)

我的用户凭证不符合IdTokenProvider接口


Caused by: java.lang.ClassCastException: class com.google.auth.oauth2.UserCredentials cannot be cast to class com.google.auth.oauth2.IdTokenProvider (com.google.auth.oauth2.UserCredentials and com.google.auth.oauth2.IdTokenProvider …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-cloud-functions google-iam google-cloud-run

12
推荐指数
1
解决办法
5306
查看次数

此默认值与变量的类型约束不兼容:元素“tags”:需要字符串

我正在尝试添加类型,但它没有选择它,boot_disk如果我将类型创建为对象,我很困惑如何给出“network_interface”类型。\n错误:\xe2\x94\x82 This default value is not compatible with the variable's type constraint: element "tags": string required.

\n
variable worker {\n    type        = map(string)\n    default     = {\n        worker_count = 2\n        name         = "k3s-master"\n        machine_type = "n1-standard-1"\n        tags         = ["k3s", "k3s-master"]\n        zone         = "us-central1-a"\n\n\n        boot_disk = {\n            initialize_params = {\n            image = "debian-9-stretch-v20200805"\n            }\n        }\n\n        network_interface = {\n            network = "default"\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

terraform terraform-provider-gcp

2
推荐指数
1
解决办法
9044
查看次数

终端关闭时运行 Google Cloud Storage gsutil 命令

我正在删除 GS Storage 存储桶中的大量文件。我gsutil从 shell cmd 运行,如下所示:

gsutil -m rm -r gs://bucket-name/folder-name
Run Code Online (Sandbox Code Playgroud)

我发现当 shell 会话结束或关闭 chrome 时,命令会被中断,即使是在&后台运行也是如此。关于即使会话结束也不被中断运行命令或脚本有什么想法吗?

谢谢

linux gsutil

0
推荐指数
1
解决办法
2305
查看次数