基于IP地址的Google存储访问

问题描述 投票:0回答:5

有没有办法根据来自的 IP 地址来授予对 Google Cloud Storage 存储桶的访问权限。

在 Amazon s3 上,您可以在访问策略中进行如下设置:

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

我不想使用签名网址。

google-cloud-storage
5个回答
9
投票

本页更新的答案仅部分正确,不应推荐用于云存储对象访问控制的用例。

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

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

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


8
投票

更新:现在可以使用 VPC 服务控制


不,目前不可能。

目前有一个功能请求通过IP地址限制谷歌云存储桶。


1
投票

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

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


1
投票

我最近代表客户使用了 VPC Service Controls 来尝试完成此任务。您无法使用 VPC Service Controls 将单个存储桶上的 IP 地址列入白名单。 Jterrace 是对的。今天还没有这样的解决方案。但是,使用 VPC 服务控制,您可以在给定项目中围绕 Google Cloud Storage (GCS) 服务作为一个整体绘制服务边界,然后将访问级别应用于项目中的服务边界以允许 IP 地址/IP 地址范围访问服务(以及其中的资源)。这意味着项目中创建的任何新存储桶都将在服务边界内创建,因此受到应用于边界的访问级别的监管。因此,您可能希望这是该项目中唯一的存储桶。

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

开发者权限:

实现此目的的步骤:

  1. 使用 VPC 服务控制围绕您选择的项目中的整个 Google Cloud Storage 服务创建服务边界
  2. 使用访问上下文管理器为要列入白名单的 IP 地址以及有权访问该服务的用户/组创建访问级别
  3. 将这些访问级别应用到上一步中创建的服务边界(此更改需要 30 分钟才能生效)

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


0
投票

您需要 GCS 存储桶 IP 过滤功能,该功能允许您通过 Internet 和/或 VPC IP 地址网络范围限制客户端对存储桶的访问。

这里是官方文档以及我最近发布的博客文章以帮助您入门。

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