Criteri per controllare l'accesso al repository
Scopri come impostare i criteri per controllare l'accesso ai repository in Container Registry, insieme ad alcuni esempi di criteri comuni.
Hai un controllo dettagliato sulle operazioni che gli utenti sono autorizzati a eseguire sui repository in Oracle Cloud Infrastructure Registry (noto anche come Container Registry).
Le autorizzazioni di un utente per accedere ai repository provengono dai gruppi a cui appartengono. Le autorizzazioni per un gruppo sono definite dai criteri di identità. I criteri definiscono le azioni che i membri di un gruppo possono eseguire. Gli utenti accedono ai repository ed eseguono le operazioni in base ai criteri impostati per i gruppi di cui sono membri. I criteri di identità per controllare l'accesso al repository possono essere impostati a livello di tenancy e di compartimento. Vedere Dettagli per Container Registry.
Per poter controllare l'accesso ai repository, è necessario aver già creato gli utenti e averli già inseriti nei gruppi appropriati (vedere Gestione degli utenti e Gestione dei gruppi). È quindi possibile creare criteri e istruzioni criteri per controllare l'accesso al repository (vedere Gestione dei criteri).
Si noti che gli utenti del gruppo Administrators della tenancy possono eseguire qualsiasi operazione su qualsiasi repository in Container Registry che appartiene alla tenancy.
Criteri comuni
I criteri in questa sezione utilizzano nomi di gruppo di esempio, come indicato di seguito.
- acme-viewers: un gruppo che si desidera limitare alla sola visualizzazione di una lista di repository.
- acme-pullers: un gruppo che si desidera limitare al pull delle immagini.
- acme-pushers: un gruppo che si desidera consentire di spingere e tirare le immagini.
- acme-manager: gruppo che si desidera consentire di eseguire il push e il pull delle immagini, eliminare i repository e modificare i metadati del repository (ad esempio, per rendere pubblico un repository privato).
Assicurarsi di sostituire i nomi dei gruppi di esempio con nomi propri.
Tipo di accesso: possibilità di visualizzare una lista di tutti i repository in Container Registry appartenenti alla tenancy (o a un determinato compartimento). Gli utenti non saranno in grado di:
- visualizzare le immagini o i livelli in un repository;
- inviare o estrarre immagini da o verso un repository
Dove creare il criterio:
-
Nella tenancy. Ad esempio:
Allow group acme-viewers to inspect repos in tenancy
-
Nella tenancy o in un compartimento. Ad esempio:
Allow group acme-viewers to inspect repos in compartment acme-compartment
Tipo di accesso: possibilità di estrarre immagini (livelli e file manifesti) da qualsiasi repository in Container Registry appartenente alla tenancy (o a un determinato compartimento).
Dove creare il criterio:
-
Nella tenancy. Ad esempio:
Allow group acme-pullers to read repos in tenancy
-
Nella tenancy o in un compartimento. Ad esempio:
Allow group acme-pullers to read repos in compartment acme-compartment
Tipo di accesso: possibilità di estrarre immagini (livelli e file manifesti) da qualsiasi repository in Container Registry con un nome che inizia con "acme-web-app" e che appartiene alla tenancy (o che appartiene a un determinato compartimento).
Dove creare il criterio:
-
Nella tenancy. Ad esempio:
Allow group acme-pullers to read repos in tenancy where all { target.repo.name=/acme-web-app*/ }
-
Nella tenancy o in un compartimento. Ad esempio:
Allow group acme-pullers to read repos in compartment acme-compartment where all { target.repo.name=/acme-web-app*/ }
Tipo di accesso: possibilità di eseguire il PUSH delle immagini (livelli e file manifesti) in qualsiasi repository in Container Registry che appartiene alla tenancy o a un determinato compartimento.
Gli utenti richiedono sempre le autorizzazioni REPOSITORY_READ
e REPOSITORY_UPDATE
per eseguire il PUSH delle immagini. Se il repository specificato non esiste ancora, gli utenti richiedono anche l'autorizzazione REPOSITORY_CREATE
per creare un nuovo repository nel compartimento radice della tenancy quando eseguono il PUSH dell'immagine. Per ulteriori informazioni su questo scenario insolito, vedere Creazione di un repository.
Dove creare il criterio:
-
Nella tenancy. Ad esempio:
Allow group acme-pushers to manage repos in tenancy
Se si considera l'esempio precedente troppo permissivo (poiché include le autorizzazioni
REPOSITORY_MANAGE
eREPOSITORY_DELETE
, che non sono necessarie per eseguire il PUSH delle immagini), è possibile limitare le autorizzazioni per specificare in modo esplicito le autorizzazioni che si desidera concedere. Ad esempio:Allow group acme-pushers to manage repos in tenancy where ANY {request.permission = 'REPOSITORY_READ', request.permission = 'REPOSITORY_UPDATE', request.permission = 'REPOSITORY_CREATE'}
-
Nella tenancy o in un compartimento. Ad esempio, in un compartimento:
Allow group acme-pushers to manage repos in compartment acme-compartment
Tenere presente che se si crea il criterio in un compartimento diverso dal compartimento radice, come mostrato in precedenza, gli utenti non possono eseguire il PUSH di un'immagine in un repository che non esiste ancora. Il motivo è che il criterio riportato sopra non concede agli utenti l'autorizzazione per creare un nuovo repository nel compartimento radice della tenancy. Per ulteriori informazioni su questo scenario insolito, vedere Creazione di un repository.
Tipo di accesso: possibilità di eseguire qualsiasi operazione su qualsiasi repository in Container Registry appartenente alla tenancy (o a un determinato compartimento), tra cui:
- Estrarre un'immagine da qualsiasi repository.
- Eseguire il PUSH di un'immagine in qualsiasi repository.
- Creare un nuovo repository. In altre parole, per creare un repository vuoto in qualsiasi compartimento o per creare un repository nel compartimento radice della tenancy quando si esegue il push di un'immagine per la quale non esiste ancora un repository. Tenere presente che se si crea il criterio in un compartimento diverso dal compartimento radice, gli utenti non possono eseguire il PUSH di un'immagine in un repository che non esiste ancora. Questo perché il criterio non concede agli utenti l'autorizzazione per creare un nuovo repository nel compartimento radice. Per ulteriori informazioni su questo scenario insolito, vedere Creazione di un repository.
- Eliminare un repository.
- Modificare un repository pubblico in un repository privato oppure un repository privato in un repository pubblico.
Dove creare il criterio:
-
Nella tenancy. Ad esempio:
Allow group acme-managers to manage repos in tenancy
-
Nella tenancy o in un compartimento. Ad esempio:
Allow group acme-managers to manage repos in compartment acme-compartment
Tenere presente che se si crea il criterio riportato sopra in un compartimento diverso dal compartimento radice, gli utenti non possono eseguire il PUSH di un'immagine in un repository che non esiste ancora. Questo perché il criterio non concede agli utenti l'autorizzazione per creare un nuovo repository nel compartimento radice. Per ulteriori informazioni su questo scenario insolito, vedere Creazione di un repository.