GNU/Linux >> Belajar Linux >  >> Linux

Kontrol Akses Berbasis Peran Kepingan Salju (RBAC) Dijelaskan

Kontrol akses adalah salah satu konsep penting di semua lingkungan Database. Dalam artikel ini, kita akan mempelajari tentang Kontrol Akses Berbasis Peran Snowflake (RBAC) dan cara membuat peran khusus dan memberikan akses ke peran dari Snowflake WebUI dan menggunakan klien CLI SnowSQL.

1. Apa itu Kontrol Akses berbasis Peran (RBAC)?

Kepingan Salju menyediakan Kontrol Akses Berbasis Peran (RBAC) sebagai mekanisme untuk memberikan atau menolak akses ke berbagai objek database dan tindakan untuk prinsip keamanan (pengguna, layanan, dan sebagainya).

2. Apa itu Peran?

Peran adalah entitas yang dapat memberikan dan mencabut hak atas objek yang dapat diamankan. Pengguna dialokasikan peran untuk memungkinkan mereka melakukan aktivitas yang diperlukan untuk fungsi bisnis organisasi mereka.

Seorang pengguna dapat memiliki beberapa peran yang ditetapkan untuk mereka. Pengguna dapat bertukar peran untuk melakukan tugas yang berbeda dengan set hak yang berbeda.

Peran dapat ditugaskan ke peran lain juga yang menghasilkan hierarki peran. Peran khusus dapat dibuat oleh pengguna dengan akses yang sesuai. Setiap peran di atas posisi tersebut dalam hierarki mewarisi hak istimewa yang terkait dengan peran tersebut.

Di akun Snowflake, akan ada beberapa peran yang ditentukan sistem yang sudah terpasang. Peran yang ditentukan oleh sistem tidak dapat dihapus dan hak istimewa yang diberikan untuk peran ini tidak dapat dicabut.

Ada lima peran yang ditentukan sistem, dan Snowflake menentukan "peran" apa yang harus dipenuhi oleh setiap peran sistem, yang harus diikuti pengguna.

  • AKUN ADMIN: Posisi ACCOUNTADMIN menggabungkan tanggung jawab SYSADMIN dan SECURITYADMIN menjadi satu.
  • ORGADMIN: Di tingkat organisasi, ini adalah peran yang mengelola operasi.
  • ADMIN KEAMANAN: Posisi ini bertanggung jawab untuk memantau dan mengelola pengguna dan peran.
  • USERADMIN: Posisi ini bertugas menciptakan peran dan pengguna.
  • SYSADMIN: Dalam sebuah akun, peran ini memiliki kemampuan untuk membangun gudang, database, dan objek lainnya. SYSADMIN seharusnya menggulung semua peran khusus.
  • PUBLIK: Ini adalah peran yang secara otomatis ditetapkan ke semua pengguna dan peran di akun Anda.

Terlepas dari peran yang ditentukan sistem ini, seseorang dapat membuat peran sesuai dengan persyaratan dan menetapkan hak istimewa untuk peran itu. Itu disebut sebagai Peran khusus .

3. Hierarki Peran dan Warisan Hak Istimewa

Diagram berikut mengilustrasikan bagaimana peran yang ditentukan sistem dihierarki dan bagaimana peran kustom dapat dikaitkan dengan peran yang ditentukan sistem.

ORGADMIN adalah peran sistem yang berbeda yang mengawasi operasi di seluruh organisasi. Hirarki peran sistem tidak berisi peran ini.

Contoh untuk Hirarki Peran dan Warisan Hak Istimewa:

Pada contoh di atas,

  • Peran 2 mewarisi Hak Istimewa 'Pilih'.
  • Peran 1 mewarisi Hak Istimewa 'Pilih' dan 'Buat'.
  • Pengguna 1 telah ditetapkan Peran-1, yang berarti ketiga hak istimewa.
  • Pengguna 2 telah ditetapkan Peran-2, yang berarti hak istimewa 'Pilih' dan 'Buat'.

Catatan: Hak istimewa akan diberikan kepada peran, dan peran akan diberikan kepada pengguna, untuk menentukan tindakan/operasi yang dapat dilakukan pengguna pada objek dalam sistem.

4. Cara membuat Peran Kustom

Di sini kita akan membuat peran khusus yang telah kita bahas sebelumnya. Kita dapat membuat aturan dari WebUI Snowflake atau menggunakan SnowSQL CLI klien. Pertama, kita akan melihat cara grafisnya.

4.1. Buat peran dari Snowflake WebUI

Anda dapat melihat peran yang ditentukan Sistem di UI Snowflake. Buka Snowflake-UI Akun Peran .

Buat Peran baru bernama 'dev_ostechnix' . Untuk melakukannya, buka Snowflake-UI Akun Peran Buat .

Isi nama peran, pilih peran induk dan beri komentar tentang peran ini.

Peran baru 'dev_ostechnix' akan dibuat setelah Anda menekan tombol 'Selesai'.

Kami telah membuat peran khusus ini dengan peran yang ditentukan sistem 'ACCOUNTADMIN' . Saat ini tidak ada pengguna yang diberikan peran ini. Karena peran induk adalah SYSADMIN, peran 'dev_ostechnix' diberikan kepada 'SYSADMIN' .

4.2. Buat peran dari baris perintah menggunakan SnowSQL

Hubungkan Snowflake dengan SnowSQL menggunakan perintah di bawah ini:

# snowsql -a uz64318.southeast-asia.azure -u OSTECHNIX

Masukkan kata sandi akun Anda:

Password:
* SnowSQL * v1.2.21
Type SQL statements or !help
OSTECHNIX#[email protected](no database).(no schema)>

ADMIN AKUN adalah peran hak istimewa super, kami telah masuk dengan peran ini. Sekarang kita akan membuat peran khusus dengan peran ADMIN AKUN.

Anda dapat memeriksa peran saat ini dengan menggunakan perintah di bawah ini:

OSTECHNIX#[email protected](no database).(no schema)>select current_role();
+----------------+
| CURRENT_ROLE() |
|----------------|
| ACCOUNTADMIN   |
+----------------+
1 Row(s) produced. Time Elapsed: 0.133s
OSTECHNIX#[email protected](no database).(no schema)>

Buat peran 'TEST_OSTECHNIX' dengan komentar 'peran penguji' menggunakan perintah di bawah ini.

OSTECHNIX#[email protected](no database).(no schema)>CREATE ROLE "TEST_OSTECHNIX" COMMENT = 'tester role';

Contoh keluaran:

+-------------------------------------------+
| status                                    |
|-------------------------------------------|
| Role TEST_OSTECHNIX successfully created. |
+-------------------------------------------+
1 Row(s) produced. Time Elapsed: 0.753s
OSTECHNIX#[email protected](no database).(no schema)>

Anda dapat melihat peran dengan menggunakan perintah di bawah ini.

OSTECHNIX#[email protected](no database).(no schema)>show ROLES;

Sampai sekarang, tidak ada hak istimewa yang diberikan untuk peran 'TEST_OSTECHNIX'.

Verifikasi hibah menggunakan perintah di bawah ini.

OSTECHNIX#[email protected](no database).(no schema)>show grants to role TEST_OSTECHNIX;

5. Berikan Hak Istimewa untuk Peran tersebut

Setiap kategori Obyek akan memiliki hak istimewanya sendiri. Misalnya, 'Virtual Warehouse' akan memiliki hak istimewa di bawah ini.

  • UBAH: Memungkinkan untuk mengubah properti Gudang.
  • MONITOR: Memungkinkan untuk memantau kueri yang berjalan di Gudang dan statistik penggunaan Gudang.
  • OPERASIKAN: Memungkinkan untuk mengubah keadaan Gudang seperti Stop, Start, Suspend &Resume. Juga memungkinkan untuk melihat kueri masa lalu &sekarang di Gudang dan membatalkan kueri.
  • PENGGUNAAN: Mengizinkan untuk menggunakan Warehouse, yaitu memungkinkan untuk mengeksekusi kueri di Warehouse.
  • KEPEMILIKAN: Memungkinkan kontrol penuh dari Gudang. Hanya satu peran yang dapat memiliki hak istimewa ini pada Objek pada satu waktu.
  • SEMUA: Mengizinkan semua hak istimewa kecuali KEPEMILIKAN.

Di sini kami memberikan hak istimewa objek 'Virtual Warehouse' dengan peran yang kita buat di atas.

5.1. Berikan hak istimewa untuk Peran dari Snowflake WebUI

Anda dapat mengganti peran jika peran telah diberikan kepada peran tersebut. Saat kami menggunakan peran ACCOUNT ADMIN, itu akan memiliki kontrol super. Ganti peran dengan mengeklik opsi di bawah Akun di pojok kanan atas.

Sekarang kita berada dalam peran 'ACCOUNT ADMIN'. Ini akan memiliki semua hak istimewa di Gudang dalam sistem.

Segera setelah kami mengganti peran, kami dapat melihat bahwa peran 'DEV_OSTECHNIX' tidak dapat melihat Gudang apa pun di sistem. Peran 'DEV_OSTECHNIX' tidak memiliki hak istimewa.

Untuk memberikan hak istimewa, pengguna harus beralih ke peran yang memiliki hak istimewa untuk memberikan peran. Karena kami menggunakan ACCOUNT_ADMIN, kami beralih ke ACCOUNT_ADMIN dan memberikan hak istimewa ke peran DEV_OSTECHNIX.

Pilih baris Warehouse yang ingin Anda berikan hak istimewa, Anda akan mendapatkan popup hak istimewa penyediaan di sisi kanan.

Tidak ada hak istimewa yang diberikan sekarang. Klik 'Berikan Hak Istimewa' untuk memberikan hak istimewa kepada peran tersebut.

Pilih hak istimewa yang ingin Anda berikan dan pilih peran yang ingin Anda berikan hak istimewa itu. Anda dapat mengeklik + simbol di kanan atas untuk menambahkan hak istimewa untuk diberikan.

Di sini, kami memberikan hak istimewa MODIFY dan OPERATE untuk peran DEV_OSTECHNIX.

Anda dapat memverifikasi hak istimewa dengan mengalihkan peran ke DEV_OSTECHNIX.

5.2. Berikan hak istimewa untuk peran tersebut menggunakan Klien CLI SnowSQL

Pastikan Anda berada dalam peran yang seharusnya memiliki hak istimewa untuk diberikan. Di sini, kami menggunakan ACCOUNT_ADMIN dalam demonstrasi ini.

OSTECHNIX#[email protected](no database).(no schema)>select current_role();
+----------------+
| CURRENT_ROLE() |
|----------------|
| ACCOUNTADMIN   |
+----------------+
1 Row(s) produced. Time Elapsed: 0.133s
OSTECHNIX#[email protected](no database).(no schema)>

Lihat Gudang yang tersedia di sistem dengan menggunakan perintah 'tampilkan' di bawah ini.

OSTECHNIX#[email protected](no database).(no schema)>show WAREHOUSES;

Alihkan peran ke TEST_OSTECHNIX.

OSTECHNIX#[email protected](no database).(no schema)>use role TEST_OSTECHNIX;

Verifikasi hak istimewa di Gudang hanya dengan melihat Gudang.

Sampai sekarang, tidak ada hak istimewa yang diberikan kepada peran TEST_OSTECHNIX.

Untuk memberikan hak istimewa, alihkan kembali ke peran ACCOUNT_ADMIN.

OSTECHNIX#(no warehouse)@(no database).(no schema)>use role ACCOUNTADMIN;

Berikan hak istimewa di Gudang 'OSTECH_DEMO_3' ke peran TEST_OSTECHNIX.

OSTECHNIX#[email protected](no database).(no schema)>grant MODIFY, OPERATE on warehouse OSTECH_DEMO_3 to role TEST_OSTECHNIX;

Verifikasi hak istimewa dengan beralih ke peran TEST_OSTECHNIX.

OSTECHNIX#[email protected](no database).(no schema)>use role TEST_OSTECHNIX;
OSTECHNIX#(no warehouse)@(no database).(no schema)>show WAREHOUSES;

Sekarang Anda dapat memastikan bahwa peran TEST_OSTECHNIX dapat melihat Gudang OSTECH_DEMO_3, dan dalam status Ditangguhkan.

Mulai Gudang dengan menggunakan perintah di bawah ini.

OSTECHNIX#(no warehouse)@(no database).(no schema)>alter WAREHOUSE OSTECH_DEMO_3 RESUME;

Verifikasi status dengan menggunakan perintah 'tampilkan'.

Sekarang kami dapat memastikan peran TEST_OSTECHNIX memiliki hak istimewa yang diberikan di gudang OSTECH_DEMO_3.

Catatan: Apa pun kueri yang kami gunakan di SnowSQL CLI, kueri yang sama dapat digunakan di lembar kerja Snowflake yang tersedia di WebUI.

Kesimpulan

Pada artikel ini kita telah melalui kontrol akses berbasis peran (RBAC) di Snowflake. Kami telah mendemonstrasikan RBAC hanya membuat peran dan memberikan hak istimewa untuk peran pada objek 'Virtual Warehouse'.

Demikian pula, kami dapat menyediakan akses pada objek lain seperti Database, Tabel, dll. Kami akan memiliki pemahaman detail tentang manajemen pengguna dan menyediakan akses ke pengguna di artikel berikutnya.


Linux
  1. Bagaimana cara mengakses Panel Kontrol?

  2. Seri Ansible RHCE #9:Peran yang Mungkin

  3. Matriks izin Kontrol Akses Berbasis Peran (RBAC) untuk Cloud Hosting

  1. Daftar kontrol akses dan drive eksternal di Linux:Apa yang perlu Anda ketahui

  2. UNIX/Linux :Dasar-dasar daftar kontrol akses (ACL)

  3. Peran apa yang dimainkan DAC (izin file), ACL dan MAC (SELinux) dalam keamanan file Linux?

  1. Temukan Dan Urutkan File Berdasarkan Akses, Tanggal Dan Waktu Modifikasi Di Linux

  2. Pengantar Daftar Kontrol Akses Linux (ACL)

  3. Pembungkus TCP