Esempi di criteri
Utilizzare gli esempi riportati di seguito per informazioni sui criteri IAM in Data Integration.
La sintassi complessiva di un'istruzione criterio è la seguente:
allow <subject> to <verb> <resource-type> in <location> where <condition>
Per una descrizione di ciascuna variabile, vedere Sintassi dei criteri.
Dopo aver aggiunto i componenti IAM, ad esempio i gruppi dinamici e le istruzioni dei criteri, non provare a eseguire immediatamente i task associati. I nuovi criteri IAM richiedono da cinque a 10 minuti per diventare effettivi.
Per esportare e importare oggetti, vedere Abilita esportazione e importazione di aree di lavoro e oggetti nell'area di lavoro.
Rivedi anche le Criteri in Oracle Cloud Infrastructure (OCI) Data Integration del blog per identificare i criteri di cui hai bisogno.
Per utilizzare le aree di lavoro di Data Integration, è necessario creare criteri.
Per utilizzare le connessioni di rete private alle origini dati, è necessario concedere l'autorizzazione Data Integration per gestire le reti virtuali impostate per l'integrazione.
Senza il seguente criterio, l'integrazione dei dati non riesce.
allow service dataintegration to use virtual-network-family in compartment <compartment-name>
Per concedere l'autorizzazione a un gruppo per gestire le risorse di rete in un compartimento, effettuare le operazioni riportate di seguito.
allow group <group-name> to manage virtual-network-family in compartment <compartment-name>
Per gli utenti non amministratori:
allow group <group-name> to use virtual-network-family in compartment <compartment-name>
allow group <group-name> to inspect instance-family in compartment <compartment-name>
Per concedere l'autorizzazione Data Integration per elencare utenti e compartimenti, è possibile utilizzare inspect
.
allow service dataintegration to inspect users in tenancy
allow group <group-name> to inspect compartments in compartment <target-compartment-name>
Per consentire a un gruppo di visualizzare la lista di tutte le aree di lavoro di Data Integration, è possibile utilizzare inspect
.
Per visualizzare le aree di lavoro in un compartimento specifico:
allow group <group-name> to inspect dis-workspaces in compartment <compartment-name>
Per consentire a un gruppo di visualizzare la lista di tutte le aree di lavoro di Data Integration, è possibile utilizzare inspect
.
Il verbo read
per dis-workspaces
include le stesse autorizzazioni e le stesse operazioni API di inspect
, oltre all'autorizzazione DIS_WORKSPACE_READ
e alle operazioni API che copre.
Per consentire a un gruppo di elencare e ottenere i dettagli per dis-workspaces
in un compartimento specifico, è possibile utilizzare il verbo read
:
allow group <group-name> to read dis-workspaces in compartment <compartment-name>
Per consentire a un gruppo di elencare e ottenere i dettagli per dis-workspaces
e gli oggetti che contiene nella tenancy, è possibile utilizzare:
allow group <group-name> to read dis-workspaces in tenancy
Per consentire a un gruppo di aggiornare le aree di lavoro e gli oggetti in esse contenuti, è possibile utilizzare il verbo use
.
Il verbo use
per dis-workspaces
include le stesse autorizzazioni e le stesse operazioni API di read
e inspect
, oltre all'autorizzazione DIS_WORKSPACE_UPDATE
e alle operazioni API di cui si occupa.
Per consentire a un gruppo di aggiornare dis-workspaces
in un compartimento specifico, è possibile utilizzare:
allow group <group-name> to use dis-workspaces in compartment <compartment-name>
Per consentire a un gruppo di aggiornare dis-workspaces
e gli oggetti che contiene nella tenancy, è possibile utilizzare gli elementi riportati di seguito.
allow group <group-name> to use dis-workspaces in tenancy
Per consentire a un gruppo di aggiornare un'area di lavoro specifica e non un'altra area di lavoro, procedere come segue.
allow group <group-name> to use dis-workspaces in compartment <compartment-name> where target.workspace.id = '<workspace-ocid>'
Per consentire a un gruppo di aggiornare un set di aree di lavoro specificate, procedere come segue.
allow group <group-name> to use dis-workspaces in compartment <compartment-name> where ANY (target.workspace.id = '<workspace-1-ocid>', target.workspace.id = '<workspace-2-ocid>')
Per consentire a un gruppo di gestire le aree di lavoro e gli oggetti in esse contenuti, è possibile utilizzare il verbo manage
.
Il verbo manage
per dis-workspaces
include le stesse autorizzazioni e le stesse operazioni API di inspect
, read
e use
e le autorizzazioni, DIS_WORKSPACE_CREATE
e DIS_WORKSPACE_DELETE
e le operazioni API coperte.
Per consentire a un gruppo di gestire dis-workspaces
in un compartimento specifico, è possibile utilizzare:
allow group <group-name> to manage dis-workspaces in compartment <compartment-name>
Per consentire a un gruppo di gestire dis-workspaces
e gli oggetti che contiene nella tenancy, è possibile utilizzare gli elementi riportati di seguito.
allow group <group-name> to manage dis-workspaces in tenancy
Per consentire a un gruppo di gestire un'area di lavoro specifica e non un'altra area di lavoro, effettuare le operazioni riportate di seguito.
allow group <group-name> to manage dis-workspaces in compartment <compartment-name> where target.workspace.id = '<workspace-ocid>'
Per consentire a un gruppo di gestire un set di aree di lavoro specificate, procedere come segue.
allow group <group-name> to manage dis-workspaces in compartment <compartment-name> where ANY (target.workspace.id = '<workspace-1-ocid>', target.workspace.id = '<workspace-2-ocid>')
Per consentire a Data Integration di eseguire ricerche nelle aree di lavoro di una tenancy, definire i criteri riportati di seguito nel compartimento radice della tenancy.
allow service dataintegration to {TENANCY_INSPECT} in tenancy
allow service dataintegration to {DIS_METADATA_INSPECT} in tenancy
Integrazione dei dati richiede criteri specifici per utilizzare l'esportazione e l'importazione. Vedere Impostazione e criteri obbligatori nell'argomento Esportazione e importazione di oggetti.
Inoltre, Data Integration deve accedere alle risorse nello storage degli oggetti per l'esportazione e l'importazione. Vedere Esempi di criteri per abilitare l'accesso a OCI Object Storage.
Per creare un'applicazione o un progetto in una tenancy (destinazione) copiando le risorse da un'applicazione o un progetto esistente che si trova in una tenancy (origine) diversa, è necessario impostare determinati criteri nelle tenancy di origine e di destinazione.
Per scrivere le istruzioni dei criteri cross-tenancy, è necessario disporre dei seguenti elementi:
- Il nome e l'OCID della tenancy di destinazione
- Il nome e l'OCID della tenancy di origine
- OCID gruppo di utenti di un gruppo i cui utenti dispongono delle autorizzazioni di lettura e scrittura per le aree di lavoro di origine e di destinazione
Nella tenancy di destinazione:
La tenancy di destinazione è dove deve essere creata la nuova copia dell'applicazione o del progetto.
-
Creare un gruppo di utenti e aggiungere utenti al gruppo.
-
Definire un criterio con le istruzioni riportate di seguito.
define tenancy <source-tenancy-name> as <source-tenancy-OCID>
endorse group <group-name> to manage dis-family in tenancy <source-tenancy-name>
endorse group <group-name> to manage dis-workspaces in tenancy <source-tenancy-name>
endorse group <group-name> to read compartments in tenancy <source-tenancy-name>
endorse any-user to read compartments in tenancy <source-tenancy-name> where ALL {request.principal.type = 'disworkspace'}
endorse any-user to manage dis-workspaces in tenancy <source-tenancy-name> where ALL {request.principal.type = 'disworkspace'}
Nella tenancy di origine:
La tenancy di origine dispone dell'area di lavoro con l'applicazione o il progetto esistente da copiare.
-
Definire un criterio con le istruzioni riportate di seguito.
define tenancy <target-tenancy-name> as <target-tenancy-OCID>
define group <group-name> as <group-OCID>
-
Per l'accesso generico a tutte le aree di lavoro:
admit group <group-name> of tenancy <target-tenancy-name> to read compartments in tenancy
admit group <group-name> of tenancy <target-tenancy-name> to manage dis-workspaces in tenancy
admit any-user of tenancy <target-tenancy-name> to read compartments in tenancy where ALL {request.principal.type = 'disworkspace'}
admit any-user of tenancy <target-tenancy-name> to manage dis-workspaces in tenancy where ALL {request.principal.type = 'disworkspace'}
Invece dell'accesso generico, è possibile fornire un'autorizzazione più specifica basata sull'OCID dell'area di lavoro di origine o sulla chiave dell'applicazione di origine:
admit group <group-name> of tenancy <target-tenancy-name> to manage dis-workspaces in tenancy where source.workspace.id = '<source-tenancy-workspace-OCID>'
admit group <group-name> of tenancy <target-tenancy-name> to manage dis-workspaces in tenancy where source.application.key = '<source-existing-application-key>'
Di seguito sono riportati alcuni esempi di utilizzo delle autorizzazioni in una condizione.
allow group <group-name> to use dis-workspace in compartment <compartment-name> where request.permission = 'DIS_WORKSPACE_READ'
allow group <group-name> to use dis-workspace in compartment <compartment-name> where request.permission = 'DIS_WORKSPACE_UPDATE'
Di seguito sono riportati alcuni esempi di utilizzo delle operazioni API in una condizione.
allow group <group-name> to use dis-workspace in compartment <compartment-name> where request.operation = 'GetWorkspace'
allow group <group-name> to use dis-workspace in compartment <compartment-name> where request.operation = 'UpdateWorkspace'
Un'autorizzazione può avere più API correlate. Se si utilizza un'autorizzazione e non un'interfaccia API specifica in un criterio, selezionare Autorizzazioni necessarie per ogni operazione API per assicurarsi che il criterio copra le interfacce API che si intende utilizzare.
Le variabili vengono utilizzate quando si aggiungono condizioni a un criterio. Vedere Variabili generali per tutte le richieste.
I criteri con istruzioni condizionali dispongono di una clausola where
. Ad esempio, per consentire a un gruppo di aggiornare un'area di lavoro specifica e non un'altra area di lavoro:
allow group <group-name> to use dis-workspace in compartment <compartment-name> where target.workspace.id = '<workspace-ocid>'
Per consentire l'utilizzo di un'area di lavoro solo al gruppo che la crea:
allow group <group-name> to use dis-workspaces in compartment <compartment-name> where target.workspace.createdBy = request.user.id
Per consentire a un gruppo di gestire tutte le risorse di Data Integration, ad eccezione dell'eliminazione delle aree di lavoro, procedere come segue.
allow group <group-name> to manage dis-family in compartment <compartment-name> where request.permission != 'DIS_WORKSPACE_DELETE'
Le istruzioni dei criteri che utilizzano una chiave in una clausola where
consentono agli utenti di un gruppo di utilizzare le aree di lavoro in un compartimento in cui la richiesta dispone di tale chiave specifica. Ad esempio, è possibile consentire a un gruppo di operare solo in un'applicazione specifica.
Per limitare un gruppo all'esecuzione di task solo in un'applicazione specifica, procedere come segue.
allow group <group-name> to use dis-workspaces in compartment <compartment-name> where any {target.application.key='<application-key>'}
Per consentire a un gruppo di creare oggetti, ad esempio task e flussi di dati, solo in una cartella:
allow group <group-name> to use dis-workspaces in compartment <compartment-name> where any {target.folder.key='<folder-key>'}
Per consentire a un gruppo di aggiornare o eliminare un oggetto specifico, ad esempio un flusso di dati, procedere come segue.
allow group <group-name> to use dis-workspaces in compartment <compartment-name> where any {target.object.key='<object-key>'}
Integrazione dei dati richiede un'autorizzazione specifica per Oracle Cloud Infrastructure Object Storage per accedere ai metadati e leggere e scrivere i dati.
Per creare un asset dati di storage degli oggetti e sfogliarne gli schemi, devi appartenere a un gruppo di utenti che dispone dell'autorizzazione per leggere lo storage degli oggetti. Vedere Esempi di criteri per conto di.
Per eseguire il test di una connessione allo storage degli oggetti, assicurarsi che l'area di lavoro o il compartimento di Data Integration disponga almeno dell'accesso READ
a objectstorage-namespaces
. Vedere Esempi di criteri del principal risorsa.
Per creare ed eseguire un flusso di dati utilizzando lo storage degli oggetti come origine o destinazione, l'area di lavoro o il compartimento devono avere tutti i criteri menzionati in Esempi di criteri del principal delle risorse.
Il contenuto della clausola WHERE è facoltativo, ma necessario per limitare le risorse che accedono a Oracle Cloud Infrastructure Object Storage. È possibile utilizzarlo per ottimizzare l'accesso in base a esigenze specifiche. Per applicare un'istruzione criterio a:
- Tutte le aree di lavoro, utilizzare
WHERE ALL {request.principal.type='disworkspace'}
- Un'area di lavoro specifica, utilizzare
WHERE ALL {request.principal.id='<workspace-OCID>'}
È possibile copiare l'OCID dell'area di lavoro dalla console.
- Tutte le aree di lavoro in un compartimento specifico, utilizzare
WHERE ALL {request.resource.compartment.id = '<compartment-OCID>'}
Per informazioni dettagliate complete sulla scrittura dei criteri per controllare l'accesso allo storage degli oggetti, vedere Dettagli per lo storage degli oggetti.
Questi criteri consentono a un'area di lavoro di Data Integration o al relativo compartimento di convalidare le connessioni a Oracle Cloud Infrastructure Object Storage e di leggere e scrivere i dati.
I criteri necessari dipendono dal fatto che l'asset dati dello storage degli oggetti e l'area di lavoro Integrazione dei dati si trovino nella stessa tenancy o in tenancy diverse.
Nella stessa tenancy
Se l'area di lavoro Integrazione dati e l'origine dati di storage degli oggetti si trovano nella stessa tenancy, è necessario creare i criteri riportati di seguito.
allow any-user to read buckets in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>', request.operation = 'GetBucket'}
allow any-user to manage objects in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>'}
In tenancy diverse
Se l'area di lavoro Integrazione dati e l'origine dati di storage degli oggetti si trovano in tenancy diverse, è necessario creare i criteri riportati di seguito.
Nella tenancy dell'area di lavoro:
Endorse any-user to read buckets in tenancy <tenancy-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-OCID>', request.operation = 'GetBucket'}
Endorse any-user to manage objects in tenancy <tenancy-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-OCID>'}
Endorse any-user to manage buckets in tenancy <tenancy-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-OCID>', request.permission = 'PAR_MANAGE'}
Endorse any-user to inspect compartments in tenancy <tenancy-name> where ALL {request.principal.type = 'disworkspace'}
Nella tenancy di storage degli oggetti:
Admit any-user of tenancy <tenancy-name> to read buckets in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-OCID>', request.operation = 'GetBucket'}
Admit any-user of tenancy <tenancy-name> to manage objects in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-OCID>'}
Admit any-user of tenancy <tenancy-name> to manage buckets in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-OCID>', request.permission = 'PAR_MANAGE'}
Admit any-user of tenancy <tenancy-name> to inspect compartments in tenancy
Questi criteri consentono all'utente collegato di elencare e sfogliare compartimenti, bucket di storage degli oggetti e oggetti in base alle autorizzazioni già assegnate all'utente.
I criteri necessari dipendono dal fatto che l'asset dati dello storage degli oggetti e l'area di lavoro Integrazione dei dati si trovino nella stessa tenancy o in tenancy diverse.
Nella stessa tenancy
Se l'area di lavoro Integrazione dati e l'asset dati dello storage degli oggetti appartengono alla stessa tenancy, l'utente o il gruppo a cui appartiene deve avere accesso allo storage degli oggetti:
allow group <group-name> to use object-family in compartment <compartment-name>
In tenancy diverse
Se l'area di lavoro Integrazione dati e l'asset dati dello storage degli oggetti si trovano in tenancy diverse, è necessario creare i criteri riportati di seguito.
Nella tenancy dell'area di lavoro:
Define tenancy <any-name1> as <object-storage-tenancy-OCID>
Endorse group <group-name> to inspect compartments in tenancy <any-name1>
Endorse group <group-name> to use object-family in tenancy <any-name1>
Nella tenancy di storage degli oggetti:
Define tenancy <any-name2> as <workspace-tenancy-OCID>
Define group <workspace-tenancy-group-name> as <workspace-tenancy-group-OCID>
Admit group <group-name> of tenancy <any-name2> to inspect compartments in tenancy
Admit group <group-name> of tenancy <any-name2> to use object-family in compartment <compartment-name>
Quando si utilizzano i database Autonomous Data Warehouse o Autonomous Transaction Processing come database di destinazione in Data Integration, lo storage degli oggetti OCI viene utilizzato per il posizionamento nell'area intermedia dei dati e il completamento delle operazioni. Oltre ai criteri di storage degli oggetti necessari, è necessario creare anche i criteri riportati di seguito per consentire la preautenticazione per tali richieste.
allow any-user to manage buckets in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>', request.permission = 'PAR_MANAGE'}
Prima di poter pubblicare i task da OCI Data Integration nel servizio OCI Data Flow con endpoint privati, assicurarsi di disporre dei criteri riportati di seguito.
allow any-user to manage dataflow-application in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>'}
allow any-user to manage dataflow-run in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>'}
allow group <group-name> to read dataflow-application in compartment <compartment-name>
allow group <group-name> to manage dataflow-run in compartment <compartment-name>
allow any-user to read dataflow-private-endpoint in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>'}
allow any-user to read secret-bundles in compartment <compartment-name> where ALL {request.principal.type = 'disworkspace', request.principal.id = '<workspace-ocid>'}
Per gli utenti non amministratori, sono necessari i seguenti criteri:
allow group <group-name> to inspect dataflow-private-endpoint in compartment <compartment-name>
allow group <group-name> to read secret-bundles in compartment <compartment-name>
Per autenticare l'esecuzione di un task REST utilizzando il principal risorsa applicazione, aggiungere quanto segue per ottenere il principal risorsa OCI.
allow any-user to use ai-service-language-family in tenancy where ALL {request.principal.type = 'disapplication', request.principal.id = '<disapplication-ocid>'}