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

Nota

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.

Consentire agli utenti di visualizzare la lista di tutti i repository appartenenti alla tenancy o a un compartimento

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
Consenti agli utenti di estrarre le immagini da qualsiasi repository appartenente alla tenancy o a un compartimento

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
Consenti agli utenti di estrarre immagini da repository specifici nella tenancy o in un compartimento

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*/ }
Consenti agli utenti di eseguire il PUSH delle immagini in qualsiasi repository (e di creare nuovi repository, se necessario) nella tenancy o in un compartimento

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 e REPOSITORY_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.

Consenti ai manager di eseguire qualsiasi operazione su qualsiasi repository appartenente alla tenancy o a un compartimento

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.