如何从没有外部IP的GCE VM读取存储桶?

问题描述 投票:1回答:1

我正在尝试使用gsutil cp命令从GCE VM中读取存储桶中的文件。 GCE VM使用自定义存储帐户,该帐户对存储桶中的文件具有所需的IAM权限和访问策略。我的观察如下:

  1. 当VM具有与之关联的短暂外部IP时,gsutil cp命令正常工作并且文件已成功复制。
  2. 但是,如果没有分配外部IP,则gsutil cp命令不起作用。

在第2种情况下,gsutil cp命令产生以下输出:

gsutil cp gs://<mybucket-name>/<myfile> .
INFO 0304 13:02:18.377339 retry_util.py] Retrying request, attempt #1...
INFO 0304 13:03:20.684459 retry_util.py] Retrying request, attempt #2...
INFO 0304 13:04:25.247341 retry_util.py] Retrying request, attempt #3...
INFO 0304 13:05:34.869920 retry_util.py] Retrying request, attempt #4...
INFO 0304 13:06:52.144510 retry_util.py] Retrying request, attempt #5...

任何人都可以建议如何做出这个以及这是否是预期的行为?从没有分配外部IP的GCE VM中读取存储桶中的内容的正确方法是什么?

google-cloud-platform google-cloud-storage google-compute-engine gsutil google-cloud-iam
1个回答
1
投票

没有外部IP地址的虚拟机实例缺少什么,因此它可以访问云存储是为您的虚拟机实例的子网启用Google私有访问。

正如Private Access Options for Services的文档中所述:

仅具有内部IP地址(无外部IP地址)的VM实例可以使用私有Google Access。他们可以访问Google API和服务的外部IP地址。

您可以在子网的基础上启用私有Google Access;它是VPC网络中子网的设置。要为Private Google Access启用子网并查看要求,请参阅Configuring Private Google Access

你只需要:

  1. 转到控制台 - > VPC网络
  2. 选择VM实例的子网(例如,默认 - > us-central1)
  3. 修改并选择私人Google访问权限 - >开启。然后保存。

还要确保您的VM可以访问Cloud Storage API。

© www.soinside.com 2019 - 2024. All rights reserved.