gsutil 是不是支持使用服务帐户信息创建 boto 文件?

Posted

技术标签:

【中文标题】gsutil 是不是支持使用服务帐户信息创建 boto 文件?【英文标题】:Does gsutil support creating boto files with service account info?gsutil 是否支持使用服务帐户信息创建 boto 文件? 【发布时间】:2016-08-26 06:34:58 【问题描述】:

根据几个示例,gsutil config 可用于从服务帐户的 OAuth2 凭据创建与 GCS 兼容的 .boto 文件。

例如,https://cloud.google.com/storage/docs/xml-api/gspythonlibrary 在服务帐户凭据下建议您应该使用 gsutil config -e 配置 .boto 文件;但是,在运行该命令时,我得到:

CommandException: OAuth2 is the preferred authentication mechanism 
with the Cloud SDK. Run "gcloud auth login" to configure authentication, 
unless you want to authenticate with an HMAC access key and secret, 
in which case run "gsutil config -a".

按照说明,我尝试使用 gcloud auth activate-service-account:

$ gcloud auth activate-service-account --key-file=/Users/crschmidt/mirandum-local/cloud-storage-service.json 
Activated service account credentials for: [gcs-storage@livestream-alerts.iam.gserviceaccount.com]

但这不会创建 .boto 文件。

我可以在互操作模式下配置一个可互操作的 HMAC 项目 ID/秘密并使用它,但由于首选 OAuth2 凭据,并且服务帐户凭据似乎是正确的方法,我不确定如何继续。如何为服务帐户编写 .boto 文件?

crschmidt-macbookair:~ crschmidt$ gsutil --version
gsutil version: 4.19

【问题讨论】:

gcloud 的更新版本有一个更好的错误消息,说您需要更改 gcloud config set pass_credentials_to_gsutil false 然后运行命令帐户。我已经这样做了,它生成了 .boto 文件。 【参考方案1】:

gcloud 将凭据存储在 ~/.config/gcloud(而不是 .boto)下的文件中,然后在您使用 gsutil 时将它们传递给 gsutil。

【讨论】:

在我的新笔记本电脑上,我发现它实际上在 ~/.config/gcloud/legacy_credentials/email_address/.boto 好的,但是接下来要做什么呢?我在那个目录中有这些关键文件。它们不是 .boto,而是 multistore.json、private_key.json、singlestore.json。如何与博托合作?谢谢。 使用 gsutil 上传文件可以,但 Chris 正在尝试使用 python boto 库

以上是关于gsutil 是不是支持使用服务帐户信息创建 boto 文件?的主要内容,如果未能解决你的问题,请参考以下文章

配置 gsutil 以在 pod 内使用 kubernetes 服务帐户凭据

为啥 gsutil 从使用 KMS 加密的存储桶中恢复文件(使用没有 DECRYPT 权限的服务帐户)?

如何将 gsutil 与多个帐户一起使用?

Google gsutil auth 没有提示

Gmail API 是不是支持使用 OAuth 服务帐户?

使用 gsutil 创建存储桶时出错