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
- Read 和 write (RW)访问。这是默认值。 -
ro
- Read-only (RO)访问。
当管理员向某些特定编辑器或贡献者提供读写(RW)访问权限时,RO 访问级别对公共共享很有用,并为其余用户(viewers)提供只读(RO)访问权限。
您还必须指定这些支持的身份验证方法之一:
-
ip
- 使用 IP 地址来验证实例。可以通过以 CIDR 表示法以正确的 IPv4 或 IPv6 地址为客户端提供 IP 访问。 -
证书
- 使用 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。