Condizioni
L'elemento condizioni facoltativo di un'istruzione criterio limita l'accesso in base agli attributi forniti in IAM.
Una condizione restituisce le risorse in base ai parametri specificati. Ad esempio, utilizzare una condizione per restituire risorse con determinati caratteri nel nome.
Sintassi per una singola condizione: variable =|!= value
Sintassi per più condizioni: any|all {<condition>,<condition>,...}
Per creare un OR logico per un set di condizioni, utilizzare any
. Per creare un AND logico per un set di condizioni, utilizzare all
.
La corrispondenza delle condizioni ignora i nomi con distinzione tra maiuscole e minuscole. Ad esempio, una condizione per un bucket denominato "BucketA" corrisponde anche a un bucket denominato "bucketA".
- String:
'johnsmith@example.com'
'ocid1.compartment.oc1.exampleuniqueID'
(è necessario racchiudere il valore tra apici)
- Motivo:
-
/hr*/
(corrisponde alle stringhe che iniziano con "hr") -
/*hr/
(corrisponde alle stringhe che terminano con "hr") -
/*hr*/
(corrisponde alle stringhe che contengono "hr")
-
Negli esempi riportati di seguito, le istruzioni che specificano la condizione non consentono a GroupAdmins di elencare tutti gli utenti e i gruppi. Le istruzioni che includono il verbo
inspect
vengono aggiunte per la completezza. Vedere Variabili non applicabili a un risultato richiesta in una richiesta rifiutata.Esempi:
- Singola condizione:
Condizione singola per un tipo di risorsa (gruppi)
Allow group GroupAdmins to manage groups in tenancy where target.group.name = /A-Users-*/ Allow group GroupAdmins to inspect groups in tenancy
Condizione singola per molti tipi di risorsa (utenti e gruppi)
Allow group GroupAdmins to inspect users in tenancy
Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to inspect groups in tenancy
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'
Molte condizioni per una risorsa (gruppi)
Allow group NetworkAdmins to manage virtual-network-family in tenancy where target.compartment.id != 'ocid1.compartment.oc1.exampleuniqueID'
- Diverse condizioni
Il seguente criterio consente a GroupAdmins di creare, aggiornare o eliminare i gruppi i cui nomi iniziano con "
A-
", ad eccezione del gruppoA-Admins
stesso:Allow group GroupAdmins to manage groups in tenancy where all {target.group.name=/A-*/,target.group.name!='A-Admins'} Allow group GroupAdmins to inspect groups in tenancy
Variabili non applicabili a una richiesta hanno prodotto una richiesta rifiutata
Se la variabile non è applicabile alla richiesta in entrata, la condizione valuta la richiesta come false e la richiesta viene rifiutata. Ad esempio, di seguito sono riportate alcune istruzioni dei criteri di base che consentono a un utente di aggiungere o rimuovere utenti da qualsiasi gruppo ad eccezione di Administrators.
Allow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'
Allow group GroupAdmins to use groups in tenancy where target.group.name != 'Administrators'
Se un utente in GroupAdmins ha tentato di chiamare un'operazione API generale per gli utenti, ad esempio ListUsers
o UpdateUser
(che consente di modificare la descrizione dell'utente), la richiesta viene rifiutata, anche se tali operazioni API sono coperte da use users
. L'istruzione criterio di esempio per use users
include una variabile target.group.name
, ma la richiesta ListUsers
o UpdateUser
non specifica un gruppo. La richiesta è stata rifiutata perché non è stato fornito un valore target.group.name
.
Per concedere l'accesso a un utente generale quando un'operazione API non coinvolge un determinato gruppo, è necessario aggiungere un'altra istruzione che fornisca il livello di accesso che si desidera concedere, ma non includa la condizione. Ad esempio, per concedere l'accesso a ListUsers
, è necessaria un'istruzione simile alla seguente:
Allow group GroupAdmins to inspect users in tenancy
Per concedere l'accesso a UpdateUser
, è necessaria questa istruzione (che copre anche ListUsers
perché il verbo use
include le funzionalità del verbo inspect
):
Allow group GroupAdmins to use users in tenancy
Questo concetto generale applica anche qualsiasi altro tipo di risorsa con variabili di destinazione, ad esempio ListGroups.
Controllo dell'accesso basato su tag
Utilizzare le condizioni e un set di variabili di tag per scrivere criteri che definiscono l'accesso in base alle tag applicate a una risorsa. Puoi controllare l'accesso in base a una tag esistente nella risorsa richiedente (il gruppo o il gruppo dinamico nel criterio) o nella destinazione della richiesta (risorsa o compartimento). Il controllo dell'accesso basato su tag offre flessibilità ai criteri, consentendo di definire l'accesso che si estende su compartimenti, gruppi e risorse. Per informazioni dettagliate su come scrivere i criteri per l'accesso all'ambito tramite tag, vedere Utilizzo delle tag per gestire l'accesso.