GNU/Linux >> Linux Esercitazione >  >> Linux

Spiegazione del controllo degli accessi basato sul ruolo (RBAC) di Snowflake

Il controllo degli accessi è uno dei concetti cruciali in tutti gli ambienti Database. In questo articolo, impareremo il controllo degli accessi basato su ruoli Snowflake (RBAC) e come creare ruoli personalizzati e concedere l'accesso ai ruoli da Snowflake WebUI e utilizzando il client SnowSQL CLI.

1. Che cos'è il controllo degli accessi basato sui ruoli (RBAC)?

Fiocco di neve fornisce il controllo dell'accesso basato sul ruolo (RBAC) come meccanismo per concedere o negare l'accesso a vari oggetti di database e azioni alle entità di sicurezza (utenti, servizi e così via).

2. Cos'è il ruolo?

I ruoli sono le entità che possono concedere e revocare diritti su oggetti garantibili. Agli utenti vengono assegnati ruoli per consentire loro di intraprendere le attività necessarie per le funzioni aziendali della propria organizzazione.

A un utente possono essere assegnati diversi ruoli. Gli utenti possono scambiarsi i ruoli per svolgere diverse attività con diversi insiemi di diritti.

I ruoli possono essere assegnati ad altri ruoli anche che risultano dalla gerarchia dei ruoli. I ruoli personalizzati possono essere creati da utenti con accesso adeguato. Tutti i ruoli al di sopra di tale posizione nella gerarchia ereditano i privilegi associati a quel ruolo.

In un account Snowflake, ci saranno alcuni ruoli definiti dal sistema che sono integrati. I ruoli definiti dal sistema non possono essere rimossi e i privilegi assegnati a questi ruoli non possono essere revocati.

Esistono cinque ruoli definiti dal sistema e Snowflake determina quale "ruolo" dovrebbe svolgere ciascun ruolo di sistema e quali utenti dovrebbero seguire.

  • AMMINISTRATORE DELL'ACCOUNT: La posizione ACCOUNTADMIN combina le responsabilità SYSADMIN e SECURITYADMIN in una.
  • ORGADMIN: A livello organizzativo, questo è un ruolo che gestisce le operazioni.
  • AMMINISTRATORE DELLA SICUREZZA: Questa posizione è responsabile del monitoraggio e della gestione di utenti e ruoli.
  • AMMINISTRATORE UTENTE: Questa posizione è responsabile della creazione di ruoli e utenti.
  • SYSADMIN: In un account, questo ruolo ha la capacità di costruire magazzini, database e altri oggetti. SYSADMIN dovrebbe eseguire il rollup di tutti i ruoli personalizzati.
  • PUBBLICO: Questo è un ruolo assegnato automaticamente a tutti gli utenti e ruoli nel tuo account.

Oltre a questi ruoli definiti dal sistema, è possibile creare ruoli in base ai requisiti e assegnare privilegi a quel ruolo. Questo è chiamato come Ruoli personalizzati .

3. Gerarchia dei ruoli ed eredità dei privilegi

Il diagramma seguente illustra come vengono gerarchizzati i ruoli definiti dal sistema e come i ruoli personalizzati possono essere associati ai ruoli definiti dal sistema.

ORGADMIN è un ruolo di sistema distinto che supervisiona le operazioni a livello di organizzazione. La gerarchia dei ruoli di sistema non contiene questo ruolo.

Esempio per la gerarchia dei ruoli e l'ereditarietà dei privilegi:

Nell'esempio sopra,

  • Il ruolo 2 eredita il privilegio 'Seleziona'.
  • Il ruolo 1 eredita i privilegi "Seleziona" e "Crea".
  • All'utente 1 è stato assegnato il ruolo-1, il che significa tutti e tre i privilegi.
  • All'utente 2 è stato assegnato il ruolo-2, che significa privilegi "Seleziona" e "Crea".

Nota: Verranno concessi privilegi ai ruoli e agli utenti verranno concessi ruoli per determinare le azioni/operazioni che gli utenti possono eseguire sugli oggetti nel sistema.

4. Come creare ruoli personalizzati

Qui creeremo i ruoli personalizzati di cui abbiamo discusso in precedenza. Possiamo creare regole dalla WebUI di Snowflake o utilizzando SnowSQL CLI cliente. Per prima cosa, vedremo il modo grafico.

4.1. Crea ruoli da Snowflake WebUI

È possibile visualizzare i ruoli definiti dal sistema nell'interfaccia utente di Snowflake. Vai a Snowflake-UI 🡪 Account 🡪 Ruoli .

Crea un nuovo ruolo denominato 'dev_otechnix' . Per farlo, vai su Snowflake-UI 🡪 Account 🡪 Ruoli 🡪 Crea .

Inserisci il nome del ruolo, seleziona il ruolo principale e commenta questo ruolo.

Il nuovo ruolo "dev_otechnix" verrà creato una volta premuto il pulsante "Fine".

Abbiamo creato questo ruolo personalizzato con il ruolo definito dal sistema 'ACCOUNTADMIN' . Attualmente nessun utente ha ottenuto questo ruolo. Poiché il ruolo padre è SYSADMIN, il ruolo 'dev_otechnix' viene concesso a 'SYSADMIN' .

4.2. Crea ruoli dalla riga di comando utilizzando SnowSQL

Collega Snowflake con SnowSQL usando il comando seguente:

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

Inserisci la password del tuo account:

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

ACCOUNT ADMIN è il ruolo di super privilegio, abbiamo effettuato l'accesso con questo ruolo. Ora creeremo un ruolo personalizzato dal ruolo ACCOUNT ADMIN.

Puoi controllare il ruolo corrente usando il comando seguente:

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

Crea il ruolo 'TEST_OSTECHNIX' con il commento 'ruolo tester' utilizzando il comando seguente.

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

Risultato di esempio:

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

Puoi visualizzare i ruoli utilizzando il comando seguente.

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

Al momento non vengono concessi privilegi al ruolo 'TEST_OSTECHNIX'.

Verifica le sovvenzioni utilizzando il comando seguente.

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

5. Concedi privilegi al ruolo

Ciascuna categoria di oggetti avrà il proprio set di privilegi. Ad esempio, "Magazzino virtuale" avrà i privilegi seguenti.

  • MODIFICA: Consente di modificare le proprietà di Magazzino.
  • MONITOR: Consente di monitorare le query in esecuzione nel Magazzino e le statistiche di utilizzo del Magazzino.
  • OPERARE: Consente di modificare lo stato del Magazzino come Stop, Start, Suspend &Resume. Consente inoltre di visualizzare le query passate e presenti nel magazzino e annullare le query.
  • UTILIZZO: Consente di utilizzare il Magazzino, ovvero consente di eseguire le query nel Magazzino.
  • PROPRIETÀ: Consente il pieno controllo del Magazzino. Solo un singolo ruolo alla volta può avere questo privilegio su un Oggetto.
  • TUTTI: Consente tutti i privilegi tranne la PROPRIETÀ.

Qui stiamo concedendo i privilegi dell'oggetto 'Virtual Warehouse' al ruolo che abbiamo creato sopra.

5.1. Concedi privilegi al ruolo da Snowflake WebUI

È possibile cambiare il ruolo se il ruolo è stato concesso al ruolo. Poiché stiamo usando il ruolo ACCOUNT ADMIN, avrà il super controllo. Cambia ruolo facendo clic sulle opzioni in Account nell'angolo in alto a destra.

Ora siamo nel ruolo 'ACCOUNT ADMIN'. Avrà tutti i privilegi sui magazzini nel sistema.

Non appena cambiamo il ruolo, possiamo vedere che il ruolo 'DEV_OSTECHNIX' non è in grado di visualizzare nessun magazzino nel sistema. Il ruolo 'DEV_OSTECHNIX' non ha privilegi.

Per concedere i privilegi, l'utente deve passare al ruolo che dispone dei privilegi per concedere il ruolo. Poiché stiamo utilizzando ACCOUNT_ADMIN, stiamo passando ad esso e stiamo concedendo privilegi al ruolo DEV_OSTECHNIX.

Seleziona la riga del Magazzino a cui desideri fornire il privilegio, vedrai un popup di privilegi di approvvigionamento sul lato destro.

Nessun privilegio è concesso ora. Fai clic su "Concedi privilegi" per concedere privilegi al ruolo.

Seleziona quale privilegio desideri concedere e seleziona il ruolo a cui desideri concedere quel privilegio. Puoi fare clic su + simbolo in alto a destra per aggiungere i privilegi da concedere.

Qui stiamo concedendo i privilegi di MODIFY e OPERATE al ruolo DEV_OSTECHNIX.

Puoi verificare i privilegi cambiando il ruolo in DEV_OSTECHNIX.

5.2. Concedi privilegi al ruolo utilizzando SnowSQL CLI Client

Assicurati di essere nel ruolo che dovrebbe avere i privilegi da concedere. Qui stiamo usando ACCOUNT_ADMIN in questa dimostrazione.

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

Visualizza i Magazzini disponibili nel sistema utilizzando il comando 'mostra' di seguito.

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

Cambia il ruolo in TEST_OSTECHNIX.

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

Verifica i privilegi sui Magazzini semplicemente visualizzando i Magazzini.

Al momento non vengono concessi privilegi al ruolo TEST_OSTECHNIX.

Per concedere i privilegi, torna al ruolo ACCOUNT_ADMIN.

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

Concedi i privilegi sul Magazzino 'OSTECH_DEMO_3' al ruolo TEST_OSTECHNIX.

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

Verifica i privilegi passando al ruolo TEST_OSTECHNIX.

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

Ora puoi assicurarti che il ruolo TEST_OSTECHNIX possa visualizzare Warehouse OSTECH_DEMO_3 e che sia in stato Sospeso.

Avvia il magazzino utilizzando il comando seguente.

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

Verifica lo stato utilizzando il comando 'mostra'.

Ora possiamo garantire che il ruolo TEST_OSTECHNIX abbia i privilegi concessi sul magazzino OSTECH_DEMO_3.

Nota: Qualunque sia la query che stiamo utilizzando in SnowSQL CLI, la stessa può essere utilizzata nel foglio di lavoro Snowflake disponibile in WebUI.

Conclusione

In questo articolo abbiamo esaminato il controllo degli accessi basato sui ruoli (RBAC) in Snowflake. Abbiamo dimostrato l'RBAC semplicemente creando ruoli e concedendo privilegi per il ruolo sull'oggetto 'Virtual Warehouse'.

Allo stesso modo, possiamo fornire l'accesso su altri oggetti come database, tabelle, ecc. Nel prossimo articolo avremo una comprensione dettagliata della gestione degli utenti e del provisioning dell'accesso agli utenti.


Linux
  1. Un'introduzione agli elenchi di controllo di accesso (ACL) di Linux

  2. [Linux]:Shellinabox – Un accesso basato sul web al tuo terminale SSH

  3. RHCE Ansible Series #9:Ansible Roles

  4. Crea e rilascia ruoli in PostgreSQL

  5. Matrice di autorizzazioni RBAC (Role-Based Access Control) per Cloud Hosting

Come creare ruoli Ansible e usarli in Playbook

Come creare un Security Group (SG) e un Network Access Control List (NACL) in AWS

Spiegazione degli elenchi di controllo di accesso su Linux

Come accedo al mio pannello di controllo Managed.com?

Come accedere al pannello di controllo del mio hosting

Come accedere al pannello di controllo (Plesk)