17.8. 共享访问控制
用户可以指定哪些特定客户端有权访问其创建的共享。由于 keystone 服务,由各个用户创建的共享仅对同一项目中的自身和其他用户可见。Manila 允许用户创建"公共"可见的共享。这些共享在属于其他 OpenStack 项目的用户的仪表板中可见,如果所有者授予他们访问权限,它们也可能能够挂载这些共享(如果可以在网络上访问)。
在创建共享时,使用 key --public
使您的共享公共项目在共享列表中查看并查看其详细信息。
根据 policy.json
文件,管理员和用户作为共享所有者可以通过创建访问规则来管理对共享的访问。使用 manila access-allow
、manila access-deny
和 manila access-list
命令,您可以相应地授予、拒绝和列出对指定共享的访问权限。
Manila 不提供存储系统的端到端管理。您仍然需要单独保护后端系统不受未授权访问的影响。因此,如果某人破坏后端存储设备,则 manila API 提供的保护仍可以被绕过,从而获得带外访问。
仅创建共享时,没有与之关联的默认访问规则,并且权限可挂载它。这可以在挂载配置中用于导出协议。例如,存储上有一个 NFS 命令 exportfs
或 /etc/exports
文件,该文件控制每个远程共享并定义可以访问它的主机。如果 nobody 可以挂载共享,则为空。对于远程 CIFS 服务器,有 net conf list
命令显示配置。hosts deny
参数应由共享驱动程序设置为 0.0.0.0/0
,这意味着任何主机都被拒绝来挂载共享。
使用 manila,您可以通过指定这些支持的共享访问级别之一来授予或拒绝对共享的访问:
-
rw
- 读写(RW)访问。这是默认值。 -
ro
- 只读(RO)访问。
当管理员为某些编辑器或贡献者授予某些编辑器或贡献者的读和写(RW)访问权限,并且为其余用户(viewers)提供只读(RO)访问权限时,对公共共享的访问级别会很有用。
您还必须指定这些支持的身份验证方法之一:
-
IP
- 使用 IP 地址来验证实例。可以通过以 CIDR 表示法以正确的 IPv4 或 IPv6 地址为客户端提供 IP 访问。 -
cert
- 使用 TLS 证书来验证实例。将 TLS 身份指定为IDENTKEY
。有效值是证书的通用名称(CN)中最多 64 个字符的任何字符串。 -
user
- 由指定用户或组名称进行授权。有效值是字母数字字符,可以包含一些特殊字符,且从 4 到 32 个字符。
支持的身份验证方法取决于您使用的共享驱动程序、安全服务和共享文件系统协议。支持的共享文件系统协议有 MapRFS、CEPHFS、NFS、CIFS、GlusterFS 和 HDFS。支持的安全服务包括 LDAP、Kerberos 协议或 Microsoft Active Directory 服务。
要验证是否为共享正确配置了访问规则(ACL),您可以列出其权限。
为共享选择安全服务时,您需要考虑共享驱动程序是否能够使用可用的身份验证方法创建访问规则。支持的安全服务包括 LDAP、Kerberos 和 Microsoft Active Directory。