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 le risorse con determinati caratteri nei rispettivi nomi.
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'(sono richieste virgolette singole attorno al valore)
-
-
Pattern:
-
/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 seguenti, le istruzioni che specificano la condizione non consentono a GroupAdmins di elencare tutti gli utenti e i gruppi. Per la completezza vengono aggiunte istruzioni che includono il verbo
inspect. Vedere Variabili non applicabili a un risultato richiesta in una richiesta rifiutata.Esempi:
-
Condizione singola:
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 tenancyCondizione singola per molti tipi di risorse (utenti e gruppi)
Allow group GroupAdmins to inspect users in tenancyAllow group GroupAdmins to use users in tenancy where target.group.name != 'Administrators'Allow group GroupAdmins to inspect groups in tenancyAllow 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-Adminsstesso: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 al risultato di una richiesta in 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, ecco alcune istruzioni dei criteri di base che insieme consentono a qualcuno 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 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 capacità 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 sui 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. È possibile 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, consentendoti 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 in base alle tag, vedere Utilizzo delle tag per gestire l'accesso.