Merge "Shared File Systems service security guide fixes"
This commit is contained in:
commit
28303910f2
@ -3,21 +3,20 @@ Shared File Systems
|
||||
===================
|
||||
|
||||
The Shared File Systems service (manila) provides a set of services for
|
||||
management of shared file systems in a multi-tenant cloud environment, similar
|
||||
to how OpenStack provides for block-based storage management through the
|
||||
OpenStack Block Storage service project. With the Shared File Systems service,
|
||||
you can create a remote file system, mount the file system on your instances,
|
||||
and then read and write data from your instances to and from your file system.
|
||||
management of shared file systems in a multi-tenant cloud environment. It is
|
||||
done similar to how OpenStack provides block-based storage management through
|
||||
the OpenStack Block Storage service project. With the Shared File Systems
|
||||
service, you can create a shared file system and manage its properties such as
|
||||
visibility, accessibility and usage quotas.
|
||||
|
||||
A large amount of existing software is designed around file-based storage. The
|
||||
Shared File Systems service provides the management of file shares and works
|
||||
with various storage providers that use following shared file system protocols:
|
||||
The Shared File Systems service works with various storage providers that use
|
||||
the following shared file system protocols:
|
||||
:term:`NFS <Network File System (NFS)>`,
|
||||
:term:`CIFS <Common Internet File System (CIFS)>`, :term:`GlusterFS`, and
|
||||
:term:`HDFS <Hadoop Distributed File System (HDFS)>`.
|
||||
|
||||
The Shared File Systems serves the same purpose as the Amazon Elastic File
|
||||
System (EFS) offering does.
|
||||
The Shared File Systems service serves the same purpose as Amazon Elastic File
|
||||
System (EFS).
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -3,37 +3,20 @@
|
||||
Introduction
|
||||
------------
|
||||
The Shared File Systems service (manila) is intended to be ran on a single-node
|
||||
or across multiple nodes. The Shared File Systems service consists of three
|
||||
or across multiple nodes. The Shared File Systems service consists of four
|
||||
main services, which are similar to those of the Block Storage service:
|
||||
|
||||
- ``manila-api``
|
||||
- ``manila-scheduler``
|
||||
- ``manila-share``
|
||||
|
||||
The Shared File Systems service uses a SQL-based central database that is
|
||||
shared by all Shared File Systems services in the system. The amount and depth
|
||||
of the data fits into a SQL database quite well. The Shared File Systems
|
||||
service can use all SQL dialects supported by ORM SQLALchemy, but is tested
|
||||
only with MySQL and PostgreSQL data bases.
|
||||
|
||||
Using SQL, the Shared File Systems service is similar to other OpenStack
|
||||
services and can be used with any OpenStack deployment. For more details on
|
||||
the API, see the `OpenStack Shared File Systems API <http://developer.
|
||||
openstack.org/api-ref-share-v2.html>`_ description. For mode details of the CLI
|
||||
using and configuring, see `Shared File Systems Administrator Guide
|
||||
<http://docs.openstack.org/admin-guide/shared_file_systems.html>`_.
|
||||
|
||||
Below is an explanation of the different components.
|
||||
|
||||
.. image:: ../figures/manila-intro.png
|
||||
- ``manila-data``
|
||||
|
||||
``manila-api``
|
||||
The service that provides a stable RESTful API. The service
|
||||
authenticates and routes requests throughout the Shared Filesystem
|
||||
service. There is python-manilaclient to interact with the API.
|
||||
For more details on the Shared File Systems API, see the `OpenStack
|
||||
Shared File Systems API <http://developer.openstack.org/api-ref-share-
|
||||
v2.html>`_.
|
||||
Shared File Systems API <http://developer.openstack.org/api-ref-share-v2.html>`_.
|
||||
``manila-share``
|
||||
Responsible for managing Shared File Service devices, specifically the
|
||||
back-end devices.
|
||||
@ -41,11 +24,36 @@ Below is an explanation of the different components.
|
||||
Responsible for scheduling and routing requests to the appropriate
|
||||
``manila-share`` service. It does that by picking one back-end while
|
||||
filtering all except one back-end.
|
||||
python-manilaclient
|
||||
``manila-data``
|
||||
This service is responsible for managing data operations which may take a
|
||||
long time to complete and block other services if not handled separately.
|
||||
|
||||
The Shared File Systems service uses an SQL-based central database that is
|
||||
shared by all Shared File Systems services in the system. It can use any SQL
|
||||
dialect supported by ORM SQLALchemy, but is tested only with MySQL and
|
||||
PostgreSQL data bases.
|
||||
|
||||
Using SQL, the Shared File Systems service is similar to other OpenStack
|
||||
services and can be used with any OpenStack deployment. For more details on
|
||||
the API, see the `OpenStack Shared File Systems API
|
||||
<http://developer.openstack.org/api-ref-share-v2.html>`_ description. For more
|
||||
details on the CLI usage and configuration, see `Shared File Systems Cloud
|
||||
Administrative Guide
|
||||
<http://docs.openstack.org/admin-guide/shared_file_systems.html>`_.
|
||||
|
||||
On the image below you can see how different parts of the Shared File System
|
||||
service interact with each other.
|
||||
|
||||
.. image:: ../figures/manila-intro.png
|
||||
|
||||
Besides already described services you can see two other entities on the
|
||||
image: ``python-manilaclient`` and ``storage controller``.
|
||||
|
||||
``python-manilaclient``
|
||||
Command line interface to interact with the Shared File Systems service
|
||||
via ``manila-api`` and also a Python module to interact programmatically
|
||||
with the Shared File Systems service.
|
||||
Storage controller
|
||||
``Storage controller``
|
||||
Typically a metal box with spinning disks, ethernet ports, and some
|
||||
kind of software that allows network clients to read and write files on
|
||||
the disks. There are also software-only storage controllers that run on
|
||||
@ -56,72 +64,70 @@ Storage controller
|
||||
A share is a remote, mountable file system. You can mount a share to and access
|
||||
a share from several hosts by several users at a time.
|
||||
|
||||
The Shared File Systems service can work with different network types, which
|
||||
can be flat, VLAN, VXLAN, or GRE, and supports segmented networking. There are
|
||||
The Shared File Systems service can work with different network types:
|
||||
flat, VLAN, VXLAN, or GRE, and supports segmented networking. There are
|
||||
also different :ref:`network plug-ins <shared_fs_network_plugins>` that provide
|
||||
a variety of integration approaches with the network services that are
|
||||
available with OpenStack.
|
||||
|
||||
There are a large number of share drivers created by different vendors. Each
|
||||
share driver is a Python class that can be set for the back end and run in the
|
||||
back end to manage the share operations, some of which are vendor-specific.
|
||||
The back end is an instance of the manila-share service. For example, the
|
||||
service can be configured to use NetApp Clustered Data ONTAP (cDOT), Huawei NAS
|
||||
Driver, GlusterFS Native driver, and so on.
|
||||
There are a large number of share drivers created by different vendors which
|
||||
support different hardware storage solutions, for example, NetApp Clustered
|
||||
Data ONTAP (cDOT) Driver, Huawei NAS Driver or GlusterFS Driver. Each share
|
||||
driver is a Python class that can be set for a back end and run in the back
|
||||
end to manage share operations, some of which can be vendor-specific. The back
|
||||
end is an instance of the manila-share service.
|
||||
|
||||
The configuration information for clients for authentication and authorization
|
||||
Clients' configuration data for authentication and authorization
|
||||
can be stored by :ref:`security services <shared_fs_security_services>`.
|
||||
This means that such protocols as LDAP and Kerberos, or with Microsoft Active
|
||||
directory authentication service can be configured and used.
|
||||
Such protocols as LDAP, Kerberos, or Microsoft Active Directory authentication
|
||||
service can be configured and used.
|
||||
|
||||
Unless it is not modified in the ``policy.json``, either an administrator or
|
||||
the tenant that owns a share always is able to manage the :ref:`access to the
|
||||
shares <shared_fs_share_acl>` by means of creating access rules with
|
||||
authentication though IP address, user, group, or TLS certificates. The
|
||||
authentication methods depend on which share driver and security service you
|
||||
configure and use.
|
||||
Unless it is not explicitly changed in the ``policy.json``, either an
|
||||
administrator or the tenant that owns a share are able to manage
|
||||
:ref:`access to the shares <shared_fs_share_acl>`. Access management is done by
|
||||
creating access rules with authentication through IP address, user, group, or
|
||||
TLS certificates. Available authentication methods depend on which share
|
||||
driver and security service you configure and use.
|
||||
|
||||
.. note::
|
||||
|
||||
Different access features are supported by different share drivers with
|
||||
taking into consideration the shared file system protocol. The supported
|
||||
shared file system protocols are NFS, CIFS, GlusterFS, or HDFS. As the
|
||||
example, the Generic (Block Storage as a back end) driver does not support
|
||||
user and certificate authentication methods. It also does not support any
|
||||
of the security services, such as LDAP, Kerberos, or Active Directory. For
|
||||
details of supporting of features by different drivers, see `Manila share
|
||||
features support mapping <http://docs.openstack.org/developer/manila/
|
||||
devref/share_back_ends_feature_support_mapping.html>`_.
|
||||
Different drivers support different access options depending on which
|
||||
shared file system protocol is used. Supported shared file system protocols
|
||||
are NFS, CIFS, GlusterFS, and HDFS. For example, the Generic (Block Storage
|
||||
as a back end) driver does not support user and certificate authentication
|
||||
methods. It also does not support any of the security services, such as
|
||||
LDAP, Kerberos, or Active Directory. For details of features supported by
|
||||
different drivers, see `Manila share features support mapping
|
||||
<http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html>`_.
|
||||
|
||||
As administrator, you can create the share types that enable the scheduler to
|
||||
filter the back ends before you create a share. The share types have the extra
|
||||
specifications you can set in the type for scheduler to filter and weigh back
|
||||
ends so that an appropriate one is selected for the user that requests the
|
||||
share creation. An administrator can add
|
||||
As an administrator, you can create share types that enable the scheduler to
|
||||
filter back ends before you create a share. Share types have extra
|
||||
specifications that you can set for the scheduler to filter and weigh back
|
||||
ends so that an appropriate one is selected for a user that requests
|
||||
share creation. Shares and share types can be created as public or private.
|
||||
This level of visibility defines whether other tenants are able to see these
|
||||
objects and operate with them, or not. An administrator can add
|
||||
:ref:`access to the private share types <shared_fs_share_types_acl>` for
|
||||
definite users or tenants in the Identity service. Thus the users which you
|
||||
specific users or tenants in the Identity service. Thus users which you have
|
||||
granted access can see available share types and create shares using them.
|
||||
|
||||
The shares and share types can be created as public or private. This level of
|
||||
visibility defines whether other tenants are able to see these objects and
|
||||
operate with them, or not.
|
||||
Permissions for API calls for different users and their roles are determined
|
||||
by :ref:`policies <shared_fs_policies>` like in other OpenStack services.
|
||||
|
||||
The permissions of API calls for different users and their roles are determined
|
||||
by :ref:`policies <shared_fs_policies>` as well as other OpenStack services.
|
||||
|
||||
The Identity service with different back ends, for example, LDAP, Active
|
||||
Directory, can be used for the authentication in the Shared File Systems. See
|
||||
details of the identity service security in :doc:`../identity` section.
|
||||
The Identity service can be used for authentication in the Shared File
|
||||
Systems service. See details of the Identity service security in
|
||||
:doc:`../identity` section.
|
||||
|
||||
General security information
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Similar to other OpenStack projects, the Shared File Systems service is
|
||||
registered with the Identity service, so you can find the API endpoints of the
|
||||
registered with the Identity service, so you can find API endpoints of the
|
||||
share service v1 and v2 using **manila endpoints** command:
|
||||
|
||||
.. code:: console
|
||||
|
||||
$ manila endpoints
|
||||
+-------------+-----------------------------------------+
|
||||
| manila | Value |
|
||||
+-------------+-----------------------------------------+
|
||||
@ -146,12 +152,13 @@ By default, the Shared File Systems API service listens only on the port
|
||||
``8786`` with ``tcp6`` type that supports both IPv4 and IPv6.
|
||||
|
||||
.. note::
|
||||
|
||||
The port ``8786`` is the default port for the Shared File Systems service.
|
||||
It may be changed to any other port, but this change should also be made
|
||||
in the configuration file using option ``osapi_share_listen_port`` which
|
||||
in the configuration file to option ``osapi_share_listen_port`` which
|
||||
defaults to ``8786``.
|
||||
|
||||
In ``/etc/manila/`` directory you can find the environment configuration files:
|
||||
In the ``/etc/manila/`` directory you can find several configuration files:
|
||||
|
||||
.. code:: console
|
||||
|
||||
@ -165,18 +172,15 @@ In ``/etc/manila/`` directory you can find the environment configuration files:
|
||||
share.filters
|
||||
|
||||
It is recommended that you configure the Shared File Systems service to run
|
||||
under a non-root service account, for example, ``manila`` and change file
|
||||
permissions for only ``root`` to be able to modify the configuration files. The
|
||||
Shared File Systems service expects that only the administrator can write to
|
||||
the configuration files and the services can only read them through their group
|
||||
membership in the ``manila`` group. Others must not be able to read these files
|
||||
because the files contain admin passwords of different services.
|
||||
under a non-root service account, and change file permissions so that only
|
||||
the system administrator can modify them. The Shared File Systems service
|
||||
expects that only administrators can write to configuration files and services
|
||||
can only read them through their group membership in ``manila`` group. Others
|
||||
must not be able to read these files because the files contain admin passwords
|
||||
for different services.
|
||||
|
||||
Thus, for the configuration files it is recommended to set ownership to
|
||||
``root/manila`` and access permissions to ``640`` allowing only root to write
|
||||
to the configuration files, and other users in the ``manila`` group to read
|
||||
them. For details, see :ref:`check_shared_fs_01` and :ref:`check_shared_fs_02`
|
||||
in a checklist.
|
||||
Apply checks :ref:`check_shared_fs_01` and :ref:`check_shared_fs_02`
|
||||
from the checklist to verify that permissions are set properly.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -187,5 +191,5 @@ in a checklist.
|
||||
|
||||
.. tip::
|
||||
|
||||
Manila configuration file ``manila.conf`` may be used from different places.
|
||||
The path ``/etc/manila/manila.conf`` is one of expected paths by default.
|
||||
The manila configuration file ``manila.conf`` may be placed anywhere.
|
||||
The path ``/etc/manila/manila.conf`` is expected by default.
|
||||
|
@ -3,37 +3,37 @@
|
||||
===========================
|
||||
Network and security models
|
||||
===========================
|
||||
The share driver in the Shared File Systems service is a Python class that can
|
||||
be set for the back end and run in it to manage the share operations, some of
|
||||
which are vendor-specific. The back end is an instance of the manila-share
|
||||
service. There are big number of the share drivers created by different vendors
|
||||
A share driver in the Shared File Systems service is a Python class that can
|
||||
be set for the back end and run in it to manage share operations, some of
|
||||
which are vendor-specific. The back end is an instance of manila-share
|
||||
service. There are a big number of share drivers created by different vendors
|
||||
in the Shared File Systems service. Each share driver supports one or more back
|
||||
end modes: *share servers* and *no share servers*, but the administrator
|
||||
chooses which mode is used by specifying it in the configuration file
|
||||
``manila.conf``.
|
||||
end modes: *share servers* and *no share servers*. An administrator
|
||||
chooses which mode is used by specifying it in ``manila.conf`` configuration
|
||||
file. An option ``driver_handles_share_servers`` is used for it.
|
||||
|
||||
The *share servers* mode can be configured with flat network, or with segmented
|
||||
network. This depends on the network provider.
|
||||
|
||||
It is possible to have separate drivers for different modes on the same
|
||||
It is possible to have separate drivers for different modes use the same
|
||||
hardware, if you want to have different configurations. Depending on which mode
|
||||
is chosen, the administrator needs to provide additional details in the
|
||||
configuration file as well.
|
||||
is chosen, an administrator may need to provide more configuration details
|
||||
through the configuration file.
|
||||
|
||||
.. _share-servers-vs-no-share-servers:
|
||||
|
||||
Share back ends modes
|
||||
---------------------
|
||||
|
||||
Each share driver supports one or two of possible driver modes to configure the
|
||||
back ends. Initially there are two driver modes for the back ends:
|
||||
Each share driver supports at least one of the possible driver modes:
|
||||
|
||||
* **share servers mode**
|
||||
* **no share servers mode**
|
||||
|
||||
The configuration option in the ``manila.conf`` file that set the share
|
||||
servers mode or no share servers mode is the ``driver_handles_share_servers``
|
||||
option, that defines the driver mode for share storage life cycle management:
|
||||
The configuration option in ``manila.conf`` that sets *share servers* mode or
|
||||
*no share servers* mode is the ``driver_handles_share_servers``
|
||||
option. It indicates whether a driver handles share servers by itself
|
||||
or it expects the Shared File Systems service to do it.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
@ -54,24 +54,15 @@ option, that defines the driver mode for share storage life cycle management:
|
||||
storage with some net interface insteadof the presence of the share
|
||||
servers.
|
||||
|
||||
This is the share types which have the extra specifications that help scheduler
|
||||
to filter back ends and choose the appropriate back end for the user that
|
||||
requested to create a share. For details of managing the share types and
|
||||
configuration the back ends, see `Share types
|
||||
<http://docs.openstack.org/admin-guide/shared_file_systems_share_types.html>`_
|
||||
and `Multi-storage configuration
|
||||
<http://docs.openstack.org/admin-guide/shared_file_systems_multi_backend.html>`_
|
||||
documentation.
|
||||
|
||||
No share servers mode
|
||||
In this mode, drivers have basically no network requirements whatsoever.
|
||||
It's assumed that the actual storage controller(s) being managed by the
|
||||
It's assumed that storage controller being managed by the
|
||||
driver has all of the network interfaces it's going to need. The Shared
|
||||
File Systems service will expect the driver to provision shares directly
|
||||
without creating any share server beforehand. This mode corresponds to
|
||||
what some existing drivers are already doing, but it makes explicit the
|
||||
choice for the administrator. In this mode, the share networks are not
|
||||
needed at share creation time and must not be provided.
|
||||
what some existing drivers are already doing, but it makes the
|
||||
choice explicit for the administrator. In this mode, the share networks
|
||||
are not needed at share creation time and must not be provided.
|
||||
|
||||
.. note::
|
||||
|
||||
@ -79,34 +70,34 @@ No share servers mode
|
||||
the network interfaces through which any shares are exported are already
|
||||
reachable by all tenants.
|
||||
|
||||
In the *no share servers* mode the share driver does not handle the storage
|
||||
life cycle. The administrator is expected to handle the storage, network
|
||||
In the *no share servers* mode a share driver does not handle storage
|
||||
life cycle. An administrator is expected to handle the storage, network
|
||||
interfaces, and other host configurations. In this mode an administrator can
|
||||
have the storage(s) as a host which exports the shares. The main characteristic
|
||||
set storage as a host which exports shares. The main characteristic
|
||||
of this mode is that the storage is not handled by the Shared File Systems
|
||||
service. The users in tenants share the common network(s), host, processor, and
|
||||
network pipe. The users can hinder each other if there is no correct balancing
|
||||
adjustment on the storage configured by admin or proxy before it. In the
|
||||
public clouds it is possible that all the network pipe is used by one client,
|
||||
so the administrator should handle this case not to happen. The balancing
|
||||
adjustment can be configured by any means, not only OpenStack tools.
|
||||
service. Users in a tenant share common network, host, processor, and
|
||||
network pipe. They can hinder each other if there is no correct balancing
|
||||
adjustment on the storage configured by admin or proxy before it. In
|
||||
public clouds it is possible that all network capacity is used by one client,
|
||||
so an administrator should care for this not to happen. Balancing
|
||||
adjustment can be done by any means, not necessarily with OpenStack tools.
|
||||
|
||||
Share servers mode
|
||||
In this mode, the driver is able to create share servers and join them to
|
||||
an existing network. When providing a new share server, the drivers expect
|
||||
In this mode, a driver is able to create share servers and plug them to
|
||||
existing networks. When providing a new share server, drivers expect
|
||||
an IP address and subnet from the Shared File Systems service.
|
||||
|
||||
Unlike the no share servers mode, in the *share servers* mode the users have
|
||||
the share network and the share server that is created for each share network.
|
||||
Unlike *no share servers* mode, in *share servers* mode users have
|
||||
a share network and a share server that is created for each share network.
|
||||
Thus all users have separate CPU, amount of CPU time, network, capacity and
|
||||
throughput.
|
||||
|
||||
You also can configure the
|
||||
You also can configure
|
||||
:ref:`security services <shared_fs_security_services>` in both *share servers*
|
||||
and *no share servers* back-end modes. But with *no share servers* back-end
|
||||
mode, an administrator should set the desired authentication services manually
|
||||
on the host. And in the *share servers* mode of the back end The Shared File
|
||||
Systems service can be configured automatically with any of existing security
|
||||
mode, an administrator should set desired authentication services manually
|
||||
on the host. And in *share servers* mode the Shared File
|
||||
Systems service can be configured automatically with any existing security
|
||||
services supported by the share driver.
|
||||
|
||||
Flat vs segmented networking
|
||||
@ -121,75 +112,68 @@ network:
|
||||
|
||||
.. note::
|
||||
|
||||
The Shared File Systems service is just keeping the information about the
|
||||
networks in the database, and the real networks are available due to the
|
||||
The Shared File Systems service is merely keeping the information about
|
||||
networks in the database, and real networks are provided by the
|
||||
network provider. In OpenStack it can be Legacy networking (nova-network)
|
||||
or Networking (neutron) services, but actually the Shared File Systems
|
||||
service can work even out of OpenStack. That is due to the
|
||||
or Networking (neutron) services, but the Shared File Systems
|
||||
service can work even out of OpenStack. That is allowed by
|
||||
``StandaloneNetworkPlugin`` that can be used with any network platform and
|
||||
does not require some specific network services in OpenStack like
|
||||
Networking or Legacy networking services. You can set the network
|
||||
parameters in its configuration file.
|
||||
|
||||
In the :ref:`share servers <share-servers-vs-no-share-servers>` back-end mode
|
||||
the share driver creates and manages the share server for each share network.
|
||||
This mode can be divided on two variations:
|
||||
In :ref:`share servers <share-servers-vs-no-share-servers>` back-end mode
|
||||
a share driver creates and manages a share server for each share network.
|
||||
This mode can be divided in two variations:
|
||||
|
||||
* Flat network in *share servers* back-end mode
|
||||
* Segmented network in *share servers* back-end mode
|
||||
|
||||
Initially, while creating the share network, you can set up either a network
|
||||
Initially, when creating a share network, you can set up either a network
|
||||
and subnet of the OpenStack Networking (neutron) or a network of Legacy
|
||||
networking (nova-network) services. The third approach is to configure the
|
||||
networking without Legacy networking and Networking services. The
|
||||
networking without Legacy networking and Networking services.
|
||||
``StandaloneNetworkPlugin`` can be used with any network platform. You can set
|
||||
the network parameters in its configuration file.
|
||||
network parameters in its configuration file.
|
||||
|
||||
.. tip::
|
||||
|
||||
All the share drivers that use the OpenStack Compute service do not use the
|
||||
network plug-ins. In Liberty release it is Windows and Generic drivers, so
|
||||
these share drives have other options and use different approach.
|
||||
All share drivers that use the OpenStack Compute service do not use
|
||||
network plug-ins. In Mitaka release it is Windows and Generic drivers.
|
||||
These share drives have other options and use different approach.
|
||||
|
||||
After the share network is created, the Shared File Systems service retrieves
|
||||
the network information determined by the network provider, for example, the
|
||||
network type, the segmentation identifier if the network uses segmentation, the
|
||||
IP block in Classless Inter-Domain Routing (CIDR) notation from which to
|
||||
allocate the network.
|
||||
|
||||
Below you can see the comparison of the flat network with segmented
|
||||
network in *share servers* back-end mode.
|
||||
After a share network is created, the Shared File Systems service retrieves
|
||||
network information determined by a network provider: network type,
|
||||
segmentation identifier if the network uses segmentation and
|
||||
IP block in CIDR notation from which to allocate the network.
|
||||
|
||||
**Flat network in share servers back-end mode**
|
||||
|
||||
In this mode, some storage controllers can create share servers but due to
|
||||
various limitations of the physical or logical network all of the share servers
|
||||
have to be on a flat network. In this mode, the share driver needs something to
|
||||
provision IP addresses for the share servers, but the IPs all come out of the
|
||||
various limitations of physical or logical network all of share servers
|
||||
have to be on a flat network. In this mode, a share driver needs something to
|
||||
provision IP addresses for share servers, but IPs will all come out of the
|
||||
same subnet and that subnet itself is assumed to be reachable by all tenants.
|
||||
|
||||
In this mode, the :ref:`security service part <shared_fs_security_services>` of
|
||||
the share networks is important because it allows tenants to specify security
|
||||
The :ref:`security service part <shared_fs_security_services>` of
|
||||
share networks ispecify security
|
||||
requirements such as AD or LDAP domains or a Kerberos realm. The Shared File
|
||||
Systems service assumes that any hosts referred to in the security service are
|
||||
reachable from the subnet where the share server is created, which limits the
|
||||
situations where this mode makes sense.
|
||||
Systems service assumes that any hosts referred to in security service are
|
||||
reachable from a subnet where a share server is created, which limits the
|
||||
number of cases where this mode could be used.
|
||||
|
||||
**Segmented network in share servers back-end mode**
|
||||
|
||||
In this mode, the share driver is able to create share servers and join them to
|
||||
an existing segmented network. The share drivers expect the Shared File systems
|
||||
to provide for every new share server a subnet definition including a
|
||||
segmentation type which is VLAN, VXLAN, or GRE, segmentation ID, and any other
|
||||
In this mode, a share driver is able to create share servers and plug them to
|
||||
an existing segmented network. Share drivers expect the Shared File Systems
|
||||
service to provide a subnet definition for every new share server. This
|
||||
definition should include segmentation type, segmentation ID, and any other
|
||||
info relevant to the segmentation type.
|
||||
|
||||
The security aspects of the configured networks depends on the configuration
|
||||
itself and the network provider.
|
||||
|
||||
.. note::
|
||||
|
||||
The share drivers may not support every type of segmentation, for details
|
||||
see the specification for each driver.
|
||||
Some share drivers may not support all types of segmentation, for details
|
||||
see specification for the driver in use.
|
||||
|
||||
.. _shared_fs_network_plugins:
|
||||
|
||||
@ -197,20 +181,18 @@ Network plug-ins
|
||||
----------------
|
||||
|
||||
The Shared File Systems service architecture defines an abstraction layer for
|
||||
network resource provisioning and allowing administrators to choose from a
|
||||
network resource provisioning. It allows administrators to choose from
|
||||
different options for how network resources are assigned to their tenants’
|
||||
networked storage. There are a set of network plug-ins that provide a variety
|
||||
networked storage. There are several network plug-ins that provide a variety
|
||||
of integration approaches with the network services that are available with
|
||||
OpenStack.
|
||||
|
||||
The network plug-ins allow to use any functions, configurations of the
|
||||
OpenStack Networking and Legacy networking services, for example, you can use
|
||||
Network plug-ins allow to use any functions, configurations of the
|
||||
OpenStack Networking and Legacy networking services. One can use
|
||||
any network segmentation that the Networking service supports, you can use
|
||||
flat networks or VLAN-segmented networks of the Legacy networking
|
||||
(nova-network) service, or you can use the plug-in for specifying networks
|
||||
(nova-network) service, or you can use plug-ins for specifying networks
|
||||
independently from OpenStack networking services. For more information of how
|
||||
to use different network plug-ins, see `Shared File Systems service Network
|
||||
plug-ins
|
||||
<http://docs.openstack.org/admin-guide/shared_file_systems_network_plugins.html#network-plug-ins>`_.
|
||||
The security in using different
|
||||
network plug-ins depends on the specific network configuration.
|
||||
|
@ -9,14 +9,14 @@ the service's ``policy.json`` file.
|
||||
|
||||
.. tip::
|
||||
|
||||
The configuration file ``policy.json`` may be used from different places.
|
||||
The path ``/etc/manila/policy.json`` is one of expected paths by default.
|
||||
The configuration file ``policy.json`` may be placed anywhere.
|
||||
The path ``/etc/manila/policy.json`` is expected by default.
|
||||
|
||||
Whenever an API call to the Shared File Systems service is made, the policy
|
||||
engine uses the appropriate policy definitions to determine if the call can be
|
||||
accepted.
|
||||
|
||||
The policy rule determines under which circumstances the API call is permitted.
|
||||
A policy rule determines under which circumstances the API call is permitted.
|
||||
The ``/etc/manila/policy.json`` file has rules where action is always
|
||||
permitted, when the rule is an empty string: ``""``; the rules based on the
|
||||
user role or rules; rules with boolean expressions. Below is a snippet of the
|
||||
@ -29,53 +29,21 @@ OpenStack release to another it can be changed.
|
||||
"context_is_admin": "role:admin",
|
||||
"admin_or_owner": "is_admin:True or project_id:%(project_id)s",
|
||||
"default": "rule:admin_or_owner",
|
||||
|
||||
"admin_api": "is_admin:True",
|
||||
|
||||
"share:create": "",
|
||||
"share:delete": "rule:default",
|
||||
"share:get": "rule:default",
|
||||
"share:get_all": "rule:default",
|
||||
"share:list_by_share_server_id": "rule:admin_api",
|
||||
"share:update": "rule:default",
|
||||
"share:snapshot_update": "rule:default",
|
||||
"share:create_snapshot": "rule:default",
|
||||
"share:delete_snapshot": "rule:default",
|
||||
"share:get_snapshot": "rule:default",
|
||||
"share:get_all_snapshots": "rule:default",
|
||||
"share:access_get": "rule:default",
|
||||
"share:access_get_all": "rule:default",
|
||||
"share:allow_access": "rule:default",
|
||||
"share:deny_access": "rule:default",
|
||||
"share:extend": "rule:default",
|
||||
"share:shrink": "rule:default",
|
||||
"share:get_share_metadata": "rule:default",
|
||||
"share:delete_share_metadata": "rule:default",
|
||||
"share:update_share_metadata": "rule:default",
|
||||
"share:migrate": "rule:admin_api",
|
||||
|
||||
"share_type:index": "rule:default",
|
||||
"share_type:show": "rule:default",
|
||||
"share_type:default": "rule:default",
|
||||
|
||||
"share_instance:index": "rule:admin_api",
|
||||
"share_instance:show": "rule:admin_api",
|
||||
|
||||
"share_extension:quotas:show": "",
|
||||
"share_extension:quotas:update": "rule:admin_api",
|
||||
"share_extension:quotas:delete": "rule:admin_api",
|
||||
"share_extension:quota_classes": "",
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
Note that your users must be assigned to groups and roles that you refer to in
|
||||
your policies.
|
||||
Users must be assigned to groups and roles that you refer to in
|
||||
your policies. This is done automatically by the service when user
|
||||
management commands are used.
|
||||
|
||||
.. note::
|
||||
|
||||
Any changes to ``/etc/manila/policy.json`` are effective immediately,
|
||||
which allows new policies to be implemented while the Shared File Systems
|
||||
service is running. Modifying the policy can have unexpected side effects
|
||||
and is not encouraged. For details, see `The policy.json file <http://docs.
|
||||
openstack.org/trunk/config-reference/content/policy-json-file.html>`_.
|
||||
service is running. Manual modification of the policy can have unexpected
|
||||
side effects and is not encouraged. For details, see
|
||||
`The policy.json file <http://docs.openstack.org/trunk/config-reference/
|
||||
ontent/policy-json-file.html>`_.
|
||||
|
@ -4,48 +4,46 @@
|
||||
Security services
|
||||
=================
|
||||
|
||||
For authentication and authorization of the clients, the Shared File Systems
|
||||
For authentication and authorization of clients, the Shared File Systems
|
||||
Storage service can optionally be configured with different network
|
||||
authentication protocols. Supported authentication protocols are LDAP,
|
||||
Kerberos, or Microsoft Active directory authentication service.
|
||||
Kerberos, and Microsoft Active directory authentication service.
|
||||
|
||||
Introduction to security services
|
||||
---------------------------------
|
||||
After creating the share and getting its export location users have no
|
||||
After creating a share and getting its export location, users have no
|
||||
permissions to mount it and operate with files. The Shared File System service
|
||||
allows to grant or deny access to the shares.
|
||||
requires to explicitly grant access to the new share.
|
||||
|
||||
The configuration information for clients for authentication and authorization
|
||||
(AuthN/AuthZ) can be stored by ``security services``. This means that such
|
||||
protocols as LDAP and Kerberos, or with Microsoft Active directory
|
||||
authentication service can be used by the Shared File Systems service if they
|
||||
exist and are supported by the drivers and back ends. These authentication
|
||||
services also can be configured without the Shared File Systems service.
|
||||
The client configuration data for authentication and authorization
|
||||
(AuthN/AuthZ) can be stored by ``security services``. LDAP, Kerberos, or
|
||||
Microsoft Active directory can be used by the Shared File Systems service if
|
||||
they are supported by used drivers and back ends. Authentication
|
||||
services can also be configured without the Shared File Systems service.
|
||||
|
||||
.. note::
|
||||
|
||||
In some cases, it is required to add one of the security services. For
|
||||
example, NetApp, EMC and Windows drivers require Active Directory for the
|
||||
creation of shares with CIFS protocol.
|
||||
In some cases, it is required to explicitly specify one of the security
|
||||
services, for example, NetApp, EMC and Windows drivers require Active
|
||||
Directory for the creation of shares with the CIFS protocol.
|
||||
|
||||
Security services management
|
||||
----------------------------
|
||||
A *security service* is the Shared File Systems service (manila) term that
|
||||
means a set of options that defines a security domain for a particular shared
|
||||
file system protocol, such as an Active Directory domain or a Kerberos domain.
|
||||
The security service contains all of the information necessary for the Shared
|
||||
File Systems to create a server that joins the given domain.
|
||||
A *security service* is the Shared File Systems service (manila) entity that
|
||||
abstracts a set of options that defines a security domain for a particular
|
||||
shared file system protocol, such as an Active Directory domain or a Kerberos
|
||||
domain. The security service contains all of the information necessary for
|
||||
the Shared File Systems to create a server that joins a given domain.
|
||||
|
||||
Using the API users can create, update, view, delete a security service.
|
||||
The security services are realized in the Shared File Systems API with such
|
||||
key concepts:
|
||||
Using the API, users can create, update, view and delete a security service.
|
||||
Security Services are designed basing on the following assumptions:
|
||||
|
||||
* Tenants provide the details for the security service.
|
||||
* Tenants provide details for the security service.
|
||||
* Administrators care about security services: they configure the server side
|
||||
of such security services.
|
||||
* Inside The Shared File Systems API, a ``security_service`` is associated with
|
||||
the ``share_networks``.
|
||||
* The share drivers use the information in the security service to configure
|
||||
* Share drivers use data in the security service to configure
|
||||
newly created share servers.
|
||||
|
||||
While creating a security service, you can select one of these authentication
|
||||
@ -72,35 +70,34 @@ services:
|
||||
- A directory service that Microsoft developed for Windows domain
|
||||
networks. Uses LDAP, Microsoft's version of Kerberos, and DNS.
|
||||
|
||||
The Shared File Systems allows you to configure a security service with these
|
||||
options:
|
||||
The Shared File Systems service allows you to configure a security service
|
||||
with these options:
|
||||
|
||||
* A DNS IP address that is used inside the tenant network.
|
||||
* An IP address or host name of a security service.
|
||||
* A domain of a security service.
|
||||
* A user or group name that is used by the tenant.
|
||||
* The password for the user, if you specify a user name.
|
||||
* A user or group name that is used by a tenant.
|
||||
* A password for a user, if you specify a user name.
|
||||
|
||||
An existing security service entity can be associated with the share network
|
||||
entities that inform the Shared File Systems service about the security and
|
||||
An existing security service entity can be associated with share network
|
||||
entities that inform the Shared File Systems service about security and
|
||||
network configuration for a group of shares. You can also see the list of all
|
||||
security services for a specified share network and disassociate them from
|
||||
a share network.
|
||||
|
||||
For details of managing the security services via API, see the `Security
|
||||
services API <http://developer.openstack.org/api-ref-share-v2.html#share-security-
|
||||
services>`_. You also can manage the security services via python-manilaclient,
|
||||
see `Security services CLI managing <http://docs.openstack.org/admin-guide/
|
||||
shared_file_systems_security_services.html>`_.
|
||||
For details of managing security services via API, see the `Security
|
||||
services API <http://developer.openstack.org/api-ref-share-v2.html#share-security-services>`_.
|
||||
You also can manage security services via python-manilaclient,
|
||||
see `Security services CLI managing <http://docs.openstack.org/admin-guide/shared_file_systems_security_services.html>`_.
|
||||
|
||||
An administrator and the users as share owners can manage the
|
||||
:ref:`access to the shares <shared_fs_share_acl>` by means of creating access
|
||||
rules with authentication though ip address, user or group, or TLS
|
||||
certificates. The authentication methods depend on which share driver and
|
||||
An administrator and users as share owners can manage the
|
||||
:ref:`access to the shares <shared_fs_share_acl>` by creating access
|
||||
rules with authentication though an IP address, user, group, or TLS
|
||||
certificates. Authentication methods depend on which share driver and
|
||||
security service you configure and use.
|
||||
|
||||
Thus as an administrator you can configure the backend to use the definite
|
||||
authentication service via network and it will store the users. The
|
||||
Thus, as an administrator, you can configure a back end to use specific
|
||||
authentication service via network and it will store users. The
|
||||
authentication service can operate with clients without the Shared File System
|
||||
and the Identity service.
|
||||
|
||||
@ -108,37 +105,36 @@ and the Identity service.
|
||||
|
||||
Different authentication services are supported by different share drivers.
|
||||
For details of supporting of features by different drivers, see
|
||||
`Manila share features support mapping <http://docs.openstack.org/developer
|
||||
/manila/devref/share_back_ends_feature_support_mapping.html>`_.
|
||||
The support of definite authentication service by the driver also doesn't
|
||||
`Manila share features support mapping <http://docs.openstack.org/developer/manila/devref/share_back_ends_feature_support_mapping.html>`_.
|
||||
Support for a specific authentication service by a driver does not
|
||||
mean that it can be configured with any shared file system protocol.
|
||||
Supported shared file systems protocols are NFS, CIFS, GlusterFS, and HDFS.
|
||||
See the driver vendor's documentation for the specific driver and its
|
||||
configuration for the security services.
|
||||
See the driver vendor's documentation for infomation on a specific driver
|
||||
and its configuration for security services.
|
||||
|
||||
Some drivers support the security services and other drivers do not support any
|
||||
of the hereinabove security services.
|
||||
|
||||
The Generic Driver with NFS or CIFS shared file system protocol supports only
|
||||
authentication method through the IP address.
|
||||
Some drivers support security services and other drivers do not support any
|
||||
of the security services mentioned above. For example, Generic Driver with
|
||||
the NFS or the CIFS shared file system protocol supports only authentication
|
||||
method through the IP address.
|
||||
|
||||
.. tip::
|
||||
|
||||
* Those drivers that support CIFS shared file system protocol in most
|
||||
* Those drivers that support the CIFS shared file system protocol in most
|
||||
cases can be configured to use Active Directory and manage access through
|
||||
user authentication.
|
||||
* Drivers that support GlusterFS protocol can be used with authentication
|
||||
via TLS certificates.
|
||||
* With drivers that support NFS protocol the authentication via IP address
|
||||
is the only supported.
|
||||
the user authentication.
|
||||
* Drivers that support the GlusterFS protocol can be used with
|
||||
authentication via TLS certificates.
|
||||
* With drivers that support NFS protocol authentication via IP address
|
||||
is the only supported option.
|
||||
* Since the HDFS shared file system protocol uses NFS access it also can be
|
||||
configured to authenticate via IP address.
|
||||
|
||||
The authentication via IP is the most weak.
|
||||
Note, however, that authentication via IP is the least secure type of
|
||||
authentication.
|
||||
|
||||
The recommended configuration for the Shared File Systems service real usage
|
||||
is to create a share with CIFS share protocol and add to it the Microsoft
|
||||
Active Directory directory service. In this configuration you'll get the
|
||||
is to create a share with the CIFS share protocol and add to it the Microsoft
|
||||
Active Directory directory service. In this configuration you will get the
|
||||
centralized data base and the service that unites Kerberos and LDAP approaches.
|
||||
This is a real use case that is convenient for the real production shared file
|
||||
This is a real use case that is convenient for production shared file
|
||||
systems.
|
||||
|
@ -7,16 +7,16 @@ The Shared File Systems service allows to grant or deny access to different
|
||||
entities of the service for other clients.
|
||||
|
||||
Having a share as remote mountable instance of a file system, you can manage
|
||||
access to a specified share, and list the permissions for a specified share.
|
||||
access to a specified share, and list permissions for a specified share.
|
||||
|
||||
The share can be *public* and *private*. This is a level of visibility for the
|
||||
A share can be *public* or *private*. This is a level of visibility for the
|
||||
share that defines whether other tenants can or cannot see the share. By
|
||||
default, the shares are created as private. While creating a share, use a key
|
||||
default, all shares are created as private. While creating a share, use key
|
||||
:option:`--public` to make your share public for other tenants to see it in a
|
||||
list of shares and see its detailed information.
|
||||
|
||||
According to a :ref:`policy.json <shared_fs_policies>` file, an administrator
|
||||
and the users as share owners can manage the access to the shares by means of
|
||||
and the users as share owners can manage access to shares by means of
|
||||
creating access rules. Using :command:`manila access-allow`,
|
||||
:command:`manila access-deny` and :command:`manila access-list` commands,
|
||||
you can grant, deny and list access to a specified share correspondingly.
|
||||
@ -25,19 +25,19 @@ you can grant, deny and list access to a specified share correspondingly.
|
||||
|
||||
By default, when a share is created and has its export location, the Shared
|
||||
File Systems service expects that nobody can access the share by mounting
|
||||
it. Pay attention that the share driver you use can change this
|
||||
it. Please note that the share driver you use can change this
|
||||
configuration, or it can be directly changed on the share storage. To
|
||||
ensure the access to the share, check the mounting config for the export
|
||||
ensure access to the share, check the mounting config for the export
|
||||
protocol.
|
||||
|
||||
When the share is just created there are no created access rules and expected
|
||||
permission to mount a share. This is obtained by the mounting config for the
|
||||
certain export protocol. For example, for the NFS protocol there is
|
||||
``exportfs`` command or ``/etc/exports`` file on the storage which controls
|
||||
each remote share and the hosts that can access it. It is empty if nobody can
|
||||
mount a share. For the remote CIFS server there is ``net conf list`` command
|
||||
which shows the configuration. The parameter ``hosts deny`` should be set by
|
||||
the share driver to ``0.0.0.0/0`` which means that that hosts are denied to
|
||||
When a share is just created there are no default access rules associated with
|
||||
it and permission to mount it. This could be seen in mounting config for
|
||||
export protocol in use. For example, there is an NFS command ``exportfs`` or
|
||||
``/etc/exports`` file on the storage which controls each remote share and
|
||||
defines hosts that can access it. It is empty if nobody can mount a share.
|
||||
For a remote CIFS server there is ``net conf list`` command
|
||||
which shows the configuration. ``hosts deny`` parameter should be set by
|
||||
the share driver to ``0.0.0.0/0`` which means that any host is denied to
|
||||
mount the share.
|
||||
|
||||
Using the Shared File Systems service, you can grant or deny access to a share
|
||||
@ -49,17 +49,17 @@ by specifying one of these supported share access levels:
|
||||
|
||||
.. tip::
|
||||
|
||||
The RO access level can be helpful in the public shares when the
|
||||
The RO access level can be helpful in public shares when the
|
||||
administrator gives read and write (RW) access for some certain editors or
|
||||
contributors and gives read-only (RO) access for the rest of users
|
||||
(viewers).
|
||||
|
||||
You must also specify one of these supported authentication methods:
|
||||
|
||||
* **ip**. Authenticates an instance through its IP address. A valid format is
|
||||
* **ip**. Authenticates an instance by its IP address. A valid format is
|
||||
XX.XX.XX.XX or XX.XX.XX.XX/XX. For example 0.0.0.0/0.
|
||||
|
||||
* **cert**. Authenticates an instance through a TLS certificate. Specify the
|
||||
* **cert**. Authenticates an instance by a TLS certificate. Specify the
|
||||
TLS identity as the IDENTKEY. A valid value is any string up to 64 characters
|
||||
long in the common name (CN) of the certificate.
|
||||
|
||||
@ -69,7 +69,7 @@ You must also specify one of these supported authentication methods:
|
||||
|
||||
.. note::
|
||||
|
||||
The supported authentication methods depend on which share driver, security
|
||||
Supported authentication methods depend on which share driver, security
|
||||
service and shared file system protocol you configure and use. Supported
|
||||
shared file system protocols are NFS, CIFS, GlusterFS, and HDFS. Supported
|
||||
security services are LDAP, Kerberos protocols, or Microsoft Active
|
||||
@ -78,21 +78,21 @@ You must also specify one of these supported authentication methods:
|
||||
org/developer/manila/devref/share_back_ends_feature_support_
|
||||
mapping.html>`_.
|
||||
|
||||
To verify that the access rules (ACL) were configured correctly for a share,
|
||||
you can list permissions for a share.
|
||||
To verify that access rules (ACL) were configured correctly for a share,
|
||||
you can list its permissions.
|
||||
|
||||
.. tip::
|
||||
|
||||
You also can choose and add the :ref:`security service
|
||||
<shared_fs_security_services>` that is supported by the share driver to
|
||||
create access rules with authentication methods for clients that are
|
||||
appropriate for your share. The supported security services are LDAP,
|
||||
appropriate for your share. Supported security services are LDAP,
|
||||
Kerberos and Microsoft Active Directory.
|
||||
|
||||
Below is an example of the NFS share with the Generic driver. After the share
|
||||
Below is an example of an NFS share with the Generic driver. After the share
|
||||
was created it has export location
|
||||
``10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de``. If you try
|
||||
to mount it on the host with ``10.254.0.4`` IP address, you'll get the
|
||||
to mount it on the host with ``10.254.0.4`` IP address, you'll get a
|
||||
*"Permission denied"* message.
|
||||
|
||||
.. code:: console
|
||||
@ -151,12 +151,3 @@ Now we can mount a share on the host with IP address ``10.254.0.4`` and have
|
||||
# ls -a /mnt
|
||||
. .. 1.txt lost+found
|
||||
#
|
||||
|
||||
You also can list the access rules to each share and deny the access using the
|
||||
Shared File Systems service CLI.
|
||||
|
||||
.. tip::
|
||||
|
||||
To ensure that the granted or denied access with Shared File Systems
|
||||
service CLI is correct, check the mount config file on the storage before
|
||||
releasing a share to the production.
|
||||
|
@ -8,7 +8,7 @@ tenant visible description, and a list of non-tenant-visible key-value pairs -
|
||||
extra specifications. The manila-scheduler uses extra specifications to make
|
||||
scheduling decisions, and drivers control the share creation.
|
||||
|
||||
The administrators can create and delete share types, and manage the extra
|
||||
An administrator can create and delete share types, and also manage extra
|
||||
specifications that give them meaning inside the Shared File Systems service.
|
||||
Tenants can list the share types and can use them to create new shares. For
|
||||
details of managing the share types, see `Shared File Systems API
|
||||
@ -17,26 +17,25 @@ details of managing the share types, see `Shared File Systems API
|
||||
<http://docs.openstack.org/admin-guide/shared_file_systems_share_types.html>`_
|
||||
documentation.
|
||||
|
||||
The shares types can be created as *public* and *private*. This is the level of
|
||||
Share types can be created as *public* and *private*. This is the level of
|
||||
visibility for the share type that defines whether other tenants can or cannot
|
||||
see it in a share types list and use it to create a new share.
|
||||
|
||||
By default, the share types are created as public. While creating a share type,
|
||||
By default, share types are created as public. While creating a share type,
|
||||
use :option:`--is_public` parameter set to ``False`` to make your share type
|
||||
private for other tenants not to see it in a list of share types and create
|
||||
new share with it.
|
||||
private which will prevent other tenants from seeing it in a list of share
|
||||
types and creating new shares with it. On the other hand, *public* share
|
||||
types are available to every tenant in a cloud.
|
||||
|
||||
The *public* share types are available to every tenant in a cloud.
|
||||
|
||||
The Shared File Systems service allows the administrators to grant or deny
|
||||
access to the *private* share types for some certain tenants. You also can get
|
||||
The Shared File Systems service allows an administrator to grant or deny
|
||||
access to the *private* share types for tenants. It is also possible to get
|
||||
information about access for a specified private share type.
|
||||
|
||||
.. tip::
|
||||
|
||||
Since the share types due to their extra specifications help to filter or
|
||||
Since share types due to their extra specifications help to filter or
|
||||
choose back ends before users create a share, using access to the share
|
||||
types you can limit clients that can choose definite back end.
|
||||
types you can limit clients in choice of specific back ends.
|
||||
|
||||
As an example, being an administrator user in admin tenant, you can create a
|
||||
private share type named ``my_type`` and see it in the list. In the console
|
||||
@ -58,7 +57,7 @@ provided to show the current logged in user.
|
||||
| 5..| default| public | YES | driver_handles_share_servers:True | snapshot_support:True |
|
||||
+----+--------+-----------+-----------+-----------------------------------+-----------------------+
|
||||
|
||||
The demo user in demo tenant can list the types and the private share type
|
||||
``demo`` user in ``demo`` tenant can list the types and the private share type
|
||||
named ``my_type`` is not visible for him.
|
||||
|
||||
.. code:: console
|
||||
@ -75,7 +74,7 @@ named ``my_type`` is not visible for him.
|
||||
| 5..| default| public | YES | driver_handles_share_servers:True| snapshot_support:True|
|
||||
+----+--------+-----------+-----------+----------------------------------+----------------------+
|
||||
|
||||
The administrator can grant the access to the private share type for the demo
|
||||
The administrator can grant access to the private share type for the demo
|
||||
tenant with the tenant ID equal to df29a37db5ae48d19b349fe947fada46:
|
||||
|
||||
.. code:: console
|
||||
@ -94,7 +93,7 @@ tenant with the tenant ID equal to df29a37db5ae48d19b349fe947fada46:
|
||||
+----------------------------------+--------------------+
|
||||
$ manila type-access-add my_type df29a37db5ae48d19b349fe947fada46
|
||||
|
||||
Thus now the users in demo tenant can see the private share type and use it in
|
||||
Thus now users in demo tenant can see the private share type and use it in
|
||||
the share creation:
|
||||
|
||||
.. code:: console
|
||||
@ -120,5 +119,5 @@ To deny access for a specified project, use
|
||||
A **real production use case** that shows the purpose of a share types and
|
||||
access to them is a situation when you have two back ends: cheap LVM as a
|
||||
public storage and expensive Ceph as a private storage. In this case you
|
||||
can grant access to the certain tenants and make the access with
|
||||
can grant access to certain tenants and make the access with
|
||||
``user/group`` authentication method.
|
||||
|
Loading…
Reference in New Issue
Block a user