Stratégies de contrôle d'accès au référentiel
Découvrez comment configurer des stratégies pour contrôler l'accès aux référentiels dans Container Registry, ainsi que des exemples de stratégies courantes.
Vous pouvez contrôler en détail 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 droits d'accès d'un utilisateur aux référentiels proviennent des groupes auxquels il appartient. Les droits d'accès d'un groupe sont définis par des stratégies d'identité. Les stratégies définissent les actions que les membres d'un groupe peuvent exécuter. Les utilisateurs accèdent aux référentiels et effectuent des opérations en fonction des stratégies définies pour les groupes dont ils sont membres. Les stratégies d'identité servant à contrôler l'accès aux référentiels peuvent être définies au niveau de la location et du compartiment. Reportez-vous à Détails relatifs à Container Registry.
Pour pouvoir contrôler l'accès aux référentiels, vous devez au préalable avoir créé des utilisateurs et les avoir placés dans les groupes appropriés (reportez-vous à Gestion des utilisateurs et à Gestion des groupes). Vous pouvez ensuite créer des stratégies et des instructions de stratégie pour contrôler l'accès aux référentiels (reportez-vous à Gestion des stratégies).
Les utilisateurs membres du groupe d'administrateurs de la location peuvent effectuer toute opération sur n'importe quel référentiel dans Container Registry qui appartient à la location.
Stratégies courantes
Les stratégies de cette section utilisent les exemples de nom de groupe suivants :
- acme-viewers : groupe que vous voulez limiter à la simple visualisation d'une liste de référentiels.
- acme-pullers : groupe que vous voulez limiter à l'extraction des images.
- acme-pushers : groupe que vous voulez autoriser à propager et à extraire des images.
- acme-managers : groupe que vous voulez autoriser à propager et à extraire des images, à supprimer des référentiels et à modifier des métadonnées de référentiel (par exemple, pour rendre public un référentiel privé).
Veillez à remplacer les exemples de nom de groupe par vos propres noms de groupe.
Type d'accès : permet de visualiser la liste de tous les référentiels dans Container Registry appartenant à la location (ou à un compartiment spécifique). Les utilisateurs ne pourront pas effectuer les opérations suivantes :
- Visualiser les images ou les couches dans un référentiel
- Propager des images vers un référentiel ou en extraire à partir de celui-ci
Emplacement de création de la stratégie:
-
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
Type d'accès : permet d'extraire des images (couches et manifestes) à partir de n'importe quel référentiel dans Container Registry qui appartient à la location (ou à un compartiment particulier).
Emplacement de création de la stratégie:
-
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
Type d'accès : permet d'extraire des images (couches et manifestes) à partir de n'importe quel référentiel dans Container Registry qui a un nom commençant par "acme-web-app" et qui appartient à la location (ou qui appartient à un compartiment particulier).
Emplacement de création de la stratégie:
-
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*/ }
Type d'accès : permet de propager des images (couches et manifestes) vers n'importe quel référentiel dans Container Registry qui appartient à la location ou à un compartiment particulier.
Les utilisateurs ont toujours besoin des droits d'accès REPOSITORY_READ
et REPOSITORY_UPDATE
pour propager des images. Si le référentiel indiqué n'existe pas encore, les utilisateurs ont également besoin du droit d'accès REPOSITORY_CREATE
pour créer un référentiel dans le compartiment racine de la location lorsqu'ils propagent l'image. Pour plus d'informations sur ce scénario inhabituel, reportez-vous à Création d'un référentiel.
Emplacement de création de la stratégie:
-
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 droits d'accès
REPOSITORY_MANAGE
etREPOSITORY_DELETE
, qui ne sont pas requis pour propager des images), vous pouvez restreindre les droits d'accès afin de spécifier explicitement les droits d'accès à 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
Si vous créez la stratégie dans un compartiment autre que le compartiment racine, comme indiqué ci-dessus, les utilisateurs ne peuvent pas propager une image vers un référentiel qui n'existe pas encore. En effet, la stratégie ci-dessus n'autorise pas les utilisateurs à créer un référentiel dans le compartiment racine de la location. Pour plus d'informations sur ce scénario inhabituel, reportez-vous à Création d'un référentiel.
Type d'accès : permet d'effectuer toutes les opérations sur tout référentiel dans Container Registry qui appartient à la location (ou à un compartiment particulier), y compris les opérations suivantes :
- Extrayez une image à partir de n'importe quel référentiel.
- Propager une image vers n'importe quel référentiel.
- Création d'un référentiel. Autrement dit, soit pour créer un référentiel vide dans un compartiment, soit pour créer un référentiel dans le compartiment racine de la location lors de la propagation d'une image pour laquelle il n'existe pas encore de référentiel. Si vous créez la stratégie dans un compartiment autre que le compartiment racine, les utilisateurs ne peuvent pas propager une image vers un référentiel qui n'existe pas encore. En effet, la stratégie 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, reportez-vous à Création d'un référentiel.
- Supprimez un référentiel.
- Remplacez un référentiel public par un référentiel privé, ou inversement.
Emplacement de création de la stratégie:
-
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
Si vous créez la stratégie ci-dessus dans un compartiment autre que le compartiment racine, les utilisateurs ne peuvent pas propager une image vers un référentiel qui n'existe pas encore. En effet, la stratégie 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, reportez-vous à Création d'un référentiel.