gpt4 book ai didi

google-compute-engine - 如何在 gcloud 中使用多个服务帐户?

转载 作者:行者123 更新时间:2023-12-02 12:04:51 24 4
gpt4 key购买 nike

我有两个 Google Cloud 服务帐号;我的两个项目各一个。

# ACCOUNTS
editor@someproj-1.iam.gserviceaccount.com
editor@someproj-2.iam.gserviceaccount.com

我可以在执行命令之前告诉 gcloud 我需要使用哪个帐户:

gcloud set account [ACCOUNT]

问题:有什么方法可以配置 gcloudgsutil 以便将它们用于在各自项目中执行的操作我不必一直手动在这些帐户之间切换?

<小时/>

我正在一个项目中管理实例,并从另一个项目中的存储桶上传/下载文件。必须在命令之间始终执行 gcloud set_account [ACCOUNT] 变得非常乏味。

我需要同时在两个项目中运行长时间运行的命令,这使我认为如果我激活/取消激活用于这些命令的帐户,我会陷入困境。

也许我唯一的选择是从两个不同的 Docker 容器运行 google-cloud-sdk?

最佳答案

这里有多种选择:

  • Cloud SDK 尊重指定属性的环境变量。 gcloud config set accountgcloud config set core/account 的简写,因此对应的属性为 CLOUDSDK_CORE_ACCOUNT

    你可以这样做:

    $ CLOUDSDK_CORE_ACCOUNT=email1@domain1.com gcloud ...
    $ CLOUDSDK_CORE_ACCOUNT=email2@domain2.com gcloud ...

    这应该会给你带来你感兴趣的结果。

  • 如果您需要更改多个属性,Cloud SDK 提供 named configuration抽象。有关完整详细信息,请参阅文档,但您可以运行:

    $ gcloud config configurations create my-project1-config
    $ gcloud config configurations activate my-project1-config
    $ gcloud auth login # or activate-service-account
    $ gcloud config set project project1 # and any other configuration you need to do
    $
    $ gcloud config configurations create my-project2-config
    $ gcloud config configurations activate my-project2-config
    $ gcloud auth login # or activate-service-account
    $ gcloud config set project project2 # and any other configuration you need to do
    $
    $ CLOUDSDK_ACTIVE_CONFIG_NAME=my-project1-config gcloud ...
    $ CLOUDSDK_ACTIVE_CONFIG_NAME=my-project2-config gcloud ...
  • 在最极端的情况下,您可以维护单独的 Cloud SDK 配置目录。默认值(在 *nix 上)为 ~/.config/gcloud:

    $ CLOUDSDK_CONFIG=/tmp/tmpconfig1 gcloud auth login
    $ CLOUDSDK_CONFIG=/tmp/tmpconfig2 gcloud auth login

关于google-compute-engine - 如何在 gcloud 中使用多个服务帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44820119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com