我们有来自不同环境(例如 DEV、STAGING、..PROD)的多个 GCP 服务帐户密钥。
我想在 Dev 环境中的 jenkins box 中运行一个命令来创建访问 DEV 和 Staging 环境,
我不想跑gcloud 身份验证命令,而我期望的是,
gcloud compute instances list --key-file=dev-sa.json
或者
gsutil ls -l --key-file=dev-sa.json
我们有这样的办法吗?
答案1
以不同的方式解决问题。
不要尝试使用不同的服务帐户,而是使用一个对每个项目具有访问权限(特权)的服务帐户。
创建服务帐户(或使用您创建的帐户)。记下服务帐户电子邮件地址(这是其 ID)。
转到每个项目的 IAM 并将此电子邮件地址添加为成员。为此服务帐户分配所需的角色/权限。对每个项目重复此操作。
现在您可以使用此服务帐户 json 文件来设置 gcloud、软件应用程序等。您需要做的就是在使用凭据时指定项目。
gcloud auth activate-service-account [email protected] --key-file=test_google_account.json
您可以使用 设置默认项目gcloud config set project PROJECT_ID
。或者使用环境变量CLOUDSDK_CORE_PROJECT
。
您可以在命令行中使用以下命令指定项目--project PROJECT_ID
gcloud --project development-123456 compute instances list