Keycloak跨数据中心用户数据的部分同步

时间:2019-07-17 10:20:36

标签: amazon-web-services keycloak

我正在为一家德国公司工作,因此我们必须遵守GDPR。我们将产品作为软件即服务出售,并在AWS中托管系统。我们的客户遍布欧洲,美国和亚洲。因此,我们在欧盟西部,美国东北部和亚太地区的AWS中运行多个VPC。我们的计划是将Keycloak用作SSO后端。

到目前为止,我们的最初想法是通过所谓的跨数据中心复制来实现Keycloak。这意味着每个VPC一个Keycloak-Cluster,前面有一个负载均衡器,用于VPC间缓存/通信的Infispan群集,以及作为集中式数据库的Aurora RDS群集,但是我们并不局限于此。问题是,如上所述,我们受GDPR约束,因此欧洲用户的数据不得离开欧盟,除非客户命令我们这样做。我读到的所有内容都是在说Keycloak期望所有数据在整个数据库群集中都是同步的。

有关我们的拓扑和问题本身的信息: 每个客户在最适合的地理区域中都有专用的EC2实例。另外,在欧盟托管有集中式服务。因此,来自美国或亚太地区的用户需要访问欧盟中的系统,但欧盟用户无需访问欧盟以外的实例/服务,除非客户明确订购。

那么我们如何实现呢?

我唯一的想法atm是建立数据库集群(可能不是AWS Aurora RDS)并在数据库本身上配置为不同步所有数据。但这对我来说听起来很糟糕,我不认为Keycloak在此方面做得很好。任何想法或技巧将不胜感激!

1 个答案:

答案 0 :(得分:0)

好,如果有人对我们的解决方案感兴趣: 看起来,我们将接受这样的事实,即在某些情况下,不是欧盟客户会有延迟。 Infinispan群集将用作缓存,因此这些用户将不时出现一次此延迟。该数据库将位于欧盟。 我不确定Infinispan服务器是否充当缓存,是否失去了与其他数据中心中节点的连接,但也许我会找到一些解决办法。