7.7. 为最终用户客户端授予共享访问权限
您必须授予最终用户客户端对共享的访问权限,以便用户可以从共享读取和写入数据。
您可以通过实例的 IP 地址授予客户端计算实例对 NFS 共享的访问权限。CIFS 共享的 user 规则和 CephFS 共享的 cephx 规则有类似的特征。使用 用户和 cephx 访问类型,如果需要,您可以在 多个客户端间使用相同的客户端identifier。
在客户端中挂载共享(如计算实例)前,您必须使用以下命令授予客户端对共享的访问权限:
manila access-allow <share> <accesstype> --access-level <accesslevel> <clientidentifier>
$ manila access-allow <share> <accesstype> --access-level <accesslevel> <clientidentifier>
替换以下值:
-
共享: 在 第 7.2 节 “创建 NFS 或原生 CephFS 共享” 中创建共享的共享名称或 ID。 accesstype:在共享中请求的访问权限类型。一些类型包括:-
用户:使用 通过用户或组名称进行身份验证。 -
IP:使用通过其 IP 地址验证实例。 cephx:用于由原生 CephFS 客户端用户名进行身份验证。注意访问类型取决于共享的协议。对于 CIFS,您可以使用
用户。对于 NFS 共享,您必须使用ip。对于原生 CephFS 共享,您必须使用cephx。
-
访问级别:可选;默认为rw。-
rw:对共享的读写访问权限。 -
ro:对共享的只读访问权限。
-
Clientidentifier:根据accesstype。-
为
ipaccesstype使用 IP 地址。 -
使用一个 CIFS 用户或组作为
useraccesstype。 -
对
cephxaccesstype使用用户名字符串。
-
为
7.7.1. 授予对 NFS 共享的访问权限 复制链接链接已复制到粘贴板!
您可以通过 IP 地址访问 NFS 共享。
在示例中,客户端的 IP 地址系列版本不重要。此流程中的步骤使用 IPv4 地址,但步骤与 IPv6 相同。
流程
检索您要挂载共享的客户端计算实例的 IP 地址。请确定您选择了与可以访问共享的网络对应的 IP 地址。在本例中,它是 StorageNFS 网络的 IP 地址:
(user) $ 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) $ manila access-allow share-01 ip 172.17.5.160
(user) $ 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) $ manila access-allow share-01 ip 172.17.5.160Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对共享的访问权限有自己的 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 +-----------------+---------------------------------------+
+-----------------+---------------------------------------+ | 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 +-----------------+---------------------------------------+Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证访问配置是否成功:
(user) $ manila access-list share-01 +--------------+-------------+--------------+--------------+--------+ ... | id | access_type | access_to | access_level | state | ... +--------------+-------------+--------------+--------------+--------+ | 875c6251-... | ip | 172.17.5.160 | rw | active | ... +--------------+------------+--------------+--------------+---------+ ...
(user) $ manila access-list share-01 +--------------+-------------+--------------+--------------+--------+ ... | id | access_type | access_to | access_level | state | ... +--------------+-------------+--------------+--------------+--------+ | 875c6251-... | ip | 172.17.5.160 | rw | active | ... +--------------+------------+--------------+--------------+---------+ ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.7.2. 授予对原生 CephFS 共享的访问权限 复制链接链接已复制到粘贴板!
您可以通过 Ceph 客户端用户名提供对原生 CephFS 共享的访问。共享文件系统服务(manila)可防止使用预先存在的 Ceph 用户,因此您必须创建唯一的 Ceph 客户端用户名。
要挂载共享,您需要 Ceph 客户端用户名和访问密钥。您可以使用共享文件系统服务 API 检索访问密钥。默认情况下,访问密钥对项目命名空间中的所有用户可见。您可以提供对项目命名空间中的不同共享的访问权限。然后,用户可以使用客户端计算机上的 CephFS 内核客户端访问共享。
仅将原生 CephFS 驱动程序与可信客户端一起使用。有关原生 CephFS 后端安全性的信息,请参阅 部署 Red Hat Ceph Storage 和 Red Hat OpenStack Platform 中的 原生 CephFS 后端安全性,以及 director。
流程
授予用户对原生 CephFS 共享的访问权限:
manila access-allow <share-02> cephx <user-01>
$ manila access-allow <share-02> cephx <user-01>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<share-02> 替换为共享名称或共享 ID。 -
将
<user-01> 替换为 cephx 用户。
-
将
收集用户的访问密钥:
manila access-list <share-02>
$ manila access-list <share-02>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.7.3. 撤销对共享的访问权限 复制链接链接已复制到粘贴板!
共享的所有者可以出于某种原因撤销对共享的访问。完成以下步骤以撤销之前对共享的访问权限。
流程
撤销对共享的访问权限:
manila access-deny <share> <accessid>
$ manila access-deny <share> <accessid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<share> 替换为共享名称或共享 ID。例如:
(user) $ manila access-list share-01 +--------------+-------------+--------------+--------------+--------+ | id | access_type | access_to | access_level | state | ... +--------------+-------------+--------------+--------------+--------+ ... | 875c6251-... | ip | 172.17.5.160 | rw | active | ... +--------------+-------------+--------------+--------------+--------+ (user) $ manila access-deny share-01 875c6251-c17e-4c45-8516-fe0928004fff (user) $ manila access-list share-01 +--------------+------------+--------------+--------------+--------+ ... | id | access_type| access_to | access_level | state | ... +--------------+------------+--------------+--------------+--------+ ... +--------------+------------+--------------+--------------+--------+ ...
(user) $ manila access-list share-01
+--------------+-------------+--------------+--------------+--------+
| id | access_type | access_to | access_level | state | ...
+--------------+-------------+--------------+--------------+--------+ ...
| 875c6251-... | ip | 172.17.5.160 | rw | active | ...
+--------------+-------------+--------------+--------------+--------+
(user) $ manila access-deny share-01 875c6251-c17e-4c45-8516-fe0928004fff
(user) $ manila access-list share-01
+--------------+------------+--------------+--------------+--------+ ...
| id | access_type| access_to | access_level | state | ...
+--------------+------------+--------------+--------------+--------+ ...
+--------------+------------+--------------+--------------+--------+ ...
如果您有一个具有读写权限的现有客户端,则必须撤销对共享的访问权限,并在您希望客户端具有只读权限时添加只读规则。