这是我的用例。
但是,在我的本地环境中,我需要使用服务帐户密钥文件来实现此目的。(例如,当我设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量时)
但是,我无法使用我的用户帐户凭据。
Java、Node 或 Go 中的日志跟踪非常清晰:不可能在用户凭证类型上生成身份令牌。
所以,
还有一段上下文:我们希望避免使用服务帐户密钥文件。今天,这是我们的重大安全漏洞(文件被复制、通过电子邮件发送、甚至公开提交到 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
我正在尝试添加类型,但它没有选择它,boot_disk
如果我将类型创建为对象,我很困惑如何给出“network_interface”类型。\n错误:\xe2\x94\x82 This default value is not compatible with the variable's type constraint: element "tags": string required.
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 我正在删除 GS Storage 存储桶中的大量文件。我gsutil
从 shell cmd 运行,如下所示:
gsutil -m rm -r gs://bucket-name/folder-name
Run Code Online (Sandbox Code Playgroud)
我发现当 shell 会话结束或关闭 chrome 时,命令会被中断,即使是在&
后台运行也是如此。关于即使会话结束也不被中断运行命令或脚本有什么想法吗?
谢谢