Roles y permisos de Azure Container Registry
El servicio Azure Container Registry admite un conjunto de roles de Azure integrados que proporcionan distintos niveles de permisos a una instancia de Azure Container Registry. Use el control de acceso basado en roles de Azure (RBAC de Azure) para asignar permisos específicos a usuarios, entidades de servicio u otras entidades que necesiten interactuar con un registro, por ejemplo, para insertar o extraer imágenes de contenedor. También puede definir roles personalizados con permisos específicos en un registro para distintas operaciones.
Rol o permiso | Acceso a Resource Manager | Crear o eliminar un registro | Insertar imagen | Extraer imagen | Eliminar los datos de imagen | Cambiar directivas | Firmar imágenes |
---|---|---|---|---|---|---|---|
Propietario | X | X | X | X | X | X | |
Colaborador | X | X | X | X | X | X | |
Lector | X | X | |||||
AcrPush | X | X | |||||
AcrPull | X | ||||||
AcrDelete | X | ||||||
AcrImageSigner | X |
Asignación de roles
Consulte Pasos para agregar una asignación de roles para conocer los pasos de alto nivel para agregar una asignación de roles a un usuario, un grupo, una entidad de servicio o una identidad administrada existente. Puede usar Azure Portal, la CLI de Azure, Azure PowerShell u otras herramientas de Azure.
Al crear una entidad de servicio, también se configuran los permisos y el acceso a los recursos de Azure como, por ejemplo, un registro de contenedor. Para ver un script de ejemplo del uso de la CLI de Azure, consulte Autenticación de Azure Container Registry con entidades de servicio.
Diferenciar usuarios y servicios
Cada vez que se aplican permisos, el procedimiento recomendado es proporcionar el conjunto de permisos más limitados para que una persona o servicio puedan completar una tarea. Los siguientes conjuntos de permisos representan un conjunto de funciones para usuarios humanos y servicios desatendidos.
Soluciones de CI/CD
Al automatizar comandos de docker build
de soluciones de CI/CD, necesita funciones de docker push
. En estos escenarios de servicios desatendidos, se recomienda asignar el rol AcrPush. Este rol, al contrario que el rol Colaborador (que es más amplio), impide que la cuenta pueda realizar otras operaciones de registro o que acceda a Azure Resource Manager.
Nodos de host de contenedor
Del mismo modo, los nodos que ejecuten los contenedores han de tener asignado el rol AcrPull, pero no necesitan de forma obligatoria funciones de Lector.
Extensión de Docker de Visual Studio Code
Para herramientas como la extensión de Docker de Visual Studio Code, se necesita acceso adicional de proveedor de recursos para mostrar la lista de registros de contenedor de Azure. En este caso, proporcione a los usuarios acceso al rol Lector o Colaborador. Estos roles permiten docker pull
, docker push
, az acr list
, az acr build
y otras funciones.
Acceso a Resource Manager
Se necesita obtener acceso a Azure Resource Manager para Azure Portal y a la administración de registros con la CLI de Azure. Por ejemplo, para obtener una lista de registros mediante el comando az acr list
, necesita este conjunto de permisos.
Crear y eliminar registros
Capacidad para crear y eliminar registros de contenedor de Azure.
Imagen de inserción
La capacidad para docker push
una imagen o insertar otro artefacto compatible, como un gráfico de Helm, en un registro. Se necesita autenticación con el registro mediante la identidad autorizada.
Extraer imagen
La capacidad para docker pull
una imagen que no esté en cuarentena o extraer otro artefacto compatible, como un gráfico de Helm, de un registro. Se necesita autenticación con el registro mediante la identidad autorizada.
Eliminación de los datos de la imagen
La capacidad de eliminar imágenes de contenedor u otros artefactos admitidos, como gráficos de Helm, desde un registro.
Cambiar directivas
Capacidad para configurar directivas en un registro. En las directivas, se incluye la purga de imágenes, la activación de la cuarentena y la firma de imágenes.
Firmar imágenes
Capacidad para firmar imágenes, que suelen estar asignadas a un proceso automatizado, lo que usaría una entidad de servicio. Este permiso suele combinarse con la inserción de imágenes para permitir insertar una imagen de confianza en un registro. Para obtener más información, vea Confianza de contenido en Azure Container Registry.
Roles personalizados
Como con otros recursos de Azure, puede crear roles personalizados con permisos específicos para Azure Container Registry. A continuación, asigne los roles personalizados a los usuarios, entidades de servicio u otras identidades que necesiten interactuar con un registro.
Para determinar los permisos que se van a aplicar a un rol personalizado, consulte la lista de acciones de Microsoft.ContainerRegistry, revise las acciones permitidas de los roles de ACR integrados o ejecute el siguiente comando:
az provider operation show --namespace Microsoft.ContainerRegistry
Para definir un rol personalizado, consulte Pasos para crear un rol personalizado.
Nota
En los inquilinos configurados con el vínculo privado de Azure Resource Manager, Azure Container Registry admite acciones con caracteres comodín como Microsoft.ContainerRegistry/*/read
o Microsoft.ContainerRegistry/registries/*/write
en roles personalizados, concediendo acceso a todas las acciones correspondientes. En un inquilino sin un vínculo privado de ARM, especifique todas las acciones del Registro necesarias individualmente en un rol personalizado.
Ejemplo: Rol personalizado para importar imágenes
Por ejemplo, el siguiente JSON define las acciones mínimas para un rol personalizado que permite importar imágenes a un registro.
{
"assignableScopes": [
"/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
],
"description": "Can import images to registry",
"Name": "AcrImport",
"permissions": [
{
"actions": [
"Microsoft.ContainerRegistry/registries/push/write",
"Microsoft.ContainerRegistry/registries/pull/read",
"Microsoft.ContainerRegistry/registries/read",
"Microsoft.ContainerRegistry/registries/importImage/action"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleType": "CustomRole"
}
Para crear o actualizar un rol personalizado mediante la descripción de JSON, use la CLI de Azure, la plantilla de Azure Resource Manager, Azure PowerShell u otras herramientas de Azure. Agregue o quite las asignaciones de roles de un rol personalizado de la misma manera en que administra las asignaciones de roles para los roles integrados de Azure.
Pasos siguientes
Obtenga más información sobre cómo asignar roles de Azure a una identidad de Azure mediante Azure Portal, la CLI de Azure, Azure PowerShell u otras herramientas de Azure.
Obtenga información sobre las opciones de autenticación de Azure Container Registry.
Obtenga información sobre cómo habilitar permisos de ámbito de repositorio en un registro de contenedor.