基于IP地址的Google Storage访问权限

时间:2014-12-04 10:14:07

标签: google-cloud-storage

是否可以根据来自的IP地址访问Google云端存储分区。

在Amazon s3上,您可以在访问策略中设置此项:

"Condition" :  {
       "IpAddress" : {
          "aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
      }
}

我不想使用已签名的网址。

4 个答案:

答案 0 :(得分:3)

更新:现在可以使用VPC Service Controls


不,目前无法实现。

目前有Feature request来限制谷歌云存储桶的IP地址。

答案 1 :(得分:2)

此页面上的更新答案仅部分正确,对于云存储对象的访问控制用例,不建议使用。

访问上下文管理器(ACM)定义了允许访问的规则(例如IP地址)。

VPC服务控件在项目周围创建一个“孤岛”,并且可以附加ACM规则。这些规则是“入口”规则,而不是“出口”规则,意思是“该IP上的任何人都可以使用正确的IAM权限进入项目中的所有资源”。

指定IP地址的ACM规则将允许该IP地址访问该项目拥有的所有Cloud Storage Objects和所有其他受保护的资源。这通常不是预期的结果。您不能将IP地址规则应用于对象,只能应用于项目中的所有对象。 VPC服务控件旨在防止数据从项目中移出,并非旨在允许不受信任的匿名用户访问项目的资源。

答案 2 :(得分:1)

VPC服务控件[1]允许用户定义Google Cloud Platform资源(例如Cloud Storage桶)(和其他一些资源)周围的安全范围,以将数据限制在VPC内并帮助减轻数据泄露风险。

[1] https://cloud.google.com/vpc-service-controls/

答案 3 :(得分:1)

我最近代表客户使用了VPC服务控件来尝试完成此任务。您不能使用VPC服务控件将单个存储桶中的IP地址列入白名单。 Jterrace是对的。今天还没有这样的解决方案。但是,使用VPC服务控件,您可以在给定项目中整体围绕Google Cloud Storage(GCS)服务绘制服务范围,然后将访问级别应用于项目中的服务范围以允许ip地址/ ip地址范围访问服务(及其中的资源)。含义是,在项目范围内创建的所有新存储桶都将在服务范围内创建,并因此由应用于范围的访问级别进行调节。因此,您可能希望它成为该项目中的唯一存储桶。

请注意,服务范围仅影响您指定的服务。它并不能保护整个项目。

开发者权限:

完成此操作的步骤:

  1. 使用VPC服务控件围绕您选择的项目中的整个Google Cloud Storage服务create a service perimeter
  2. 使用Access Context Manager来create access levels输入要白名单的IP地址以及有权访问该服务的用户/组
  3. Apply these access levels to the service perimeter在上一步中创建(此更改生效需要30分钟)

注意:最佳实践是尽可能使用服务帐户或用户/组ACL提供对存储桶的访问。我知道并非总是如此。