Milvus向量数据库怎样确保数据安全
在充分考虑数据安全的情况下,用户身份验证和传输层安全(TLS)连接现在在Milvus 2.1中正式可用。无需用户身份验证,任何人都可以使用SDK访问向量数据库中的所有数据。但是,从Milvus 2.1开始,只有拥有有效用户名和密码的用户才能访问Milvus向量数据库。此外在Milvus2.1中,数据安全性受到传输层安全(TLS)的进一步保护,可以确保计算机网络中的安全通信。 Milvus向量数据库中的基本用户身份验证功能支持使用用户名和密码访问向量数据库,以确保数据安全。这意味着客户端只有在提供经过身份验证的用户名和密码后才能访问Milvus实例。 1.MilvusVector数据库中的身份验证工作流程 所有gRPC请求都由Milvus代理处理;因此身份验证由代理完成。使用凭证登录连接Milvus实例的流程如下: (1)为每个Milvus实例创建凭证,加密后的密码存储在etcd中。Milvus使用bcrypt进行加密,因为它实现了Provos和Mazières的自适应哈希算法。 (2)在客户端,SDK连接Milvus服务时发送密文。base64密文(:)通过密钥授权附加到元数据。 (3)Milvus代理拦截请求并验证凭证。 (4)凭证在代理本地缓存。 在更新凭证后,Milvus向量数据库中的系统工作流程如下: (1)Root coord负责调用插入、查询和删除API时的凭据。 (2)当用户因为忘记密码而更新凭证时,例如,新密码将保存在etcd中。则代理的本地缓存中的所有旧凭据都将无效。 (3)身份验证拦截器首先从本地缓存中查找记录。如果缓存中的凭据不正确,将触发从根坐标获取最新记录的RPC调用。并且本地缓存中的凭据会相应更新。 2.如何在Milvus向量数据库中管理用户身份验证 要启用身份验证,需要在milvus.yaml文件中配置Milvus时先将common.security.authorizationEnabled设置为true。 在启用之后,将为Milvus实例创建一个root用户。该root用户可以使用Milvus的初始密码连接Milvus向量数据库。 复制 from pymilvus import connections connections.connect( alias='default', host='localhost', port='19530', user='root_user', password='Milvus', ) 强烈建议在首次启动 Milvus 向量数据库时更改 root 用户的密码。 然后, root 用户可以通过运行以下命令创建新用户来进一步创建更多新用户进行身份验证访问。 from pymilvus import utility utility.create_credential('user', 'password', using='default') 创建新用户时要记住两件事: 新用户名长度不能超过32个字符,且必须以字母开头。用户名中只允许使用下划线、字母或数字。例如,用户名“2abc!”不被接受。 至于密码,其长度应为6~256个字符。 设置好新凭证后,新用户可以使用用户名和密码连接到Milvus实例。 复制 from pymilvus import connections connections.connect( alias='default', host='localhost', port='19530', user='user', password='password', ) 与所有身份验证过程一样,不必担心忘记密码。可以使用以下命令重置现有用户的密码。 from pymilvus import utility utility.reset_password('user', 'new_password', using='default') 2.TLS连接 传输层安全性(TLS)是一种身份验证协议,用于在计算机网络中提供通信安全性。TLS使用证书在两个或多个通信方之间提供身份验证服务。 如何在Milvus向量数据库中启用TLS 要在Milvus向量数据库中启用TLS,首先需要运行以下命令,准备两个用于生成证书的文件:一个名为openssl.cnf的默认OpenSSL配置文件和一个名为gen.shused的文件,用于生成相关证书。 mkdir cert && cd cert touch openssl.cnf gen.sh 然后可以将在此处提供的配置复制并粘贴到这两个文件中。或也可以根据我的配置进行修改,以更好地适应应用。 当这两个文件准备好之后,可以运行gen.sh文件来创建九个证书文件。同样,也可以根据需要修改九个证书文件中的配置。 (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |