Kontrol
Access adalah salah satu konsep penting di semua lingkungan Database. Pada artikel ini, kita akan belajar tentang Kontrol Akses berbasis Peran Snowflake (RBAC) dan cara membuat peran khusus dan memberikan akses ke peran dari Snowflake WebUI dan menggunakan SnowSQL CLI client.
Contents
1. Apa itu Kontrol Akses Berbasis Peran (RBAC)?2. Apa itu Peran?3. Hirarki Peran dan Warisan Hak Istimewa4. Cara membuat Peran Kustom4.1. Buat peran dari Snowflake WebUI4.2. Buat peran dari baris perintah menggunakan SnowSQL5. Berikan Hak Istimewa untuk Peran tersebut5.1. Berikan hak istimewa ke Peran dari Snowflake WebUI5.2. Berikan hak istimewa ke peran menggunakan SnowSQL CLI ClientConclusion1. Apa itu Kontrol Akses Berbasis Peran (RBAC)?
Snowflake menyediakan Kontrol Akses Berbasis Peran (RBAC) sebagai mekanisme untuk memberikan atau menolak akses ke berbagai objek database dan tindakan kepada prinsip keamanan (pengguna, layanan, dan sebagainya).
2. Apa itu Role?
Roles 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. Pengguna
A dapat memiliki beberapa peran yang ditetapkan untuk mereka. Pengguna dapat bertukar peran untuk melakukan tugas yang berbeda dengan set hak yang berbeda.
Roles 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.
Dalam akun Snowflake, akan ada beberapa peran yang ditentukan sistem yang disertakan. Peran yang ditentukan oleh sistem tidak dapat dihapus dan hak istimewa yang ditetapkan 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.
ACCOUNTADMIN: Posisi ACCOUNTADMIN menggabungkan tanggung jawab SYSADMIN dan SECURITYADMIN menjadi satu.ORGADMIN: Di tingkat organisasi, ini adalah peran yang mengelola operasi.SECURITYADMIN: Posisi ini bertanggung jawab untuk memantau dan mengelola pengguna dan peran.USERADMIN: Posisi ini bertugas membuat 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.
Selain dari peran yang ditentukan sistem ini, seseorang dapat membuat peran sesuai dengan persyaratan dan menetapkan hak istimewa untuk itu peran. Itu disebut sebagai Custom role.
3. Hierarki Peran dan Warisan Hak Istimewa
Diagram berikut mengilustrasikan bagaimana peran yang ditentukan sistem dihierarki dan bagaimana peran khusus dapat dikaitkan dengan peran yang ditentukan sistem.
ORGADMIN adalah peran sistem berbeda yang mengawasi operasi di seluruh organisasi. Hirarki peran sistem tidak berisi peran ini.
Contoh untuk Hierarki Peran dan Warisan Hak:
Dalam contoh di atas,
Role 2 mewarisi Hak ‘Pilih’.Peran 1 mewarisi Hak ‘Pilih’ dan ‘Buat’.Pengguna 1 telah ditetapkan Peran -1, yang berarti ketiga hak istimewa. Pengguna 2 telah diberi 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 di system.
4. Cara Membuat Custom Roles
Di sini kita akan membuat custom role yang telah kita bahas sebelumnya. Kita dapat membuat aturan dari WebUI Snowflake atau menggunakan klien CLI SnowSQL. Pertama, kita akan melihat cara grafis.
4.1. Membuat peran dari Snowflake WebUI
Anda dapat melihat peran yang ditentukan Sistem di UI Snowflake. Buka Snowflake-UI Akun Roles.
Buat Peran baru bernama ‘dev_otechnix’. Untuk melakukannya, buka Snowflake-UI Akun Peran Buat.
Isi nama peran, pilih peran induk dan komentari 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 induknya adalah SYSADMIN, peran ‘dev_ostechnix’ diberikan kepada ‘SYSADMIN’.
4.2. Buat peran dari commandline 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 Ketik pernyataan SQL atau !help OSTECHNIX email protected](no database).(no schema)>
ACCOUNT ADMIN adalah peran hak istimewa super, kami telah masuk dengan peran ini. Sekarang kita akan membuat peran khusus dengan peran ACCOUNT ADMIN.
Anda dapat memeriksa peran saat ini dengan menggunakan perintah di bawah ini:
OSTECHNIX#[email protected](no database).(no schema)>select current_role(); +----------------+ | CURRENT_ROLE() | |----------------| | AKUNTANSI | +----------------+ 1 Baris diproduksi. Waktu Berlalu: 0.133s OSTECHNIX#[email protected](no database).(no schema)>
Buat peran ‘TEST_OSTECHNIX’ dengan komentar ‘tester role’ menggunakan perintah di bawah ini.
OSTECHNIX#[email protected](no database). (tanpa skema)>CREATE ROLE "TEST_OSTECHNIX" COMMENT = 'tester role';
Contoh output:
+----------------------------- --------------+ | status | |--------------------------------------------| | Peran TEST_OSTECHNIX berhasil dibuat. | +-------------------------------------------+ 1 Baris diproduksi. Waktu Berlalu: 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)>tampilkan PERAN ;
Saat ini, tidak ada hak istimewa yang diberikan ke peran ‘TEST_OSTECHNIX’.
Verifikasi hibah menggunakan perintah di bawah ini.
OSTECHNIX#[email protected](no database).(no schema)>show grants to role TEST_OSTECHNIX;
- Berikan Hak Istimewa ke kategori Objek Role
Each akan memiliki hak istimewanya sendiri. Misalnya, ‘Virtual Warehouse’ akan memiliki hak istimewa di bawah ini.
MODIFY: Memungkinkan untuk mengubah properti Warehouse.MONITOR: Memungkinkan untuk memantau kueri yang berjalan di Gudang dan statistik penggunaan Warehouse.OPERATE: Memungkinkan untuk mengubah status Gudang seperti Stop, Start, Suspend & Resume. Juga memungkinkan untuk melihat kueri masa lalu & sekarang di Gudang dan membatalkan kueri. PENGGUNAAN: Memungkinkan untuk menggunakan Gudang, yaitu., memungkinkan untuk mengeksekusi kueri di Gudang. KEPEMILIKAN: Memungkinkan kontrol penuh 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 ‘Gudang Virtual’ ke peran yang kami buat di atas.
5.1. Berikan hak istimewa ke Peran dari Snowflake WebUIAnda dapat mengganti peran jika peran telah diberikan ke peran. Saat kami menggunakan peran ACCOUNT ADMIN, itu akan memiliki kontrol super. Beralih peran dengan mengklik opsi di bawah Akun di sudut kanan atas.
Sekarang kita berada dalam peran ‘AKUN ADMIN’. Ini akan memiliki semua hak istimewa di Gudang dalam sistem.
Segera setelah kita mengganti peran, kita dapat melihat bahwa peran ‘DEV_OSTECHNIX’ tidak dapat melihat Gudang apa pun dalam 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 sana dan memberikan hak istimewa ke peran DEV_OSTECHNIX.
Pilih baris Gudang yang ingin Anda berikan hak istimewa, Anda akan mendapatkan popup hak 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 tersebut. Anda dapat mengklik 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 ke peran menggunakan SnowSQL CLI ClientPastikan 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() | |----------------| | AKUNTANSI | +----------------+ 1 Baris diproduksi. Waktu Berlalu: 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)>tampilkan WAREHOUSES;
Ganti peran ke TEST_OSTECHNIX.
OSTECHNIX#[email protected](no database).(no schema)>gunakan peran TEST_OSTECHNIX;
Verifikasi hak istimewa di Gudang dengan hanya melihat Warehouses.
Saat ini, tidak ada hak istimewa.
diberikan peran TEST_OSTECHNIX.
Untuk memberikan hak istimewa, alihkan kembali ke peran ACCOUNT_ADMIN.
OSTECHNIX#(no warehouse)@(no database).(no skema)>gunakan peran ACCOUNTADMIN;
Berikan hak istimewa di Gudang ‘OSTECH_DEMO_3’ untuk 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_OSTECH_DEMO_3preOSTECHNIX. dll](tidak ada database).(tidak ada skema)>gunakan peran TEST_OSTECHNIX;
OSTECHNIX#(tidak ada gudang)@(tidak ada database).(tidak ada skema)>tampilkan WAREHOUSES;
Sekarang Anda dapat memastikan bahwa peran TEST_OSTECHNIX dapat melihat Gudang OSTECH_DEMO_3, dan itu dalam status Suspended.
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’.
Now 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.
Conclusion
Dalam artikel ini kami telah melalui kontrol akses berbasis peran ( RBAC) dalam Kepingan Salju. 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.
Resource:
https://docs.snowflake.com/en/user- guide/security-access-control.html