Sintassi dei criteri

La sintassi complessiva di un'istruzione criterio è la seguente:

Allow <subject> to <verb> <resource-type> in <location> where <conditions>

Gli spazi di riserva o le interruzioni di riga nell'istruzione non hanno alcun effetto.

Per informazioni sui limiti relativi al numero di criteri e istruzioni, vedere Limiti del servizio.

Oggetto

Specificare uno o più gruppi separati da virgole in base al nome o all'OCID. In alternativa, specificare any-group per coprire tutti gli utenti, i principal delle istanze e i principal delle risorse nella tenancy.

Sintassi:{{ group <group_name> | group id <group_ocid> | dynamic-group <dynamic-group_name> | dynamic-group id <dynamic-group_ocid>| any-group | any-user}}

Nota

Qualsiasi utente concederà l'accesso a tutti gli utenti, ai principal delle risorse e ai principal delle istanze nella tenancy e nel principal del servizio. Si consiglia di non utilizzare any-user e invece any-group. In alternativa, è possibile specificare il tipo di risorsa per impedire l'accesso ai principi non necessari. Ad esempio, {request.principal.type='disworkspace'}.

Esempi:

  • Per specificare un singolo gruppo per nome:
    Allow 
    
    group A-Admins
    
     to manage all-resources in compartment Project-A
  • Per specificare più gruppi in base al nome (uno spazio dopo la virgola è facoltativo):
    Allow 
    
    group A-Admins, B-Admins
    
     to manage all-resources in compartment Projects-A-and-B
  • Per specificare un singolo gruppo in base all'OCID (l'OCID viene abbreviato per brevità):
    Allow group 
    
     id ocid1.group.oc1..aaaaaaaaqjihfhvxmum...awuc7i5xwe6s7qmnsbc6a 
    
    to manage all-resources in compartment Project-A
  • Per specificare più gruppi in base all'OCID (gli OCID vengono abbreviati per brevità):
    Allow group 
    
     id ocid1.group.oc1..aaaaaaaaqjihfhvxmumrl...wuc7i5xwe6s7qmnsbc6a,
     id ocid1.group.oc1..aaaaaaaavhea5mellwzb...66yfxvl462tdgx2oecyq 
    
    to manage all-resources in compartment Projects-A-and-B
  • Per specificare qualsiasi nome principale di gruppo o istanza nella tenancy o qualsiasi gruppo da ispezionare gli utenti in una tenancy, effettuare le operazioni riportate di seguito.
    Allow any-group to inspect users in tenancy

Verbo

Specificare un singolo verbo. Per un elenco di verbi, vedere Verbi. Ad esempio:

Allow group A-Admins to manage all-resources in compartment Project-A

Resource-Type

Specificare un singolo tipo di risorsa, che può essere uno dei seguenti:

  • Un singolo tipo di risorsa (ad esempio, vcns, subnets, instances, volumes e così via)
  • Tipo di risorsa famiglia (ad esempio, virtual-network-family, instance-family, volume-family e così via)
  • all-resources: copre tutte le risorse nel compartimento (o nella tenancy).

Un tipo di risorsa famiglia copre una varietà di componenti che in genere vengono utilizzati insieme. Ciò semplifica la scrittura di un criterio che consente a qualcuno di accedere per lavorare con vari aspetti della rete cloud.

Per un elenco dei tipi di risorsa disponibili, vedere Tipo di risorsa.

Sintassi: <resource_type> | all-resources

Esempi:

  • Per specificare un singolo tipo di risorsa:
    Allow group HelpDesk to manage users in tenancy
  • Per specificare più tipi di risorsa, utilizzare istruzioni separate:
    Allow group A-Users to manage instance-family in compartment Project-A
    
    Allow group A-Users to manage volume-family in compartment Project-A
    
  • Per specificare tutte le risorse nel compartimento (o nella tenancy):
    Allow group A-Admins to manage all-resources in compartment Project-A

Posizione

Specificare un singolo compartimento o percorso compartimento in base al nome o all'OCID. In alternativa, è sufficiente specificare tenancy per coprire l'intera tenancy. Tenere presente che gli utenti, i gruppi e i compartimenti risiedono nella tenancy. I criteri possono risiedere (ossia essere collegati a) nella tenancy o in un compartimento figlio.

Nota

Concessione dell'accesso a aree o domini di disponibilità specifici

Per creare un criterio che consenta l'accesso a un'area o a un dominio di disponibilità specifico, utilizzare la variabile request.region o request.ad con una condizione. Vedere Condizioni.

La posizione è obbligatoria nel rendiconto. Se si desidera collegare un criterio a un compartimento, è necessario trovarsi in tale compartimento quando si crea il criterio. Per ulteriori informazioni, vedere Allegato ai criteri.

Per specificare un compartimento che non sia un figlio diretto del compartimento a cui si sta collegando il criterio, specificare il percorso del compartimento utilizzando i due punti (:) come separatore. Per ulteriori informazioni vedere Criteri e gerarchie di compartimenti.

Sintassi: [ tenancy | compartment <compartment_name> | compartment id <compartment_ocid> ]

Esempi:

  • Per specificare un compartimento in base al nome:
    Allow group A-Admins to manage all-resources in compartment Project-A
  • Per specificare un compartimento in base all'OCID:
    Allow group
     id ocid1.group.oc1..aaaaaaaaexampleocid to manage all-resources in compartment id ocid1.compartment.oc1..aaaaaaaaexampleocid
  • Per specificare più compartimenti, utilizzare istruzioni separate:
    Allow group InstanceAdmins to manage instance-family in compartment Project-A
    
    Allow group InstanceAdmins to manage instance-family in compartment Project-B
    
    
  • Per specificare più compartimenti in base all'OCID, utilizzare istruzioni separate:
    Allow group id ocd1.group.oc1..aaaaaaaavheexampleocid to manage all-resources in compartment id ocid1.compartment.oc1..aaaaaaaayzexampleocid
    
    Allow group id ocd1.group.oc1..aaaaaaaaexampleocid to manage all-resources in compartment id ocid1.compartment.oc1..aaaaaexampledocid
  • Per specificare un compartimento che non sia un figlio diretto del compartimento in cui si sta collegando il criterio, specificare il percorso:

    Allow group InstanceAdmins to manage instance-family in compartment Project-A:Project-A2

Condizioni

Specificare una o più condizioni. Utilizzare any o all con più condizioni per un OR logico o AND, rispettivamente.

Sintassi per una singola condizione: variable =|!= value

Sintassi per più condizioni: any|all {<condition>,<condition>,...}

È possibile utilizzare operatori aggiuntivi con variabili basate sul tempo. Vedere Limitazione dell'accesso alle risorse in base al periodo di tempo.

Importante

La corrispondenza delle condizioni non fa distinzione tra maiuscole e minuscole. Ciò è importante da ricordare quando si scrivono le condizioni per i tipi di risorsa che consentono la denominazione con distinzione tra maiuscole e minuscole. Ad esempio, il servizio di storage degli oggetti ti consente di creare sia un bucket denominato "BucketA" che un bucket denominato "bucketA" nello stesso compartimento. Se si scrive una condizione che specifica "BucketA", verrà applicata anche a "bucketA", poiché la corrispondenza delle condizioni non fa distinzione tra maiuscole e minuscole.

Per un elenco delle variabili supportate da tutti i servizi, vedere Variabili generali per tutte le richieste. Vedere anche i dettagli relativi a ciascun servizio nella Panoramica sui criteri IAM. Di seguito sono riportati i tipi di valori che è possibile utilizzare nelle condizioni.

Digita Esempi
Stringa

'johnsmith@example.com'

'ocid1.compartment.oc1..aaaaaaaaph...ctehnqg756a'

(sono richieste apici 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")

Esempi:

Nota

Negli esempi seguenti, le istruzioni che specificano la condizione non consentono a GroupAdmins di elencare effettivamente tutti gli utenti e i gruppi, pertanto le istruzioni che includono il verbo inspect vengono aggiunte per essere complete. Per capire perché ciò sia necessario, vedere Variabili che non sono applicabili a una richiesta hanno come risultato una richiesta rifiutata.
  • Una singola condizione.

    Il seguente criterio consente al gruppo GroupAdmins di creare, aggiornare o eliminare i gruppi con nomi che iniziano con "A-Users-":

    Allow group GroupAdmins to manage groups in tenancy where target.group.name = /A-Users-*/
    Allow group GroupAdmins to inspect groups in tenancy
    Il criterio riportato di seguito consente al gruppo NetworkAdmins di gestire le reti cloud in qualsiasi compartimento ad eccezione di quello specificato:
    Allow group NetworkAdmins to manage virtual-network-family in tenancy where target.compartment.id != 'ocid1.compartment.oc1..aaaaaaaaexampleocid'
  • Condizioni multiple.

    Il criterio seguente consente a GroupAdmins di creare, aggiornare o eliminare i gruppi i cui nomi iniziano con "A-", ad eccezione del gruppo A-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