【问题标题】:Can service accounts be specified when using gsutil?使用 gsutil 时可以指定服务帐户吗?
【发布时间】:2019-04-02 03:19:41
【问题描述】:

我在我的 Jenkins 实例中使用gsutil rsync 将代码部署到作曲家,我希望能够将代码部署到不同的项目(生产、登台、开发......)。使用 gcloud 时,我唯一需要做的就是提供 --account 参数,以便选择允许 Jenkins 执行此操作的服务帐户,但似乎 gsutils 仅适用于配置文件并且会创建竞赛多个作业同时运行时的条件,因为这都取决于gcloud config 中的配置。

有没有办法指定 Google Cloud 的 gsutil 必须使用哪个帐户?

【问题讨论】:

    标签: google-cloud-platform gsutil google-cloud-iam


    【解决方案1】:

    首先,请注意,如果您使用的是与 gcloud 捆绑的 gsutil 安装,gcloud 会将其当前活动的凭据传递给 gsutil。如果您想避免这种情况并使用多个不同的凭据/帐户进行重叠调用,您应该通过 gsutil 直接管理凭据(使用单独的 boto 配置文件),而不是 gcloud。您可以通过运行 gcloud config set pass_credentials_to_gsutil false 来禁用 gcloud 的自动凭据传递行为。

    默认情况下,单独的 gsutil 安装都将写入相同的状态目录 ($HOME/.gsutil),并加载相同的默认 boto 配置文件。为了避免竞争条件,您可以(并且应该)使用相同的 gsutil 安装,但为可能重叠的调用指定不同的 state_dir 和/或 boto 配置文件。这可以在 boto 配置文件级别设置,也可以使用 -o 选项设置,例如gsutil -o "GSUtil:state_dir=$HOME/.gsutil2" cp src dst。你会发现更多关于它的信息here

    【讨论】:

      【解决方案2】:

      您可以使用gsutil config -e 传递服务帐户凭据。

      更多详情:https://cloud.google.com/storage/docs/gsutil/commands/config#configuring-service-account-credentials

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-13
        • 1970-01-01
        • 2019-11-01
        • 2014-11-10
        • 2015-06-06
        • 2014-09-06
        • 2014-09-05
        • 2015-02-15
        相关资源
        最近更新 更多