Share (membagi) kontrol akses

Layanan Shared File Systems memungkinkan untuk memberikan atau menolak akses ke entitas layanan yang berbeda untuk klien lain.

Dengan memiliki share sebagai instance sistem file yang dapat di mount jauh, Anda dapat mengatur akses ke bagian tertentu, dan mendaftarkan perizinan untuk bagian tertentu.

Share bisa public atau private. Ini adalah tingkat visibilitas untuk share yang menentukan apakah penyewa lain dapat atau tidak dapat melihat share nya. Secara default, semua share dibuat sebagai private. Sambil menciptakan share, gunakan key ``--public``untuk membuat share public Anda untuk penyewa lain melihatnya dalam daftar share dan melihat informasi rincinya.

Menurut file policy.json, administrator dan pengguna sebagai pemilik share dapat mengelola akses ke share dengan cara membuat aturan akses. Menggunakan perintah manila access-allow, manila access-deny dan manila access-list, Anda dapat memberi, menolak, dan mendaftar akses ke share tertentu.

Tip

Secara default, bila share dibuat dan memiliki lokasi ekspor, layanan Shared File Systems mengharapkan tidak ada yang dapat mengakses share dengan mounting. Harap dicatat bahwa share driver yang Anda gunakan dapat mengubah konfigurasi ini, atau bisa langsung diubah pada penyimpanan share. Untuk memastikan akses ke share, periksa konfigurasi pemasangan untuk protokol ekspor.

Saat share dibuat, tidak ada aturan akses default yang terkait dengannya dan izin untuk mounting. Ini bisa dilihat pada konfigurasi mounting untuk protokol ekspor yang digunakan. Misalnya, ada file perintah NFS exportfs atau /etc/exports pada penyimpanan yang mengontrol setiap remote share dan mendefinisikan host yang dapat mengaksesnya. Ini kosong jika tidak ada yang bisa me-mount share. Untuk server CIFS remote terdapat perintah net conf list yang menunjukkan konfigurasi. Parameter hosts deny harus ditetapkan oleh share driver ke 0.0.0.0/0 yang berarti bahwa setiap host ditolak untuk me-mount share.

Dengan menggunakan layanan Shared File System, Anda dapat memberikan atau menolak akses ke share dengan menentukan salah satu tingkat akses share yang didukung ini:

  • rw. Akses Read dan write (RW). Ini adalah nilai default.

  • ro. Akses Read-only (RO).

Tip

Tingkat akses RO dapat membantu dalam public share saat administrator memberikan akses read and write (RW) untuk beberapa editor atau kontributor tertentu dan memberikan akses read-only (RO) untuk pengguna lainnya (viewer).

Anda juga harus menentukan salah satu dari metode otentikasi yang didukung ini:

  • ip. Mengotentikasi sebuah instance dari alamat IP-nya. Format yang valid adalah XX.XX.XX.XX atau XX.XX.XX.XX / XX. Misalnya 0.0.0.0/0.

  • cert. Mengotentikasi sebuah instance dari sertifikat TLS. Tentukan identitas TLS sebagai IDENTKEY. Nilai yang valid adalah string yang memiliki panjang hingga 64 karakter dalam common name (CN) dari sertifikat.

  • user. Mengotentikasi pengguna tertentu atau nama grup. Nilai yang valid adalah string alfanumerik yang dapat berisi beberapa karakter khusus dan terdiri dari 4 hingga 32 karakter.

Catatan

Metode otentikasi yang didukung bergantung pada share driver, layanan keamanan dan protokol sistem file shared yang Anda konfigurasikan dan gunakan. Protokol sistem file shared yang didukung adalah NFS, CIFS, GlusterFS, dan HDFS. Layanan keamanan yang didukung adalah LDAP, protokol Kerberos, atau layanan Microsoft Active Directory. Untuk rincian dukungan fitur oleh driver yang berbeda, lihat Manila share features support mapping.

Untuk memverifikasi bahwa aturan akses (ACL) telah dikonfigurasi dengan benar untuk sebuah share, Anda dapat mendaftarkan perizinannya.

Tip

Anda juga bisa memilih dan menambahkan security service yang didukung oleh share driver untuk membuat aturan akses dengan metode otentikasi untuk klien yang sesuai untuk share anda. Layanan keamanan yang didukung adalah LDAP, Kerberos dan Microsoft Active Directory.

Berikut adalah contoh pembagian NFS dengan driver Generik. Setelah share itu dibuat, ia memiliki lokasi ekspor 10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de. Jika Anda mencoba me-mountnya di host dengan alamat IP 10.254.0.4, Anda akan mendapatkan pesan "Permission denied".

# mount.nfs -v 10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de /mnt
mount.nfs: timeout set for Mon Oct 12 13:07:47 2015
mount.nfs: trying text-based options 'vers=4,addr=10.254.0.3,clientaddr=10.254.0.4'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 10.254.0.3:/shares/share-b2874f8d-...

Sebagai administrator, Anda dapat terhubung melalui SSH ke host dengan alamat IP 10.254.0.3, periksa file /etc/exports di dalamnya dan lihat isinya kosong:

# cat /etc/exports
#

Driver Generik yang kami gunakan misalnya tidak mendukung layanan keamanan apa pun, sehingga dengan protokol sistem file shared NFS kami dapat memberikan akses hanya melalui alamat IP:

$ manila access-allow Share_demo2 ip 10.254.0.4
+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| share_id     | e57c25a8-0392-444f-9ffc-5daadb9f756c |
| access_type  | ip                                   |
| access_to    | 10.254.0.4                           |
| access_level | rw                                   |
| state        | new                                  |
| id           | 62b8e453-d712-4074-8410-eab6227ba267 |
+--------------+--------------------------------------+

Setelah aturan memiliki status active kita dapat terhubung ke host 10.254.0.3 lagi dan memeriksa file /etc/exports dan melihat bahwa baris dengan aturan telah ditambahkan:

# cat /etc/exports
/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de     10.254.0.4(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
#

Sekarang kita bisa me-mount share di host dengan alamat IP 10.254.0.4 dan memiliki permission rw untuk share:

# mount.nfs -v 10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de /mnt
# ls -a /mnt
.  ..  lost+found
# echo "Hello!" > /mnt/1.txt
# ls -a /mnt
.  ..  1.txt  lost+found
#