Google Cloud Pub / Sub服务是否支持“数据驻留”?

问题描述 投票:2回答:3

我的应用程序需要确保通过Pub / Sub发送的消息中包含的数据不会离开欧盟的边界。这与所谓的“数据驻留”要求有关。

Pub / Sub被描述为全局服务[1],其中服务的客户端可以在不知道存储和处理消息的特定位置的情况下发布/订阅消息。

我可以将Pub / Sub用于我的应用程序吗?

[1] https://cloud.google.com/pubsub/architecture

google-cloud-pubsub
3个回答
2
投票

今天提供的Google Cloud Pub / Sub服务版本不提供任何“数据驻留”保证。然而,可以设计具有Pub / Sub的解决方案,其最小化违反“数据驻留”目标的风险,使得Pub / Sub消息数据存储在EU多区域之外的可能性变得极不可能。特别:

  1. 当居住在欧盟地区的发布者(即发布/订阅客户代码)(例如eu-west1)向Pub / Sub主题发布消息时,该消息将存储在同一区域中,除非a)Pub / Sub in地区遭受停电; b)VM和Pub / Sub之间的网络连接遇到延迟峰值;或c)消息主题的订户从不同的区域连接。
  2. 驻留在EU区域(例如eu-west1)的计算引擎VM发布的消息不太可能被复制到EU之外,因为Pub / Sub负载均衡器在决定是否存储时使用网络延迟(ping)的度量给不同地区的消息。从欧盟地区到不同欧盟地区的网络延迟可能低于从欧盟地区到非欧盟地区的网络延迟。因此,即使在中断事件(即上面的1a)和区域内网络延迟峰值(上面的1b)中,该消息也可能留在欧盟。
  3. 如果消息被复制到欧盟地区之外,则该消息将被存储在非欧盟地区最多7天,之后将其删除。邮件保留时间可以减少到少于7天。

2
投票

Google Cloud Pub / Sub不支持数据驻留。建议的解决方案是确保您不使用Pub / Sub发送任何客户数据。相反,您可以发送指向存储在数据存储区,GCS等中的实际数据的指针。这些服务确实尊重数据驻留,并且可以配置为确保数据不会离开EU。


2
投票

更正:事实证明,我们无法在任何地方实际设置数据驻留。 MessageStoragePolicy类型仅用于读取

2019年后期的答案:现在可以使用UI,CLI和API

从2019年初开始回答:Golang API有一个MessageStoragePolicy类型https://godoc.org/cloud.google.com/go/pubsub#MessageStoragePolicy

type MessageStoragePolicy struct {
// The list of GCP regions where messages that are published to the topic may
// be persisted in storage. Messages published by publishers running in
// non-allowed GCP regions (or running outside of GCP altogether) will be
// routed for storage in one of the allowed regions. An empty list indicates a
// misconfiguration at the project or organization level, which will result in
// all Publish operations failing.
AllowedPersistenceRegions []string }
© www.soinside.com 2019 - 2024. All rights reserved.