gcloud:在两个 VM 实例之间复制文件?

gcloud:在两个 VM 实例之间复制文件?

我有两个 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之后如果其他人可以访问这台机器。

相关内容