使用基于云的数据库的核心安全含义在基础架构即服务以及平台即服务上是通用的;有两点重要的不同在于PaaS模型中的安全分担责任,以及PaaS数据库中共租户问题。
任何时间你将一个应用转移到云端,你都需要同一个云提供商分担安全责任。比如,如果你在AWS EC2实例上管理了自己的数据库,你需要依赖AWS来提供物理安全以及执行访问控制。作为IaaS的一个客户,你需要对确保操作系统安全以及具体的用户授权负责。同PaaS工作时,更多的责任转移给了PaaS提供商。
PaaS提供商可以假定管理数据库安全控制。具体而言,厂商要确保服务器、数据库应用、文件以及其他存储机制的安全。这是更加关注应用性能和分析物理网应用开发者可以利用的优势,而不是关注数据库管理。
在使用PaaS数据库时,你可能想要考虑和其他的PaaS用户数据相对而言,自己的数据是如何存储的。比如,如果使用一个键值数据库,数据可能存储于一个单一的逻辑数据库中。在这个场景中,PaaS应用必须包括具体的客户标识符,有一个键值确定,来避免与其他用户的数据发生冲突。如果使用一个关系型数据库来存储应用具体的数据,比如来自汽车的传感器读取,然后PaaS提供商可能基于客户ID使用一个单一的数据库和分区。PaaS客户的关键问题是“相对于其他客户的数据,自己的数据如何存储,以及其他人访问客户的数据,这种机制可能导致的潜在漏洞是什么?”
关于运行在虚拟服务器上的应用,多租户也是一个问题。一个应用的单一实例是否能从多个客户处接受数据?比如,一个消息队列,类似Kafka或者Kenesis,可以用来接受来自物联网设备的数据;对于你而言,共享消息服务是可以接受的吗?或者你要求有自己的消息队列,独立的输入流?
PaaS提供商可能提供了具体的数据库服务,精准适用于物联网工作负载。理解多租户是很重要的,尤其是数据加载服务、应用是如何处理的以及数据存储是如何实施的。