Políticas para controlar el acceso al repositorio

Descubra cómo configurar políticas para controlar el acceso a los repositorios en Container Registry, junto con algunos ejemplos de políticas comunes.

Ha activado el control detallado de las operaciones que los usuarios pueden realizar en los repositorios de Oracle Cloud Infrastructure Registry (también conocido como Container Registry).

Los permisos del usuario para acceder a los repositorios proceden de los grupos a los que pertenecen. Los permisos para un grupo se definen mediante las políticas de identidad. Las políticas definen las acciones que pueden realizar los miembros de un grupo. Los usuarios acceden a los repositorios y realizan operaciones según las políticas definidas para los grupos de los que son miembros. Las políticas de identidad para controlar el acceso al repositorio se pueden definir en el arrendamiento y en el nivel de compartimento. Consulte Detalles para Container Registry.

Antes de controlar el acceso a los repositorios, debe haber creado usuarios y haberlos asignado a los grupos correspondientes (consulte Gestión de usuarios y Gestión de grupos). A continuación, puede crear políticas y sentencias de política para controlar el acceso al repositorio (consulte Gestión de políticas).

Tenga en cuenta que los usuarios del grupo Administradores del arrendamiento pueden realizar cualquier operación en cualquier repositorio de Container Registry que pertenezca al arrendamiento.

Políticas comunes

Nota

Las políticas de esta sección utilizan nombres de grupos de ejemplo de la siguiente manera:

  • acme-viewers: grupo que desea limitar para solo ver una lista de repositorios.
  • acme-pullers: grupo que desea limitar para extraer imágenes.
  • acme-pushers: grupo que desea autorizar para transferir y extraer imágenes.
  • acme-managers: grupo que desea autorizar para transferir y extraer imágenes, suprimir repositorios y editar metadatos del repositorio (por ejemplo, para hacer público un repositorio privado).

Asegúrese de sustituir los nombres de grupos de ejemplo por los nombres de su propio grupo.

Permitir a los usuarios ver una lista de todos los repositorios que pertenecen al arrendamiento o a un compartimento

Tipo de acceso: capacidad para ver una lista de todos los repositorios en Container Registry que pertenecen al arrendamiento (o a un compartimento concreto). Los usuarios no podrán:

  • ver las imágenes o capas en un repositorio
  • transferir imágenes a un repositorio o extraerlas del mismo

Dónde crear la política:

  • En el arrendamiento. Por ejemplo:

    Allow group acme-viewers to inspect repos in tenancy
  • En el arrendamiento o en un compartimento. Por ejemplo:

    Allow group acme-viewers to inspect repos in compartment acme-compartment
Permitir a los usuarios extraer imágenes de cualquier repositorio que pertenezca al arrendamiento o a un compartimento

Tipo de acceso: capacidad de extraer imágenes (capas y manifiestos) de cualquier repositorio de Container Registry que pertenezca al arrendamiento (o a un compartimento concreto).

Dónde crear la política:

  • En el arrendamiento. Por ejemplo:

    Allow group acme-pullers to read repos in tenancy
  • En el arrendamiento o en un compartimento. Por ejemplo:

    Allow group acme-pullers to read repos in compartment acme-compartment
Permitir a los usuarios extraer imágenes de repositorios específicos en el arrendamiento o en un compartimento

Tipo de acceso: capacidad de extraer imágenes (capas y manifiestos) de cualquier repositorio en Container Registry que tenga un nombre que comience por "acme-web-app" y que pertenezca al arrendamiento (o que pertenezca a un compartimento determinado).

Dónde crear la política:

  • En el arrendamiento. Por ejemplo:

    Allow group acme-pullers to read repos in tenancy where all { target.repo.name=/acme-web-app*/ }
  • En el arrendamiento o en un compartimento. Por ejemplo:

    Allow group acme-pullers to read repos in compartment acme-compartment where all { target.repo.name=/acme-web-app*/ }
Permitir a los usuarios transferir imágenes a cualquier repositorio (y crear nuevos repositorios si es necesario) en el arrendamiento o en un compartimento

Tipo de acceso: capacidad de transferir imágenes (capturas y manifiestos) a cualquier repositorio de Container Registry que pertenezca al arrendamiento o a un compartimento concreto.

Los usuarios siempre necesitan los permisos REPOSITORY_READ y REPOSITORY_UPDATE para transferir imágenes. Si el repositorio especificado aún no existe, los usuarios también necesitan el permiso REPOSITORY_CREATE para crear un nuevo repositorio en el compartimento raíz del arrendamiento cuando transfieren la imagen. Para obtener más información sobre este escenario inusual, consulte Creación de un repositorio.

Dónde crear la política:

  • En el arrendamiento. Por ejemplo:

    Allow group acme-pushers to manage repos in tenancy

    Si considera que el ejemplo anterior es demasiado permisivo (ya que incluye los permisos REPOSITORY_MANAGE y REPOSITORY_DELETE, que no son necesarios para transferir imágenes), puede restringir los permisos para especificar explícitamente los permisos que desea otorgar. Por ejemplo:

    Allow group acme-pushers to manage repos in tenancy where ANY {request.permission = 'REPOSITORY_READ', request.permission = 'REPOSITORY_UPDATE', request.permission = 'REPOSITORY_CREATE'}
  • En el arrendamiento o en un compartimento. Por ejemplo, en un compartimento:

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

    Tenga en cuenta que si crea la política en un compartimento que no sea el compartimento raíz, como se muestra anteriormente, los usuarios no pueden transferir una imagen a un repositorio que aún no existe. Esto se debe a que la política anterior no otorga a los usuarios permiso para crear un nuevo repositorio en el compartimento raíz del arrendamiento. Para obtener más información sobre este escenario inusual, consulte Creación de un repositorio.

Permitir a los gestores realizar cualquier operación en cualquier repositorio que pertenezca al arrendamiento o a un compartimento

Tipo de acceso: capacidad para realizar cualquier operación en cualquier repositorio de Container Registry que pertenezca al arrendamiento (o a un compartimento concreto), incluidas las siguientes:

  • Extraer una imagen de cualquier repositorio.
  • Transferir una imagen a cualquier repositorio.
  • Cree un nuevo repositorio. Es decir, para crear un repositorio vacío en cualquier compartimento o para crear un repositorio en el compartimento raíz del arrendamiento al transferir una imagen para la que aún no existe ningún repositorio. Tenga en cuenta que si crea la política en un compartimento que no sea el compartimento raíz, los usuarios no pueden transferir una imagen a un repositorio que aún no existe. Esto se debe a que la política no otorga a los usuarios permiso para crear un nuevo repositorio en el compartimento raíz. Para obtener más información sobre este escenario inusual, consulte Creación de un repositorio.
  • Suprimir un repositorio.
  • Cambiar de un repositorio público a uno privado o de un repositorio privado a uno público.

Dónde crear la política:

  • En el arrendamiento. Por ejemplo:

    Allow group acme-managers to manage repos in tenancy
  • En el arrendamiento o en un compartimento. Por ejemplo:

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

    Tenga en cuenta que si crea la política anterior en un compartimento que no sea el compartimento raíz, los usuarios no pueden transferir una imagen a un repositorio que aún no existe. Esto se debe a que la política no otorga a los usuarios permiso para crear un nuevo repositorio en el compartimento raíz. Para obtener más información sobre este escenario inusual, consulte Creación de un repositorio.