Politiques de contrôle d'accès aux référentiels

Découvrez comment configurer des politiques pour contrôler l'accès aux référentiels du registre de conteneurs, ainsi que des exemples de politiques communes.

Vous pouvez assurer un contrôle précis sur les opérations que les utilisateurs sont autorisés à effectuer sur les référentiels dans Oracle Cloud Infrastructure Registry (également appelé Container Registry).

Les autorisations permettant à un utilisateur d'accéder à des référentiels proviennent des groupes dont il fait partie. Les autorisations d'un groupe sont définies par des politiques de gestion des identités. Les politiques définissent les actions que peuvent effectuer les membres d'un groupe. Les utilisateurs accèdent aux référentiels et effectuent des opérations en fonction des politiques définies pour les groupes dont ils sont membres. Les politiques de identité permettant de contrôler l'accès aux référentiels peuvent être définies au niveau de la location et du compartiment. Voir Détails du registre de conteneurs.

Afin de pouvoir contrôler l'accès aux référentiels, vous devez avoir créé des utilisateurs et les avoir placés dans les groupes appropriés (voir Gestion des utilisateurs et Gestion des groupes). Vous pouvez ensuite créer des politiques et des énoncés pour contrôler l'accès aux référentiels (voir Gestion des politiques).

Notez que les utilisateurs du groupe Administrateurs de la location peuvent effectuer toutes les opérations sur tous les référentiels du registre de conteneurs appartenant à la location.

Politiques communes

Note

Les politiques de cette section utilisent les exemples de noms de groupe suivants :

  • acme-viewers : Groupe pour lequel vous voulez uniquement afficher une liste de référentiels.
  • acme-pullers : Groupe pour lequel vous voulez uniquement autoriser l'extraction d'images.
  • acme-pushers : Groupe que vous voulez autoriser à pousser et à extraire des images.
  • acme-managers : Groupe que vous voulez autoriser à pousser et à extraire des images, à supprimer des référentiels et à modifier des métadonnées de référentiel (par exemple, pour modifier un référentiel privé en référentiel public).

Veillez à remplacer les exemples de noms de groupe par vos propres noms de groupe.

Permettre aux utilisateurs de voir une liste de tous les référentiels appartenant à la location ou à un compartiment

Type d'accès : Permet d'afficher la liste de tous les référentiels du registre de conteneurs appartenant à la location (ou à un compartiment donné). Les utilisateurs ne pourront pas :

  • Voir les images ou les couches dans un référentiel
  • Pousser des images vers un référentiel ou extraire des images d'un référentiel

Où créer la politique :

  • Dans la location. Par exemple :

    Allow group acme-viewers to inspect repos in tenancy
  • Dans la location ou dans un compartiment. Par exemple :

    Allow group acme-viewers to inspect repos in compartment acme-compartment
Permettre aux utilisateurs d'extraire des images de tout référentiel appartenant à la location ou à un compartiment

Type d'accès : Permet d'extraire des images (couches et manifestes) de tout référentiel dans le registre de conteneurs appartenant à la location (ou à un compartiment particulier).

Où créer la politique :

  • Dans la location. Par exemple :

    Allow group acme-pullers to read repos in tenancy
  • Dans la location ou dans un compartiment. Par exemple :

    Allow group acme-pullers to read repos in compartment acme-compartment
Permettre aux utilisateurs d'extraire des images de référentiels spécifiques de la location ou d'un compartiment

Type d'accès : Permet d'extraire des images (couches et manifestes) de n'importe quel référentiel dans le registre de conteneurs qui a un nom commençant par "acme-web-app" et qui appartient à la location (ou qui appartient à un compartiment particulier).

Où créer la politique :

  • Dans la location. Par exemple :

    Allow group acme-pullers to read repos in tenancy where all { target.repo.name=/acme-web-app*/ }
  • Dans la location ou dans un compartiment. Par exemple :

    Allow group acme-pullers to read repos in compartment acme-compartment where all { target.repo.name=/acme-web-app*/ }
Permet aux utilisateurs de pousser des images vers n'importe quel référentiel (et de créer de nouveaux référentiels si nécessaire) dans la location ou dans un compartiment

Type d'accès : Permet de pousser des images (couches et manifestes) vers tout référentiel dans le registre de conteneurs qui appartient à la location ou à un compartiment particulier.

Les utilisateurs ont toujours besoin des autorisations REPOSITORY_READ et REPOSITORY_UPDATE pour pousser des images. Si le référentiel spécifié n'existe pas encore, les utilisateurs doivent également disposer de l'autorisation REPOSITORY_CREATE pour créer un nouveau référentiel dans le compartiment racine de la location lorsqu'ils poussent l'image. Pour plus d'informations sur ce scénario inhabituel, voir Création d'un référentiel.

Où créer la politique :

  • Dans la location. Par exemple :

    Allow group acme-pushers to manage repos in tenancy

    Si vous considérez l'exemple précédent comme trop permissif (car il inclut les autorisations REPOSITORY_MANAGE et REPOSITORY_DELETE, qui ne sont pas requises pour pousser des images), vous pouvez restreindre les autorisations pour spécifier explicitement les autorisations que vous voulez accorder. Par exemple :

    Allow group acme-pushers to manage repos in tenancy where ANY {request.permission = 'REPOSITORY_READ', request.permission = 'REPOSITORY_UPDATE', request.permission = 'REPOSITORY_CREATE'}
  • Dans la location ou dans un compartiment. Par exemple, dans un compartiment :

    Allow group acme-pushers to manage repos in compartment acme-compartment

    Notez que si vous créez la politique dans un compartiment autre que le compartiment racine, comme indiqué ci-dessus, les utilisateurs ne peuvent pas pousser une image vers un référentiel qui n'existe pas encore. En effet, la politique ci-dessus ne donne pas aux utilisateurs l'autorisation de créer un nouveau référentiel dans le compartiment racine de la location. Pour plus d'informations sur ce scénario inhabituel, voir Création d'un référentiel.

Permettre aux gestionnaires d'effectuer toute opération sur tout référentiel appartenant à la location ou à un compartiment

Type d'accès : Permet d'effectuer toute opération sur tout référentiel dans le registre de conteneurs appartenant à la location (ou à un compartiment particulier), notamment :

  • Extraire une image de n'importe quel référentiel.
  • Pousser une image vers tout référentiel.
  • Créer un référentiel. Autrement dit, pour créer un référentiel vide dans n'importe quel compartiment, ou pour créer un référentiel dans le compartiment racine de la location lors de la transmission d'une image pour laquelle aucun référentiel n'existe encore. Notez que si vous créez la politique dans un compartiment autre que le compartiment racine, les utilisateurs ne peuvent pas pousser une image vers un référentiel qui n'existe pas encore. En effet, la politique ne permet pas aux utilisateurs de créer un référentiel dans le compartiment racine. Pour plus d'informations sur ce scénario inhabituel, voir Création d'un référentiel.
  • Supprimer un référentiel.
  • Modifier un référentiel public en référentiel privé ou un référentiel privé en référentiel public.

Où créer la politique :

  • Dans la location. Par exemple :

    Allow group acme-managers to manage repos in tenancy
  • Dans la location ou dans un compartiment. Par exemple :

    Allow group acme-managers to manage repos in compartment acme-compartment

    Notez que si vous créez la politique ci-dessus dans un compartiment autre que le compartiment racine, les utilisateurs ne peuvent pas pousser une image vers un référentiel qui n'existe pas encore. En effet, la politique ne permet pas aux utilisateurs de créer un référentiel dans le compartiment racine. Pour plus d'informations sur ce scénario inhabituel, voir Création d'un référentiel.