GNU/Linux >> Znalost Linux >  >> Linux

Vysvětlení řízení přístupu založeného na roli sněhové vločky (RBAC).

Řízení přístupu je jedním z klíčových konceptů ve všech databázových prostředích. V tomto článku se dozvíme o řízení přístupu založeného na rolích Snowflake (RBAC) a o tom, jak vytvořit vlastní role a udělit přístup k rolím z WebUI Snowflake a pomocí klienta SnowSQL CLI.

1. Co je Role based Access Control (RBAC)?

Sněhová vločka poskytuje Role-based Access Control (RBAC) jako mechanismus pro udělování nebo odepírání přístupu k různým databázovým objektům a akcím objektům zabezpečení (uživatelům, službám atd.).

2. Co je Role?

Role jsou entity, které mohou udělovat a odebírat práva k zabezpečeným objektům. Uživatelům jsou přiděleny role, které jim umožňují provádět činnosti nezbytné pro obchodní funkce jejich organizace.

Uživatel může mít přiřazeno několik rolí. Uživatelé si mohou vyměňovat role a provádět různé úkoly s různými sadami práv.

Role lze přiřadit i jiným rolím, což také vede k hierarchii rolí. Vlastní role mohou být vytvořeny uživateli s vhodným přístupem. Jakékoli role nad touto pozicí v hierarchii zdědí oprávnění spojená s touto rolí.

V účtu Snowflake budou některé role definované systémem, které jsou vestavěny. Role, které jsou definovány systémem, nelze odebrat a oprávnění přiřazená těmto rolím nelze zrušit.

Existuje pět systémem definovaných rolí a Snowflake určuje, jakou „roli“ by měla každá systémová role plnit a kterou by uživatelé měli následovat.

  • SPRÁVCE ÚČTU: Pozice ACCOUNTADMIN spojuje odpovědnosti SYSADMIN a SECURITYADMIN do jedné.
  • ORGADMIN: Na organizační úrovni se jedná o roli, která řídí provoz.
  • SPRÁVCE ZABEZPEČENÍ: Tato pozice je zodpovědná za sledování a správu uživatelů a rolí.
  • USERADMIN: Tato pozice má na starosti vytváření rolí a uživatelů.
  • SYSADMIN: V účtu má tato role schopnost vytvářet sklady, databáze a další objekty. SYSADMIN má shrnout všechny vlastní role.
  • VEŘEJNÉ: Toto je role, která je automaticky přiřazena všem uživatelům a rolím ve vašem účtu.

Kromě těchto systémově definovaných rolí lze vytvářet role podle požadavku a přidělovat této roli oprávnění. To se nazývá Vlastní role .

3. Hierarchie rolí a dědičnost privilegií

Následující diagram ukazuje, jak jsou systémem definované role hierarchizovány a jak lze vlastní role přidružit k systémem definovaným rolím.

ORGADMIN je samostatná systémová role, která dohlíží na operace v celé organizaci. Hierarchie systémových rolí tuto roli neobsahuje.

Příklad pro hierarchii rolí a dědění oprávnění:

Ve výše uvedeném příkladu

  • Role 2 zdědí oprávnění „Vybrat“.
  • Role 1 zdědí oprávnění „Vybrat“ a „Vytvořit“.
  • Uživatel 1 byla přidělena Role-1, což znamená všechna tři oprávnění.
  • Uživateli 2 byla přidělena role 2, což znamená oprávnění „Vybrat“ a „Vytvořit“.

Poznámka: Rolím budou udělena oprávnění a role budou uděleny uživatelům, aby určovaly akce/operace, které mohou uživatelé provádět s objekty v systému.

4. Jak vytvořit vlastní role

Zde vytvoříme vlastní role, o kterých jsme hovořili dříve. Můžeme vytvořit pravidla z WebUI Snowflake nebo pomocí SnowSQL CLI klienta. Nejprve uvidíme grafický způsob.

4.1. Vytvořte role z WebUI Snowflake

Systémem definované role si můžete prohlédnout v uživatelském rozhraní Snowflake. Přejděte na Účet Snowflake 🡪 🡪 Role .

Vytvořte novou roli s názvem 'dev_ostechnix' . Chcete-li tak učinit, přejděte na Snowflake-UI 🡪 Účet 🡪 Role 🡪 Vytvořit .

Vyplňte název role, vyberte nadřazenou roli a okomentujte tuto roli.

Nová role 'dev_ostechnix' bude vytvořena, jakmile stisknete tlačítko 'Dokončit'.

Tuto vlastní roli jsme vytvořili se systémem definovanou rolí 'ACCOUNTADMIN' . V současné době nebyla tato role udělena žádnému uživateli. Protože je rodičovská role SYSADMIN, role 'dev_ostechnix' je přidělena uživateli 'SYSADMIN' .

4.2. Vytvořte role z příkazového řádku pomocí SnowSQL

Propojte Snowflake se SnowSQL pomocí příkazu níže:

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

Zadejte heslo svého účtu:

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

ACCOUNT ADMIN je super privilegovaná role, s touto rolí jsme se přihlásili. Nyní vytvoříme vlastní roli pomocí role ACCOUNT ADMIN.

Aktuální roli můžete zkontrolovat pomocí níže uvedeného příkazu:

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)>

Vytvořte roli 'TEST_OSTECHNIX' s komentářem 'role testera' pomocí níže uvedeného příkazu.

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

Ukázkový výstup:

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

Role můžete zobrazit pomocí příkazu níže.

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

V současnosti nejsou roli 'TEST_OSTECHNIX' udělena žádná oprávnění.

Ověřte udělení pomocí níže uvedeného příkazu.

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

5. Udělte roli oprávnění

Každá kategorie objektů bude mít vlastní sadu oprávnění. Například 'Virtual Warehouse' bude mít níže uvedená oprávnění.

  • MODIFY: Umožňuje měnit vlastnosti Warehouse.
  • MONITOR: Umožňuje sledovat dotazy spuštěné ve skladu a statistiky využití skladu.
  • PROVOZOVAT: Umožňuje změnit stav skladu jako Stop, Start, Suspend &Resume. Umožňuje také zobrazit minulé a současné dotazy ve skladu a zrušit dotazy.
  • POUŽITÍ: Umožňuje používat Sklad, tj. umožňuje provádět dotazy ve Skladu.
  • VLASTNICTVÍ: Umožňuje plnou kontrolu nad skladem. Toto oprávnění může mít u objektu současně pouze jedna role.
  • VŠECHNY: Umožňuje všechna oprávnění kromě VLASTNICTVÍ.

Zde udělujeme oprávnění objektu 'Virtual Warehouse' do role, kterou jsme vytvořili výše.

5.1. Udělte oprávnění roli z WebUI Snowflake

Roli můžete změnit, pokud byla role přidělena. Protože používáme roli ACCOUNT ADMIN, bude mít super kontrolu. Přepněte roli kliknutím na možnosti v části Účet v pravém horním rohu.

Nyní jsme v roli 'SPRÁVCE ÚČTU'. Bude mít všechna oprávnění ve skladech v systému.

Jakmile přepneme roli, vidíme, že role 'DEV_OSTECHNIX' nedokáže zobrazit žádné sklady v systému. Role 'DEV_OSTECHNIX' nemá žádná oprávnění.

Chcete-li udělit oprávnění, musí se uživatel přepnout na roli, která má oprávnění k udělení role. Protože používáme ACCOUNT_ADMIN, přecházíme na něj a udělujeme oprávnění roli DEV_OSTECHNIX.

Vyberte řádek skladu, kterému chcete poskytnout oprávnění, na pravé straně se zobrazí vyskakovací okno s oprávněními.

Nyní nejsou udělena žádná privilegia. Klikněte na 'Udělit oprávnění' pro udělení oprávnění roli.

Vyberte, jaké oprávnění chcete udělit, a vyberte roli, které chcete toto oprávnění udělit. Můžete kliknout na + symbol vpravo nahoře pro přidání oprávnění k udělení.

Zde udělujeme oprávnění MODIFY a OPERATE roli DEV_OSTECHNIX.

Oprávnění můžete ověřit přepnutím role na DEV_OSTECHNIX.

5.2. Udělte oprávnění roli pomocí klienta SnowSQL CLI

Ujistěte se, že jste v roli, která by měla mít oprávnění udělovat. Zde v této ukázce používáme ACCOUNT_ADMIN.

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)>

Prohlédněte si sklady dostupné v systému pomocí níže uvedeného příkazu 'show'.

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

Přepněte roli na TEST_OSTECHNIX.

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

Ověřte oprávnění ve skladech pouhým zobrazením skladů.

V současnosti nejsou roli TEST_OSTECHNIX udělena žádná oprávnění.

Chcete-li udělit oprávnění, přepněte zpět na roli ACCOUNT_ADMIN.

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

Udělte oprávnění pro Warehouse ‚OSTECH_DEMO_3‘ roli TEST_OSTECHNIX.

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

Ověřte oprávnění přepnutím do role TEST_OSTECHNIX.

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

Nyní můžete zajistit, že role TEST_OSTECHNIX může prohlížet Warehouse OSTECH_DEMO_3 a že je ve stavu Pozastaveno.

Spusťte Warehouse pomocí níže uvedeného příkazu.

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

Ověřte stav pomocí příkazu 'show'.

Nyní můžeme zajistit, že role TEST_OSTECHNIX má udělená oprávnění ve skladu OSTECH_DEMO_3.

Poznámka: Ať už používáme jakékoli dotazy v rozhraní SnowSQL CLI, stejné lze použít v listu Snowflake dostupném ve WebUI.

Závěr

V tomto článku jsme prošli řízením přístupu na základě rolí (RBAC) ve Snowflake. Ukázali jsme, že RBAC jednoduše vytváří role a uděluje oprávnění roli na objektu 'Virtual Warehouse'.

Podobně můžeme zajistit přístup k dalším objektům, jako jsou databáze, tabulky atd. V dalším článku budeme podrobně rozumět správě uživatelů a poskytování přístupu uživatelům.


Linux
  1. Úvod do Linux Access Control Lists (ACL)

  2. Jak se dostanu k ovládacímu panelu?

  3. Vytvářejte a rušte role v PostgreSQL

  1. Najděte a seřaďte soubory na základě přístupu, data a času úprav v systému Linux

  2. TCP Wrappers

  3. UNIX/Linux:Základy seznamů řízení přístupu (ACL).

  1. [Linux] :Shellinabox – Webový přístup k vašemu SSH terminálu

  2. RHCE Ansible Series #9:Ansible Role

  3. Matice oprávnění řízení přístupu na základě rolí (RBAC) pro cloudový hosting