Funzionamento dei criteri
Questo argomento descrive il funzionamento dei criteri e le funzioni di base.
Panoramica dei criteri
Un criterio è un documento che specifica chi può accedere alle risorse Oracle Cloud Infrastructure di cui dispone la tua azienda e in che modo. Un criterio permette a una gruppodi operare seconda modalità prestabilita con tipi specifici di risorse in un determinato compartimento . Se non si ha familiarità con utenti, gruppi o compartimenti, vedere Panoramica di Identity and Access Management.
In generale, è necessario che un amministratore IAM dell'organizzazione esegua le operazioni riportate di seguito.
- Definisci utenti, gruppi e uno o più compartimenti in cui conservare le risorse cloud per la tua organizzazione.
- Creare uno o più criteri, ognuno scritto nel linguaggio dei criteri. Vedere Criteri comuni.
- Posizionare gli utenti nei gruppi appropriati a seconda dei compartimenti e delle risorse con cui devono lavorare.
- Fornire agli utenti le password una tantum di cui hanno bisogno per accedere alla console e utilizzare i compartimenti. Per ulteriori informazioni, vedere Credenziali utente.
Dopo che l'amministratore ha completato questi passi, gli utenti possono accedere alla console, modificare le password una tantum e utilizzare risorse cloud specifiche come indicato nei criteri.
Informazioni di base dei criteri
Per gestire il controllo delle risorse, l'azienda avrà almeno un criterio. Ogni criterio è composto da una o più istruzioni che seguono la sintassi di base seguente:
Allow group <group_name> to <verb> <resource-type> in compartment <compartment_name>
Si noti che le istruzioni iniziano sempre con la parola Allow. I criteri consentono solo l'accesso, ma non possono negarlo. Invece c'è una negazione implicita, il che significa che per impostazione predefinita gli utenti non possono fare nulla e devono avere accesso tramite i criteri. Si è verificata un'eccezione a questa regola. Vedere Gli utenti possono fare qualcosa senza che un amministratore abbia scritto un criterio per loro?
Un amministratore dell'organizzazione definisce i gruppi e i compartimenti nella tenancy. Oracle definisce i verbi e i tipi di risorse che è possibile utilizzare nei criteri (vedere Verbi e Tipi di risorse).
In alcuni casi, si desidera che il criterio si applichi alla tenancy e non a un compartimento all'interno della tenancy. In tal caso, modificare la fine della dichiarazione politica in questo modo:
Allow group <group_name> to <verb> <resource-type> in tenancy
Per ulteriori dettagli sulla sintassi, vedere Sintassi dei criteri.
Per informazioni sul numero di criteri disponibili, vedere Limiti per servizio.
Alcuni esempi
Si supponga che l'amministratore crei un gruppo denominato HelpDesk il cui compito consiste nella gestione degli utenti e delle relative credenziali. Di seguito è riportato un criterio che consente di:
Allow group HelpDesk to manage users in tenancy
Notare che, poiché gli utenti risiedono nella tenancy (compartimento radice), il criterio indica semplicemente la parola tenancy, senza la parola compartment di fronte ad essa.
Successivamente, si supponga di disporre di un compartimento denominato Project-A e di un gruppo denominato A-Admins il cui compito consiste nel gestire tutte le risorse Oracle Cloud Infrastructure nel compartimento. Di seguito è riportato un criterio di esempio che consente di:
Allow group A-Admins to manage all-resources in compartment Project-A
Tenere presente che il criterio immediatamente precedente include la possibilità di redigere i criteri per tale compartimento, ovvero che gli amministratori A possono controllare l'accesso alle risorse del compartimento. Per ulteriori informazioni, vedere Allegato criteri.
Se si desidera limitare l'accesso di A-Admins all'avvio e alla gestione solo delle istanze di computazione e dei volumi di storage a blocchi (sia i volumi che i relativi backup) nel compartimento Progetto-A, ma la rete stessa risiede nel compartimento Reti, il criterio potrebbe invece essere:
Allow group A-Admins to manage instance-family in compartment Project-A
Allow group A-Admins to manage volume-family in compartment Project-A
Allow group A-Admins to use virtual-network-family in compartment Networks
La terza istruzione con il tipo di risorsa virtual-network-family abilita il processo di avvio dell'istanza, poiché la rete cloud è coinvolta. In particolare, il processo di avvio crea una nuova VNIC e la collega alla subnet in cui risiede l'istanza.
Per ulteriori esempi, vedere Criteri comuni.
Dettagli sulla specifica di gruppi e compartimenti
In genere, nel criterio viene specificato un gruppo o un compartimento in base al nome. Tuttavia, è possibile utilizzare l'OCID. Assicurarsi di aggiungere "id" prima dell'OCID. Ad esempio:
Allow group
id ocid1.group.oc1..aaaaaaaaqjihfhvxmumrl3isyrjw3n6c4rzwskaawuc7i5xwe6s7qmnsbc6a
to manage instance-family in compartment Project-A
È possibile specificare più gruppi separati da virgole:
Allow group A-Admins, B-Admins to manage instance-family in compartment Projects-A-and-B
Verbs
Oracle definisce i possibili verbi che è possibile utilizzare nei criteri. Ecco un riassunto dei verbi, dal minimo accesso al massimo:
| Verbo | Utente di destinazione | Tipi di accesso coperti |
|---|---|---|
inspect
|
Revisori esterni | Possibilità di elencare le risorse, senza accesso a informazioni riservate o metadati specificati dall'utente che potrebbero far parte di tale risorsa. Importante: l'operazione per elencare i criteri include il contenuto dei criteri stessi. Le operazioni elenco per i tipi di risorsa Networking restituiscono tutte le informazioni (ad esempio, il contenuto degli elenchi di sicurezza e delle tabelle di instradamento). |
read
|
Revisori interni | Include inspect più la possibilità di ottenere metadati specificati dall'utente e la risorsa effettiva stessa. |
use
|
Utenti finali quotidiani delle risorse | Include read più la possibilità di utilizzare le risorse esistenti (le azioni variano in base al tipo di risorsa). Include la possibilità di aggiornare la risorsa, ad eccezione dei tipi di risorsa in cui l'operazione di "aggiornamento" ha lo stesso impatto effettivo dell'operazione di "creazione" (ad esempio, UpdatePolicy, UpdateSecurityList e altri), nel qual caso la capacità di "aggiornamento" è disponibile solo con il verbo manage. In generale, questo verbo non include la possibilità di creare o eliminare quel tipo di risorsa. |
manage
|
Amministratori | Include tutte le autorizzazioni per la risorsa. |
Il verbo fornisce un determinato tipo di accesso generale (ad esempio, inspect consente di elencare e ottenere risorse). Quando si accede a tale tipo di accesso con un particolare tipo di risorsa in un criterio (ad esempio, Allow group XYZ to inspect compartments in the tenancy), si concede a tale gruppo l'accesso a un set specifico di autorizzazioni e operazioni API (ad esempio, ListCompartments, GetCompartment). Per ulteriori esempi, vedere Dettagli per verbi + combinazioni di tipi di risorsa. Ogni servizio descrive in dettaglio la lista delle operazioni API coperte per ogni combinazione di verbo e resource-type.
alcune eccezioni o sfumature speciali per determinati tipi di risorse.
Utenti: l'accesso sia a manage users che a manage groups consente di eseguire qualsiasi operazione con utenti e gruppi, tra cui la creazione e l'eliminazione di utenti e gruppi, nonché l'aggiunta o la rimozione di utenti dai gruppi. Per aggiungere o rimuovere utenti dai gruppi senza accesso alla creazione e all'eliminazione di utenti e gruppi, sono necessari solo use users e use groups. Vedere Criteri comuni.
Criteri: la possibilità di aggiornare un criterio è disponibile solo con manage policies e non con use policies, poiché l'aggiornamento di un criterio è simile alla creazione di un nuovo criterio (è possibile sovrascrivere le istruzioni dei criteri esistenti). Inoltre, inspect policies consente di ottenere l'intero contenuto dei criteri.
Oggetti di storage degli oggetti: inspect objects consente di elencare tutti gli oggetti in un bucket ed eseguire un'operazione HEAD per un determinato oggetto. In confronto, read objects consente di scaricare l'oggetto stesso.
Risorse del load balancer: tenere presente che inspect load-balancers consente di ottenere tutte le informazioni sui load balancer e sui componenti correlati (set backend e altro ancora).
Risorse di networking:
Tenere presente che il verbo inspect non restituisce solo informazioni generali sui componenti della rete cloud, ad esempio il nome e l'OCID di una lista di sicurezza o di una tabella di instradamento. Include anche il contenuto del componente (ad esempio, le regole effettive nell'elenco di sicurezza, gli instradamenti nella tabella di instradamento e così via).
Inoltre, i seguenti tipi di abilità sono disponibili solo con il verbo manage, non con il verbo use:
- Aggiorna (abilita/disabilita)
internet-gateways - Aggiorna
security-lists - Aggiorna
route-tables - Aggiorna
dhcp-options - Collegare un gateway di instradamento dinamico (DRG) a una rete cloud virtuale (VCN)
- Creare una connessione IPSec tra un DRG e un'apparecchiatura (CPE) locale del cliente
- VCN peer
Ogni VCN dispone di diversi componenti che influiscono direttamente sul comportamento della rete (tabelle di instradamento, liste di sicurezza, opzioni DHCP, gateway Internet e così via). Quando crei uno di questi componenti, stabilisci una relazione tra tale componente e la VCN, il che significa che devi essere autorizzato in un criterio a creare sia il componente che a gestire la VCN stessa. Tuttavia, la possibilità di aggiornare tale componente (per modificare le regole di instradamento, le regole della lista di sicurezza e così via) non richiede l'autorizzazione per gestire la VCN stessa, anche se la modifica di tale componente può influire direttamente sul funzionamento della rete. Questa discrepanza è stata progettata per offrire flessibilità nella concessione di privilegi minimi agli utenti e non richiede di concedere un accesso eccessivo alla VCN in modo che l'utente possa gestire altri componenti della rete. Essere consapevoli del fatto che dando a qualcuno la possibilità di aggiornare un particolare tipo di componente, si sta implicitamente fidando di loro con il controllo del comportamento della rete.
Tipi di risorsa
Oracle definisce anche i tipi di risorse che è possibile utilizzare nei criteri. Innanzitutto, esistono singoli tipi. Ogni singolo tipo rappresenta un tipo specifico di risorsa. Ad esempio, il tipo di risorsa vcns è specifico per le reti cloud virtuali (VCN).
Per semplificare la scrittura dei criteri, esistono tipi di famiglia che includono più singoli tipi di risorse spesso gestiti insieme. Ad esempio, il tipo virtual-network-family riunisce una varietà di tipi relativi alla gestione delle reti VCN (ad esempio, vcns, subnets, route-tables, security-lists e così via). Se è necessario scrivere un criterio più granulare che consenta l'accesso solo a un singolo tipo di risorsa, è possibile. Ma puoi anche scrivere facilmente una politica per dare accesso a una gamma più ampia di risorse.
In un altro esempio: Volume a blocchi contiene volumes, volume-attachments e volume-backups. Se è necessario concedere l'accesso solo ai backup dei volumi, è possibile specificare il tipo di risorsa volume-backups nel criterio. Tuttavia, se è necessario concedere un accesso ampio a tutte le risorse del volume a blocchi, è possibile specificare il tipo di famiglia denominato volume-family. Per un elenco completo dei tipi di risorse della famiglia, vedere Tipi di risorse.
Se un servizio introduce nuovi singoli tipi di risorse, in genere verranno inclusi nel tipo di famiglia per tale servizio. Ad esempio, se Networking introduce un nuovo singolo tipo di risorsa, verrà incluso automaticamente nella definizione del tipo di risorsa
virtual-network-family. Per ulteriori informazioni sulle modifiche future alle definizioni dei tipi di risorsa, vedere Criteri e aggiornamenti del servizio.Si noti che esistono altri modi per rendere i criteri più granulari, ad esempio la possibilità di specificare le condizioni in base alle quali viene concesso l'accesso. Per ulteriori informazioni, vedere Funzioni dei criteri avanzati.
Se un servizio introduce nuove autorizzazioni per un tipo di risorsa esistente, è necessario aggiornare l'istruzione del criterio per il tipo di risorsa esistente per rendere effettive le nuove autorizzazioni. Per ulteriori informazioni, vedere Le nuove autorizzazioni nei tipi di risorse non vengono propagate.
Accesso che richiede più tipi di risorsa
Alcune operazioni API richiedono l'accesso a più tipi di risorse. Ad esempio, LaunchInstance richiede la possibilità di creare istanze e lavorare con una rete cloud. L'operazione CreateVolumeBackup richiede l'accesso sia al volume che al backup del volume. Ciò significa che avrai istruzioni separate per concedere l'accesso a ogni tipo di risorsa (ad esempio, vedere Consenti agli amministratori del backup dei volumi di gestire solo i backup). Queste singole dichiarazioni non devono essere nella stessa politica. E un utente può ottenere l'accesso richiesto dall'essere in gruppi diversi. Ad esempio, George potrebbe trovarsi in un gruppo che fornisce il livello di accesso richiesto al tipo di risorsa volumes e in un altro gruppo che fornisce l'accesso richiesto al tipo di risorsa volume-backups. La somma delle singole istruzioni, indipendentemente dalla loro posizione nel set complessivo di politiche, dà a George l'accesso a CreateVolumeBackup.
Eredità dei criteri
Una funzione di base dei criteri è il concetto di ereditarietà: i compartimenti ereditano qualsiasi criterio dal proprio compartimento padre. L'esempio più semplice è il gruppo Administrators, che viene fornito automaticamente con la tenancy in uso (vedere Gruppo di amministratori e criterio). È disponibile un criterio built-in che consente al gruppo Administrators di eseguire qualsiasi operazione nella tenancy:
Allow group Administrators to manage all-resources in tenancy
A causa dell'ereditarietà dei criteri, il gruppo di amministratori può eseguire qualsiasi azione anche in qualsiasi compartimento della tenancy.
Per ulteriori informazioni, considerare una tenancy con tre livelli di compartimenti: CompartmentA, CompartmentB e ComparmentC, riportati di seguito.
Le policy applicabili alle risorse in CompartmentA si applicano anche alle risorse in CompartmentB e CompartmentC. Quindi questa politica:
Allow group NetworkAdmins to manage virtual-network-family in compartment CompartmentA
consente al gruppo NetworkAdmins di gestire le reti VCN in CompartmentA, CompartmentB e CompartmentC.
Allegato criteri
Un'altra caratteristica di base dei criteri è il concetto di allegato. Quando crei un criterio, devi collegarlo a un compartimento (o alla tenancy, che è il compartimento radice). La posizione alla quale lo associ controlla chi può successivamente modificarlo o eliminarlo. Se lo si collega alla tenancy (in altre parole, se il criterio si trova nel compartimento radice), chiunque disponga dell'autorizzazione per gestire i criteri nella tenancy può modificarlo o eliminarlo. In genere si tratta del gruppo Administrators o di qualsiasi gruppo simile creato e a cui si concede ampio accesso. Chiunque disponga dell'accesso solo a un compartimento figlio non può modificare o eliminare tale criterio.
Se invece associ il criterio a un compartimento figlio, chiunque disponga dell'autorizzazione per gestire i criteri in tale compartimento può modificarlo o eliminarlo. In pratica, ciò vuol dire che è facile concedere agli amministratori dei compartimenti (ovvero un gruppo che ha accesso a manage all-resources nel compartimento) l'accesso per gestire le policy del proprio compartimento, senza concedere loro accesso più ampio per gestire le policy che risiedono nella tenancy. Per un esempio che utilizza questo tipo di progettazione dell'amministratore di compartimento, vedere Scenario di esempio. Tenere presente che a causa dell'ereditarietà dei criteri, gli utenti con accesso per gestire i criteri nella tenancy possono gestire automaticamente i criteri nei compartimenti all'interno della tenancy.
Il processo di collegamento del criterio è semplice (che si colleghi a un compartimento o alla tenancy): se si utilizza la console, quando si aggiunge il criterio a IAM, è sufficiente assicurarsi di trovarsi nel compartimento desiderato quando si crea il criterio. Se si utilizza l'API, è necessario specificare l'OCID del compartimento desiderato (la tenancy o altro compartimento) come parte della richiesta di creare il criterio.
Quando si collega un criterio a un compartimento, è necessario trovarsi in tale compartimento e è necessario indicare direttamente nell'istruzione a quale compartimento si applica. Se non ci si trova nel compartimento, verrà visualizzato un errore se si tenta di collegare il criterio a un compartimento diverso. Si noti che il collegamento si verifica durante la creazione dei criteri, il che significa che un criterio può essere collegato a un solo compartimento. Per informazioni su come collegare un criterio a un compartimento, vedere Per creare un criterio.
Polizze e gerarchie di compartimenti
Come descritto nella sezione precedente, un'istruzione dei criteri deve specificare il compartimento per il quale viene concesso l'accesso (o la tenancy). La posizione di creazione del criterio determina chi può aggiornare il criterio. Se colleghi il criterio al compartimento o al relativo elemento padre, puoi semplicemente specificare il nome del compartimento. Se si collega il criterio più in alto nella gerarchia, è necessario specificare il percorso. Il formato del percorso è ogni nome di compartimento (o OCID) nel percorso, separato da due punti:
<compartment_level_1>:<compartment_level_2>: . . . <compartment_level_n>
Si supponga, ad esempio, di disporre di una gerarchia di compartimenti a tre livelli, mostrata qui:
Creare un criterio per consentire a NetworkAdmins di gestire le reti VCN in CompartmentC. Se si desidera allegare questo criterio a CompartmentC o al relativo padre, CompartmentB, scrivere questa istruzione criterio:
Allow group NetworkAdmins to manage virtual-network-family in compartment CompartmentCTuttavia, se si desidera collegare questo criterio a CompartmentA (in modo che solo gli amministratori di CompartmentA possano modificarlo), scrivere questa istruzione del criterio che specifica il percorso:
Allow group NetworkAdmins to manage virtual-network-family in compartment CompartmentB:CompartmentCPer collegare questo criterio alla tenancy, scrivere questa istruzione del criterio che specifica il percorso da CompartmentA a CompartmentC:
Allow group NetworkAdmins to manage virtual-network-family in compartment CompartmentA:CompartmentB:CompartmentCCriteri e aggiornamenti dei servizi
È possibile che la definizione di un verbo o di un tipo di risorsa possa cambiare in futuro. Si supponga, ad esempio, che il tipo di risorsa virtual-network-family venga modificato in modo da includere un nuovo tipo di risorsa aggiunto al networking. Per impostazione predefinita, i criteri rimangono automaticamente aggiornati con qualsiasi modifica nella definizione del servizio, pertanto qualsiasi criterio di cui si dispone che consente l'accesso a virtual-network-family includerà automaticamente l'accesso alla risorsa appena aggiunta.
Se un servizio introduce nuove autorizzazioni per un tipo di risorsa esistente, è necessario aggiornare l'istruzione del criterio per il tipo di risorsa esistente per rendere effettive le nuove autorizzazioni. Per ulteriori informazioni, vedere Le nuove autorizzazioni nei tipi di risorse non vengono propagate.
Scrittura dei criteri per ogni servizio
La Panoramica sui criteri IAM include i dettagli dei tipi di risorse specifici per ciascun servizio e la combinazione verbo + tipo di risorsa consente di accedere a quali operazioni API.