有没有办法根据来自的 IP 地址来授予对 Google Cloud Storage 存储桶的访问权限。
在 Amazon s3 上,您可以在访问策略中进行如下设置:
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
}
}
我不想使用签名网址。
本页更新的答案仅部分正确,不应推荐用于云存储对象访问控制的用例。
访问上下文管理器 (ACM) 定义允许访问的规则(例如 IP 地址)。
VPC Service Controls 在项目周围创建一个“岛”,并且可以附加 ACM 规则。这些规则是“入口”规则,而不是“出口”规则,意味着“该 IP 上的任何人都可以使用正确的 IAM 权限进入项目中的所有资源”。
指定 IP 地址的 ACM 规则将允许该 IP 地址访问该项目拥有的所有云存储对象和所有其他受保护资源。这通常不是预期的结果。您不能将 IP 地址规则应用于某个对象,只能应用于项目中的所有对象。 VPC 服务控制旨在防止数据流出项目,而不是允许不受信任的匿名用户访问项目资源。
VPC 服务控制 [1] 允许用户围绕 Google Cloud Platform 资源(例如 Cloud Storage 存储桶(以及其他一些))定义安全边界,以限制 VPC 内的数据并帮助减轻数据泄露风险。
我最近代表客户使用了 VPC Service Controls 来尝试完成此任务。您无法使用 VPC Service Controls 将单个存储桶上的 IP 地址列入白名单。 Jterrace 是对的。今天还没有这样的解决方案。但是,使用 VPC 服务控制,您可以在给定项目中围绕 Google Cloud Storage (GCS) 服务作为一个整体绘制服务边界,然后将访问级别应用于项目中的服务边界以允许 IP 地址/IP 地址范围访问服务(以及其中的资源)。这意味着项目中创建的任何新存储桶都将在服务边界内创建,因此受到应用于边界的访问级别的监管。因此,您可能希望这是该项目中唯一的存储桶。
请注意,服务边界仅影响您指定的服务。它不能保护整个项目。
开发者权限:
实现此目的的步骤:
注意:最佳实践是使用服务帐户或用户/组 ACL(如果可能)提供对存储桶的访问权限。我知道情况并非总是如此。