我有两个 Google Compute Engine 实例:instance-1 和 instance-2,我想将文件从 instance-1 复制到 instance-2。两个实例都位于同一个项目和区域中。
在实例 1 中,我运行:
gcloud compute copy-files *.tar.bz2 instance-2:/mnt/pd1/home/ --zone us-central1-b
并收到此错误消息:
ERROR: (gcloud.compute.copy-files) Could not fetch instance: - Insufficient Permission
在两个实例上运行gcloud config list
表明它们使用相同的服务帐户:
Your active configuration is: [NONE]
[core]
account = [email protected]
disable_usage_reporting = True
project = abc-123
有没有一种简单的方法可以在两个 VM 实例之间复制文件而无需切换帐户(即 gcloud auth login)?
答案1
您可以在创建 GCE 实例时设置 Google Cloud API 的服务帐号范围。这样,此 GCE 实例上的服务帐号将有权代表您进行 API 调用。您可以参考此链接了解更多信息。
答案2
您可以使用个人 gcloud 帐户登录来避免服务帐户过度权限。
me@instance-1: gcloud auth login
me@instance-1: gcloud compute scp instance-2:my-file.txt .
假设您的个人 gcloud 帐户具有相关权限
gcloud auth revoke
之后如果其他人可以访问这台机器。