12.8. 共享访问控制

用户可以指定哪些特定客户端有权访问他们所创建的共享。由于 keystone 服务,由单个用户创建的共享仅对同一项目中自己和其它用户可见。Manila 允许用户创建"公共"可见的共享。如果拥有者授予访问权限,则这些共享可以在属于其他 OpenStack 项目的仪表板中可见,如果他们可以在网络上访问,它们甚至能够挂载共享。

在创建共享时,请使用 key --public 使您的共享在共享列表中公开,并查看其详细信息。

根据 policy.json 文件,管理员和用户共享所有者可以通过创建访问规则来管理对共享的访问。使用 manila access-allowmanila access-denymanila access-list 命令,您可以相应地授予、拒绝和列出对指定共享的访问权限。

注意

Manila 不提供存储系统的端到端管理。您仍然需要单独保护后端系统不受未授权的访问。因此,如果某人破坏后端存储设备,则 manila API 提供的保护仍可能会被绕过。

当只创建共享时,没有与其关联的默认访问规则,以及挂载它的权限。这可以在挂载用于导出协议的配置中看到。例如,存储中有一个 NFS 命令 exportfs/etc/exports 文件,用于控制每个远程共享并定义可以访问它的主机。如果 nobody 可以挂载共享,则为空。对于远程 CIFS 服务器,有 net conf list 命令显示配置。hosts deny 参数应当由 share 驱动程序设置为 0.0.0.0/0,这意味着任何主机都会被拒绝。

使用 manila,您可以通过指定其中一个支持的共享访问级别来授予或拒绝对共享的访问访问权限:

  • rw - 读和写(RW)访问。这是默认值。
  • ro- 只读(RO)访问。
注意

当管理员为某些特定编辑器提供读写(RW)访问权限时,RO 访问级别对公共共享很有用,并为其他用户(viewer)授予只读(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。