4.3. 授予共享访问权限
在客户端(如计算实例)上挂载共享前,您必须使用类似如下的命令授予客户端对共享的访问权限:
# manila access-allow <share> <accesstype> --access-level <accesslevel> <clientidentifier>
替换以下值:
-
共享
- 第 4.1.5 节 “创建共享” 中创建的共享的共享名称或 ID。 accesstype
- 共享上要请求的访问权限类型。有些类型包括:-
用户
:使用 按用户或组名进行身份验证。 -
IP
:使用 通过其 IP 地址对实例进行身份验证。 cephx
: 使用 通过原生 CephFS 客户端用户名进行身份验证。注意访问类型取决于共享的协议。对于 NFS 共享,只允许
ip
访问类型。对于 CIFS,用户访问
类型适当。对于原生 CephFS 共享,您必须使用cephx
。
-
accesslevel
- 可选,默认为rw
-
rw
:对共享的读写访问权限. -
ro
: 共享的只读访问权限。
-
clientidentifier
- 因accesstype
而异。-
为
ip
accesstype
使用 IP 地址。 -
对于
user
accesstype
,使用 CIFS 用户或组。 -
为
cephx accesstype
使用用户名字符串。
-
为
4.3.1. 授予对共享的访问权限
您必须向最终用户客户端授予对共享的访问权限,以便用户可以从共享中读取数据并写入数据。
使用这个流程通过实例的 IP 地址授予客户端计算实例对 NFS 共享的访问权限。CIFS 共享的 user
规则和 CephFS 共享的 cephx
规则有类似的特征。对于 用户和
cephx
访问类型,如果需要,您可以在 多个客户端间使用相同的客户端标识符
。
在示例中,客户端的 IP 地址系列版本不重要。此流程中的步骤使用 IPv4 地址,但步骤与 IPv6 相同。
流程
检索您计划挂载共享的客户端计算实例的 IP 地址。请确定您选择了与可以访问共享的网络对应的 IP 地址。在本例中,它是 StorageNFS 网络的 IP 地址:
(user) [stack@undercloud-0 ~]$ openstack server list -f yaml - Flavor: m1.micro ID: 0b878c11-e791-434b-ab63-274ecfc957e8 Image: manila-test Name: demo-instance0 Networks: demo-network=172.20.0.4, 10.0.0.53; StorageNFS=172.17.5.160 Status: ACTIVE (user) [stack@undercloud-0 ~]$ manila access-allow share-01 ip 172.17.5.160
注意对共享的访问权限具有自己的 ID (
accessid
)。+-----------------+---------------------------------------+ | Property | Value | +-----------------+---------------------------------------+ | access_key | None | share_id | db3bedd8-bc82-4100-a65d-53ec51b5cba3 | created_at | 2018-09-17T21:57:42.000000 | updated_at | None | access_type | ip | access_to | 172.17.5.160 | access_level | rw | state | queued_to_apply | id | 875c6251-c17e-4c45-8516-fe0928004fff +-----------------+---------------------------------------+
验证访问配置是否成功:
(user) [stack@undercloud-0 ~]$ manila access-list share-01 +--------------+-------------+--------------+--------------+--------+ ... | id | access_type | access_to | access_level | state | ... +--------------+-------------+--------------+--------------+--------+ | 875c6251-... | ip | 172.17.5.160 | rw | active | ... +--------------+------------+--------------+--------------+---------+ ...
4.3.2. 撤销对共享的访问
共享的所有者可以撤销对共享的访问的原因。完成以下步骤以撤销之前对共享的访问。
流程
撤销对共享的访问权限:
# manila access-deny <share> <accessid>
注意将
<share
> 替换为共享名称或共享 ID。例如:
(user) [stack@undercloud-0 ~]$ manila access-list share-01 +--------------+-------------+--------------+--------------+--------+ | id | access_type | access_to | access_level | state | ... +--------------+-------------+--------------+--------------+--------+ ... | 875c6251-... | ip | 172.17.5.160 | rw | active | ... +--------------+-------------+--------------+--------------+--------+ (user) [stack@undercloud-0 ~]$ manila access-deny share-01 875c6251-c17e-4c45-8516-fe0928004fff (user) [stack@undercloud-0 ~]$ manila access-list share-01 +--------------+------------+--------------+--------------+--------+ ... | id | access_type| access_to | access_level | state | ... +--------------+------------+--------------+--------------+--------+ ... +--------------+------------+--------------+--------------+--------+ ...
如果您有一个具有读写权限的现有客户端,则必须撤销其对共享的访问权限,并在您希望客户端具有只读权限时添加只读规则。